banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Sat 11 May 2013 11:22

IG
Participant occasionnel
Date d'inscription: 1 Mar 2013
Messages: 20

cmd_tableau

Bonjour a tous;

    - je travail en VBA / arcgis 9.3

  J'ai crée un formulaire avec une liste déroulante et une liste texte et autre controls:
      - quand je sélectionne un type de station dans la liste déroulant j'ai une liste de code de station dans ma liste texte ,
      - j'ai crée un bouton qui permet le choix de tous les codes ou seulement un code.

  Ce que je cherche à réaliser:

       - j'ai crée une multipage dans le mm formulaire dans laquelle j'ai mis un "Grid"
       - puis j'ai crée un autre bouton qui permet d'afficher la table (Grid) de ma sélection d'après ma base de données


  ==> je veux que le bouton "cmd_tableau" affiche la table attributaire selon les les critère sélectionnés (type station/code(s) )

  merci d'avance

Hors ligne

 

#2 Tue 14 May 2013 11:01

IG
Participant occasionnel
Date d'inscription: 1 Mar 2013
Messages: 20

Re: cmd_tableau

Bonjours a tous voila mon code j'ai crée la table mais j'arrive pas à récupérer mes données d'après ma table
   ==> voila mon code:
aidez moi pour qu'il soit fonctionnel!


Code:

Private Sub cmd_Tableau_Click()
   
      
    Set pMouseCursor = New MouseCursor
    pMouseCursor.SetCursor 2
    
    NIRECount = 0
    For i = 0 To lbx_N°IRE.ListCount - 1
        If lbx_N°IRE.Selected(i) Then
            NIRECount = NIRECount + 1
        End If
    Next i
    MultiPage1.Pages(0).Visible = True
    thequery = ""
    Status = False
    
    For i = 0 To lbx_N°IRE.ListCount - 1
        If lbx_N°IRE.Selected(i) = True Then
        'if lbx_N°IRE.List(i) = True Then
            Status = True
            Exit For
        End If
    Next i
    
    If Status = False Then
        MsgBox "Veuillez sélectionner des N°IRE...."
        Exit Sub
    End If
 
  'Remplir la grille de qualite globale
    MultiPage1.value = 0
    Me.Width = 622
    
    Grid1.Clear
    With Grid1
         Grid1.Row = 0
         Grid1.Cols = 6
        For i = 0 To Grid1.Cols - 1
            Grid1.Col = i
            Grid1.CellFontBold = True
        Next i
        Grid1.Col = 0
        Grid1.Text = "Oued"
        
        Grid1.Col = 1
        Grid1.Text = "Station"
        
        Grid1.Col = 2
        Grid1.Text = "N_IRE"
        
        Grid1.Col = 3
        Grid1.Text = "Date"
        
        Grid1.Col = 4
        Grid1.Text = "Heur"
        
        Grid1.Col = 5
        Grid1.Text = "Qualite_G"
        
             With Grid1
                .ColWidth(0) = 1200
                .ColWidth(1) = 1200
                .ColWidth(2) = 1200
                .ColWidth(3) = 1200
                .ColWidth(4) = 1200
                .ColWidth(5) = 1500
             End With
             
     End With
           
 'Remplir la table des qualites des Stations
        Remplir_Table_Qualite
        'Fonction de Remplissage de la table des qualites des retenues des barages
       

   
    
    Do Until pRowDataParametresStationsQualite Is Nothing
        i = i + 1
        With Grid1
            .Row = i
            .Col = 0
            'récupération du nom de la station
            'N_IRE = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("N_IRE"))
            
            'récupération du Noms des oueds
            'Oued = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Nom_Oued"))
            'Colonne du nom de la station
            .Col = 0
            'If IsNull(pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Nom_Oued"))) Then
                '.Text = ""
            'Else
                '.Text = TheStationName
            'End If
            
            'Colonne des nom de des oueds
            If IsNull(pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Nom_Oued"))) Then
                .Text = ""
            Else
                .Text = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Nom_Oued"))
                pCollectionIRE.Add .Text
            End If
            
            'Colonne des nom de des stations
            .Col = 1
            If IsNull(pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Nom_Station"))) Then
                .Text = ""
            Else
               .Text = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Nom_Station"))
                pCollectionIRE.Add .Text
            End If
            
            'Colonne du N'IRE
            .Col = 2
            If IsNull(pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("N_IRE"))) Then
                .Text = ""
            Else
                .Text = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("N_IRE"))
                pCollectionIRE.Add .Text
            End If
            
            'Colonne dela Date
            .Col = 3
            If IsNull(pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Date_Prelevement"))) Then
                .Text = ""
            Else
                .Text = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Date_Prelevement"))
            End If

            'Colonne de l'Heur
            .Col = 3
            If IsNull(pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Heur_Prelevement"))) Then
                .Text = ""
            Else
                .Text = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Heur_Prelevement"))
            End If
            
            'Colonne Qualite_Globale
            .Col = 3
            If IsNull(pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("IQ_Text"))) Then
                .Text = ""
            Else
                .Text = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("IQ_Text"))
            End If
                
        End With
        pRowDataParametresStationsQualite.Store
        Set pRowDataParametresStationsQualite = pCursorDataParametresStationsQualite.NextRow
    Loop

    
    Grid1.Row = 0
    For i = 0 To Grid1.Cols - 1
        Grid1.Col = i
        For j = 0 To Grid1.Rows - 1
            Grid1.Row = j
            Grid1.CellFontBold = True
        Next j
    Next i
      
    cmd_Excel.Enabled = True
    cmd_Reduire.Visible = True
    cmd_Reduire.Caption = "<<<"
    For i = 1 To MultiPage1.Pages.Count - 1
        MultiPage1.Pages(i).Visible = False
    Next i
    

End Sub
______________________________________________________________________________________________________________________

Public Sub Remplir_Table_Qualite()
    Dim s As Integer
    Dim Nom_oued As String
    Dim Nom_Station As String
    Dim NIRE As String
    TypeStation = ""
    For s = 1 To pNIRECollection.Count
        N_IRE = pNIRECollection.Item(s)
        For i = 0 To lbx_N°IRE.ListCount - 1
            
            If lbx_N°IRE.Selected(i) = True Then
                thequery = "N_IRE = " & lbx_N°IRE.List(i) & " "
                Set pQueryFilter = New QueryFilter
                pQueryFilter.WhereClause = thequery
                
    
                Do Until pRowDataParametresStationsQualite Is Nothing
                    TypeStation = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Type_Station"))
                                       
                    Set pFCursorDataParametresStationsQualite = pFClassDataParametresStationsQualite.Search(pQueryFilter1, False)
                    Set pFeatureDataParametresStationsQualite = pFCursorDataParametresStationsQualite.NextFeature
                    
                    Do Until pFeatureDataParametresStationsQualite Is Nothing
                        Nom_Station = pFeatureDataParametresStationsQualite.value(pFeatureDataParametresStationsQualite.Fields.FindField("Nom_Station"))
                        Set pFeatureDataParametresStationsQualite = pFCursorDataParametresStationsQualite.NextFeature
                    Loop
                    
                    Set pFCursorDataParametresStationsQualite = pFClassDataParametresStationsQualite.Search(pQueryFilter, False)
                    Set pFeatureDataParametresStationsQualite = pFCursorDataParametresStationsQualite.NextFeature
                    
                    Do Until pFeatureDataParametresStationsQualite Is Nothing
                        Nom_oued = pFeatureDataParametresStationsQualite.value(pFeatureDataParametresStationsQualite.Fields.FindField("Nom_Oued"))
                        Set pFeatureDataParametresStationsQualite = pFCursorDataParametresStationsQualite.NextFeature
                    Loop
                    
                    Do Until pFeatureDataParametresStationsQualite Is Nothing
                         NIRE = pFeatureDataParametresStationsQualite.value(pFeatureDataParametresStationsQualite.Fields.FindField("N_IRE"))
                        Set pFeatureDataParametresStationsQualite = pFCursorDataParametresStationsQualite.NextFeature
                    Loop
                    'Sélection des mesures de la station
                    Set pCursorDataParametresStationsQualite = pTableDataParametresStationsQualite.Search(pQueryFilter, False)
                    Set pRowDataParametresStationsQualite = pCursorDataParametresStationsQualite.NextRow
                    'theGlobalColeurIndex = 0
                    'theGlobalText = "A sec"
                    If pTableDataParametresStationsQualite.RowCount(pQueryFilter) > 0 Then
                        'Enregistrer les paramètres de mesure
                        Set pRowDataParametresStationsQualite = pTableDataParametresStationsQualite.CreateRow
                        pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Annee")) = pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Date_Prelevement"))
                        pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("N_IRE")) = NIRE
                        pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Num_Campagne")) = lbx_N°IRE.List(i)
                        pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Nom_Oued")) = Nom_oued
                        pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Nom_Station")) = Nom_Station
                        pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("Nom_Station")) = TypeStation
                    
                        'Etat de la qualité globale
                        pRowDataParametresStationsQualite.value(pRowDataParametresStationsQualite.Fields.FindField("IQ_Text")) = theGlobalText
                        'Enregistrement des valeurs
                        pRowDataParametresStationsQualite.Store
                    End If
                  Set pRowDataParametresStationsQualite = pCursorDataParametresStationsQualite.NextRow
                Loop
            End If
        Next i
    Next s
    
    
End Sub

Dernière modification par IG (Tue 14 May 2013 11:04)

Hors ligne

 

Pied de page des forums

Powered by FluxBB