stasze
Messages postés12Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention16 juillet 2004
-
14 juil. 2004 à 18:18
stasze
Messages postés12Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention16 juillet 2004
-
16 juil. 2004 à 04:04
Bonjour à toutes et tous.
Voilà mon problème.
J'ai une base de données Access 97 (FARC.mdb) et je travaille sous VB6.
Dans ma BD, j'ai 2 tables Farc24 et Farc25 avec exactement les mêmes champs.
Dans mon projet VB, sur l'une de mes form (frmTableau) j'ai un MSFlexGrid (Grille2).
J'aimerai que lorsque l'utilisateur arrive sur cette form, la MSFlexGrid affiche le contenu de mes 2 tables.
Je sais afficher une table mais pas deux.
Est-ce possible? Et si oui, comment dois-faire?
Voici le code de ma feuille:
Dim db As Database
Dim RS As Recordset
Dim sql As String
Dim i As Integer
Dim MyWord As New Word.Application
Function faIndex(row As Integer, col As Integer) As Long
faIndex = row * Grille2.Cols + col
End Function
Private Sub cmdQuitter_Click()
frmFARC.Show
Unload Me
End Sub
Private Sub Form_Load()
Set db = OpenDatabase("G:\FARC\BD\Farc.mdb")
End Sub
Private Sub Grille2_Click()
sql = "SELECT * FROM Farc24 ORDER BY Nom"
sql = "SELECT * FORM Farc25 ORDER BY Nom"
Dim i As Integer
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 14 juil. 2004 à 19:00
Pourquoi utiliser 2 tables si elle contienne exactement les mêmes champs ?
sql = "SELECT * FROM Farc24 ORDER BY Nom"
sql = "SELECT * FORM Farc25 ORDER BY Nom"
Set RS = db.OpenRecordset(sql, dbOpenDynaset)
For i = 1 To RS.RecordCount
......
La premiere ligne est inutile car elle est immediatement modifiée.
Fais plutot :
sql = "SELECT * FROM Farc24 ORDER BY Nom"
Set RS = db.OpenRecordset(sql, dbOpenDynaset)
For i = 1 To RS.RecordCount
....
puis
sql = "SELECT * FORM Farc25 ORDER BY Nom"
Set RS = db.OpenRecordset(sql, dbOpenDynaset)
For i = 1 To RS.RecordCount
.....
et ton tableau comportera les deux tables.
Mais à mon avis tu devrai ne faire qu'une seule table avec les deux. Si tu veux distinguer certain enregistrement ajoute un champs pour cela avec par exemple une valeur vrai/faux (Boolean).
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 15 juil. 2004 à 08:27
OK, quand tu déclare une variable au debut d'une procedure, tu n'a pas besoin de le refaire au milieu ou a la fin, sinon elles entrent en conflit
Au debut de ton code du fait
Private Sub Grille2_Click()
Dim i As Integer
sql = "SELECT * FROM Farc24 ORDER BY Nom"
......
Et tu n'a pas besoin de redeclarer la variable.
Et pour :
Erreur de syntaxe (opérateur absent) dans l'expression '*FORM Farc25 ORDER BY Nom'
ajoute un espace entre * et FROM
puis corrige FORM par FROM
Enfin je te conseil de mettre
"Next i" au lieu de "Next"