Vb6&sql

Fermé
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008 - 26 août 2008 à 12:16
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008 - 27 août 2008 à 08:29
Bonjour,
j'ai un problèmme dans l'affichage des résultats d'une requêtte SQL dans un controle DataGrid sur VB6..
Merci de m'aider
A voir également:

2 réponses

Tatanos Messages postés 966 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 26 mai 2016 156
26 août 2008 à 12:36
Pour Access :
'-----------------------------------------------------------------------------------------------------------------------------

Public DB As Database 'Tu définis ta variable pour la base de données
Private RS As Recordset 'Tu définis un Recordset (plage de mémoire sous forme de tableau pour stoquer le résultat de la requete SQL)

Private Sub Form_Load()

Set DB = OpenDatabase("C:\base.mdb") 'Tu ouvres la base de données
Set RS = DB.OpenRecordset("SELECT * FROM Table") 'Tu stoque ta requete dans le recordset

If RS_RETARD.EOF = False Then 'Tu testes si le RS contiens des données
RS.MoveLast ' Fin du RS
RS.MoveFirst ' Début du RS (VB ne connais pas le nombre de lignes du tableau tant qu'il n'a pas été parcouru, après ceci on peut donc compter le nombre de lignes)
NombreLigneRS = RS.RecordCount 'Nombre de lignes
Else
nb_ret = 0
End If

'Ensuite tu n'as plus qu'a remplir le GRID avec les données du RS

For I = 1 To RS.RecordCount
GRID.AddItem (Fields(0) & Chr(9) & Fields(1) & Chr(9) & RS1.Fields(2))
RS1.MoveNext
GRID.RowHeight(I) = 300
Next


un Recordset à un curseur, il est positionné d'origine sur la 1ere ligne donc Fields(0) correspond a la 1ere colonne de ton RS, Fields(1) à la seconde... etc tu as une colonne par champs de ta requete
pour passer a la seconde ligne ce n'est pas comme un tableau ou tu précise par exmple Tableau(1, 5)
tu utilise le curseur.

pour le faire bouger d'une ligne vers le bas : RS.MoveNext,
pour le faire remonter d'une ligne : RS.MovePrevious,
pour le faire passer sur la dernière ligne : RS.MoveLast
et pour la première ligne : RS.MoveFirst

le Chr(9) dans le grid sert à passer à la cellule de droite.

J'espère avoir été assez clair :) bon courage !
-1
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
26 août 2008 à 12:41
merci
c'est vraiment gentil de ta part.
je vais essayer ce code.
-1
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
26 août 2008 à 12:53
Voici le code que je vient d'implimenter

"""""""""Dim sql As String
Dim rst1 As New Recordset
sql = "Select* From T1 where Numero Affaire between d and f"
If rst1.State = adStateOpen Then rst1.Close
rst1.Open sql, db, adOpenDynamic, adLockOptimistic
Set datagrid1.DataSource = rst1


Lorsque je compile.le meesage suivant s'affiche :
"variable non definit"
je vois pas comment definir la variable datagrid1

Merci
-1
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
27 août 2008 à 08:29
Bonjour,
je cherche à afficher le résultat d'une requette sql dans un controle datagrid.
je ne vois pas comment déclarer "datagrid1" dans le code suivant:




Private Sub Command6_Click()
Dim rst As New ADODB.Recordset
Dim rst1 As New ADODB.Recordset
Dim sql As String
If rst.State = adStateOpen Then rst.Close
rst.Open " T1", DB, adOpenDynamic, adLockOptimistic
sql = "Select* From T1 where Numero Affaire between d and f"
If rst1.State = adStateOpen Then rst1.Close
rst1.Open sql, DB, adOpenDynamic, adLockOptimistic
Set Datagrid.DataSource = rst1
End Sub



Merci
-1