La procedure suivante est cencée recupérer dans plusieurs tables des données et de me les affichées dans une grille tant que les numeros de bl correspondent avec celui qui est affiche ailleurs dans la page.
Je n'arrive pas à la faire marcher il me dit qu'il attend une fin d'instruction après :
rc.Open " SELECT TB_ART_TRAVAUX.*, TB_ARTICLES.*, TB_BL.*, TB_CLI.*, TB_TRAVAUX.*"
From TB_ART_TRAVAUX, TB_ARTICLES, TB_BL, TB_CLI, TB_TRAVAUX
WHERE TB_ART_TRAVAUX.IDX_TRAV=TB_TRAVAUX.ID_TRAVAUX And TB_ART_TRAVAUX.REFX_ART=TB_ARTICLES.REF_ART And TB_BL.ID_BL=TB_TRAVAUX.IDX_BL_TRAV And TB_BL.IDX_CLI_BL=TB_CLI.ID_CLI", ct, adOpenDynamic
Voici donc la procedure merci d'avance :
Private Sub Form_Activate()
Dim ct As ADODB.Connection
Dim rc As ADODB.Recordset
Dim nombase As String
Dim i As Integer, lignes
Set ct = New ADODB.Connection
ct.Provider = "microsoft.jet.oledb.4.0"
nombase = "c:\mes documents\grilli97.mdb"
ct.ConnectionString = nombase
ct.Open
Set rc = New ADODB.Recordset
rc.Open " SELECT TB_ART_TRAVAUX.*, TB_ARTICLES.*, TB_BL.*, TB_CLI.*, TB_TRAVAUX.*"
From TB_ART_TRAVAUX, TB_ARTICLES, TB_BL, TB_CLI, TB_TRAVAUX
WHERE TB_ART_TRAVAUX.IDX_TRAV=TB_TRAVAUX.ID_TRAVAUX And TB_ART_TRAVAUX.REFX_ART=TB_ARTICLES.REF_ART And TB_BL.ID_BL=TB_TRAVAUX.IDX_BL_TRAV And TB_BL.IDX_CLI_BL=TB_CLI.ID_CLI", ct, adOpenDynamic
'je memorise le nombre de lignes renvoyées par le recordset
lignes = rc.Properties.Count
'je place le pointeur au début du recorsetrc.MoveFirst
'nombre de colonnes pour la grilleMSFlexGrid1.Cols = 6
'je modifie la taille des colonnes
MSFlexGrid1.AllowUserResizing = flexResizeColumns
'pas d'entete de lignesMSFlexGrid1.FixedRows = 1
'nombre de lignesMSFlexGrid1.Rows = 10
'titre de la permiere colonne
MSFlexGrid1.Col = 0
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "Référence"
'titre de la 2eme colone
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "Désignation"
'titre de la colonne 3
MSFlexGrid1.Col = 2
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "N° lot"
'titre de la colone 4
MSFlexGrid1.Col = 3
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "tarif"
'titre de la colonne 5
MSFlexGrid1.Col = 4
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "Quantité"
'titre de la colonne 6
MSFlexGrid1.Col = 5
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "Remise"
'je repete jqa la fin du recordset
Do While rc.EOF Or rc!nobl <> txtFields.DataField
'pour chaque ligne
MSFlexGrid1.Row = i + 1
'pour la première colone
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = rc!Référence
'pour la colonne 2
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = rc!designation
'pour la colonne 3
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = rc!nolot
'pour la colonne 4
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = rc!tarif
'pour la colonne 5
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = rc!quantite
'pour la colonne 6
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = rc!remise
'je passe à l'enregistrement suivant
rc.MoveNext
'j'incremente le pointeur de lignes
i = i + 1
'retour au debut de la boucle
Loop
End Sub