ndaseraphin
Messages postés74Date d'inscriptionlundi 29 août 2005StatutMembreDernière intervention 1 février 2012
-
16 mai 2011 à 12:34
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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]