Simple requete SQL

Signaler
Messages postés
27
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
27 août 2010
-
Messages postés
27
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour à tous,

J'ai un problème qui me paraît tout simple mais qui me bloque. (ne riez pas je débute en VB6 (et oui, c'est le seul qui tourne sans ajouter de framework là où je bosse....))

J'ai une table tblInfoDoc dans la quelle se trouve un champ fldDocId, je voudrais qu'à l'ouverture d'un formulaire (frmUpdateDoc), il me soit demandé (via Inputbox) un numéro, ensuite, grâce à la requête SQL, j'affiche le document correspondant. Actuellement, je reçois comme message "Erreur de Syntaxe dans la clause FROM". sur mon formulaire se trouve un composant ADO (adoInfoDoc) pour lié un BD Access.
Voici ma procédure, merci d'avance

Private Sub Form_Load()
Dim intGetDocId As Integer
Dim strSQL As String

intGetDocId = InputBox("Which DOC Id do you want to update : ", "POC Doc", 1)



strSQL "SELECT * FROM tblInfoDoc WHERE tblInfoDoc.fldDocId " & intGetDocId
Label2.Caption = strSQL

frmUpdateDoc.AdoInfoDoc.RecordSource = strSQL

frmUpdateDoc.AdoInfoDoc.Refresh


End Sub

PS s'il est expliqué quelquepart comment utiliser correctement le composant ADO ( cela fonctionne nickel avec une méthode AddNew mais ensuite, difficile pour moi de savoir quelle méthode utiliser juste pour ouvrir par example)

8 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut
Tu as oublié un point virgule ; a la fin de ta
requete
Messages postés
27
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
27 août 2010

Salut,

Déjà merci pour cette réponse rapide mais malheureusement, le message reste le même.

Pour info, j'ai modifié comme ceci :

strSQL "SELECT * FROM tblInfoDoc WHERE tblInfoDoc.fldDocId " & intGetDocId & ";"

??
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
31
Telles les chaînes doivent être entourées pas des guillemets pour être reconnues en VB, en SQL elles le sont par des apostrophes :

strSQL "SELECT * FROM tblInfoDoc WHERE tblInfoDoc.fldDocId '" & intGetDocId & "'"

Pour ce qui est du point-virgule il sert à séparer des instructions dans les procédures stockées.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
27
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
27 août 2010

Merci aussi Mayzz mais j'avais aussi essayé mais j'ai eu le même résultat ??

Et Ok pour le point-virgule
Messages postés
27
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
27 août 2010

Sauf erreur de ma part la propriété CommandType de mon composant ADO est bien 2-adCmdTable ?

"There are 10 kinds of people. Those who understand binary notation, and those who do not."
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
31
Non c'est CommandText... Sans cela en effet ca ne fonctionnera pas...


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
31
strSQL = "SELECT * FROM tblInfoDoc WHERE tblInfoDoc.fldDocId = '" & intGetDocId & "'"

En effet je dis des bétise, ton ID est de type Int et non nchar, nvarchar ou text... donc pas besoin d'apostrophes ici...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
27
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
27 août 2010

Alors, ça fonctionne, toutefois, avant de m'afficher mon InputBox, il me donne un message :
"Instruction SQL non valide; 'DELETE','INSERT','PROCEDURE','SELECT' ou 'UPDATE' attendus".
D'où cela peut-il provenir ?

"There are 10 kinds of people. Those who understand binary notation, and those who do not."