Pb de requete SQl

Résolu
defdlm Messages postés 13 Date d'inscription jeudi 13 octobre 2005 Statut Membre Dernière intervention 25 septembre 2007 - 30 nov. 2005 à 20:02
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 30 nov. 2005 à 20:47
Bonjour voici un code VB6 qui me pose pb:
En faite j'ai une table livreur qui contient x enregistrement et je souhaite recupere le numliv du premier enregistrement afin de l'afficher ds la message box, la ca fonctionne pas car je récupere plusieur enregistrement ca marche si je met le like afin qu'il trouve un seul enregistrement
Merci de m'aider

Function RecupeNumLiv()
Dim rsNumLiv As New ADODB.Recordset
Dim conNumLiv As ADODB.Connection


Set conNumLiv = New ADODB.Connection
conNumLiv.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=.\db1.mdb"
Set rsNumLiv = New ADODB.Recordset
'on recupère le numcli grace au telephone
lInsertReq = "SELECT numliv From livreur Where (((nomliv)Like ""*""))"
'ouverture du recordset pour executer la requete
conNumLiv.Open
rsNumLiv.Open lInsertReq, conNumLiv
lnumlivR = rsNumLiv("numliv")
rsNumLiv.Close
conNumLiv.Close
Set rsNumLiv = Nothing
Set conNumLiv = Nothing


MsgBox lnumlivR


End Function

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 nov. 2005 à 20:47
Salut
Le b.a.ba de la syntaxe SQL :
- Pour le fond : Si tu mets un "Like *", c'est comme si tu ne mettais rien (quel intérêt ?)
- Like ne peut pas s'appliquer à des champs numériques, uniquement texte
- SQL accepte les " comme les ' pour encadrer les textes : Il faut profiter du ' car " est déjà utilisé par VB
- Pas la peine d'encombrer avec des niveaux de parenthèses qui ne servent à rien
- Si tu as des noms de table ou de champ qui sont spéciaux (accentués ou avec espaces), ajoute des [ et ] pour encadrer le nom. Exemple :
"SELECT [Nom du Livreur] From [Table des Livreurs]"
- Sous SQL, ce n'est pas * mais % (et _ pour un caractère)
Donc, ta requète devient :
"SELECT numliv From livreur"
ou, si tu as des restrictions valables :
"SELECT numliv From livreur Where numliv between 0 and 10"
Si tu ne veux que le premier qu'il trouvera :
"SELECT distinct numliv From livreur"
Pour un champ de type texte, un exemple :
"SELECT NomLivreur From Livreur Where NomLivreur Like 'Vincent %' "

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
3
Rejoignez-nous