Problème avec requête sur plusieurs champ

ndaseraphin Messages postés 74 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 1 février 2012 - 16 mai 2011 à 12:34
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 16 mai 2011 à 13:05
bonjour,
S'il vous je veux de l'aide. voici mon problème:
J'ai fais une requête sur plusieurs champs:

Private Sub CmbAgent_Click()
'On Error Resume Next
Dim RS As ADODB.Recordset, SQL As String

Set RS = New ADODB.Recordset
SQL = "SELECT Numero_agent,Nom_agent,Prenom_agent From AGENT WHERE [Numero_agent]+ SPACE(8)+[Nom_agent]+ SPACE(8)+[Prenom_agent]='" & Cote_en_DoubleCote(Trim(CmbAgent.Text)) & "';"
RS.Open SQL, cn
Err.Clear
RS.MoveFirst
If Err.Number = 0 Then
txtCodeAgent.Text = RS.Fields(0).Value
End If
End Sub

quand j'exécute il m'affiche cette erreur:
erreur d'éxécution '3021':
bof ou eof est égal à true ou l'enregistrement actuel a été supprimé.l'opération demandée necesite un enregistrement actuel
Pourtant j'ai bien un enregistrement concernant l'info sélectionner dans ma table AGENT.
Comment faire une requête sur plusieurs champs?.
Merci

2 réponses

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
16 mai 2011 à 13:02
Salut

Que vaut RS.RecordCount après le .Open ?
Il faut toujours le tester, sinon le .MoveFirst ne peut pas agir sur 0 élément.

Plutôt que de demander à SQL de faire la concaténation de champs (numérique/String tjrs douteux), mieux vaudrait décomposer le contenu de CmbAgent.Text pour sortir chaque champ à comparer

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)
0
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
16 mai 2011 à 13:05
PS : Mieux vaudrait mettre entre crochet [ et ] les noms des champs qui comportent des espaces, des tirets, des accents, etc
Numero_agent --> [Numero_agent]
0
Rejoignez-nous