Requte SQL en VB6

Bonjour,
je suis un débutant en VB6, alors j'ai construire un petit programme qui permet d'insérer des donnes à une base de donnée Access, et je veux sélectionner ces données a l'aide des requêtes SQL, alors je procède mon recherche avec l identificateur de chaque enregistrement (id) mais lorsque j'affiche les donnes le programme ne respecte pas l id donné, il affiche toujours la première enregistrement
voila mon code de recherche et affichage:

Private Sub Command2_Click()
Dim y As Integer
y = Val(Text3.Text)
data1.RecordSource = "select *from info where id=y"
Text1.Text = data1.Recordset![nom]
Text2.Text = data1.Recordset![prenom]

End Sub

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    data1.RecordSource = "select *from info where id=y"

    La variable y est entre simple cote et doit etre ecrite comme une variable

    data1.RecordSource = "select *from info where id='" & y & "'"

    Bonne suite
    1. merci mais mon probleme reste le meme

      Private Sub Command2_Click()
      Dim y As Integer
      y = Val(Text3.Text)
      data1.RecordSource = "select *from info where id='" & y & "'"
      data1.Refresh
      Text1.Text = data1.Recordset![nom]
      Text2.Text = data1.Recordset![prenom]
      End Sub

      dans les deux textbox 1 et 2 ne saffiche que la premiere enregistrement lorsque je demande une autre avec un id differents de 1???
      SVP si pouvez m'aider
  2. Re,
    Je regarde votre sujet, bien que je ne programme pas du tout comme vous pour les acces base de donnees, noous devrions quand meme y arriver.
    Le champ id est il une cle primaire??
    1. oui c'est un clé primaire
  3. Re,

    C'est une autre methode

    Private Sub Command2_Click()
    'sans Data control
    'reference a ajouter:
    'Microsoft DAO 3.6 Object Library
    'Microsoft ActiveX Data Objects 2.8 Library
    Dim y As Integer, Db, Rs

    y = Val(Text3.Text)
    'Chemin et base a changer
    Set Db = OpenDatabase("C:\repertoire\base.mdb")
    Set Rs = Db.OpenRecordset("info", dbOpenTable, dbReadOnly)

    If Rs.BOF = True And Rs.EOF = True Then 'test Table vide
    Exit Sub
    Else
    'Methode SEEK
    Rs.Index = "PrimaryKey" ' Définit l'index.
    Rs.Seek "=", y
    If Rs.NoMatch Then ' Sortie si la méthode Seek échoue.
    Exit Sub
    Else ' Mise a jour
    Text1.Text = Rs.Fields("nom")
    Text2.Text = Rs.Fields("prenom")
    End If
    End If

    End Sub

    Bonne suite
    1. merci chef ça marche bien.