Vb6&sql

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
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. 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
    1. 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
      1. merci
        c'est vraiment gentil de ta part.
        je vais essayer ce code.
        -1
      2. 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