[Access2007] VBA problème sur SELECT

Résolu/Fermé
ppc77 Messages postés 48 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 1 avril 2010 - 21 août 2009 à 17:39
ppc77 Messages postés 48 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 1 avril 2010 - 21 août 2009 à 18:35
Bonjour à tous
Besoin d’un coup de main, je galère depuis ce matin sur ces quelques lignes (ACCES 2007)
ci-dessous ma routine VBA, qui devait me permettre de visualiser dans un formulaire le numéro de dossier d’un client en recherchant d’après le nom du client (champ ClientNOM dans le formulaire) dans la table CLIENT.
Cela me semblait tout bête, puisque déjà fait plusieurs fois…. Pis… ben la chaleur, la fatigue ? impossible de mettre au point cette… de séquence.
Si je remplace par
LIGNE A :VarSql = "SELECT CliNumDossier FROM Clients WHERE Clinom= '' & ''DUPONT" & '' ;"
Cela fonctionne
Si je compare visuellement le contenu de varsql de la ligne A au contenu de varsql LigneB : il sont (ou du moins semblent identiques).
Si j’incluse dans ma routine un varsql bis pour la ligne B et que je fasse un if varsql <> varsqlBis…. Ils sont différents.
Je suis incapable de voir cette différence

Alors je m’en remets à vous….Merci à tous pour votre aide
Bonne vacances à ceux qui vont partir

Patrick

Private Sub Dossier_GotFocus()
If Dossier = 0 Then
‘Si le numéro de dossier est égal à 0, recherche dans CLIENTS sur nom et prénom pour trouver dossier
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim VarSql As String
Set db = Application.CurrentDb
On Error GoTo ErrCherchDos
LIGNE B : VarSql = "SELECT CliNumDossier FROM Clients WHERE (Clinom= ''" & Me.ClientNom & "'');"
‘Clinom = Nom du champ dans la table ‘clients’
‘ClientNOM = Dans le formulaire ouvert, nom du champ contenant le nom du client à rechercher

Set rs = db.OpenRecordset(VarSql)

‘******************************* VISU MESSAGE D’ERREUR
‘Erreur d’exécution 3075
‘Erreur de syntaxe (opérateur absent) dans l’expression '' (Clinom= ''DUPONT'') ''
‘**************************************************************


If rs.RecordCount > 0 Then
Me.DossierINSERR = rs!ExpNumDossier
Else
Me.DossierINSERR = 0
End If
rs.Close
Set db = Nothing
Set rs = Nothing

End If
Exit Sub

ErrCherchDos: MsgBox Err.Description

End Sub

2 réponses

blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 août 2009 à 18:18
Salut,

pourquoi est-ce que tu mets des quotes à n'en plus finir ?

Essaye ça :
(Clinom= '" & Me.ClientNom & "');" 

A+ Blux           
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
ppc77 Messages postés 48 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 1 avril 2010 2
21 août 2009 à 18:35
bonjour blux
pourquoi tant de quotes ???? bonne question .... Bien entendu ta réponse a résolu le 'problème' qui n'aurait pas dû en être un...
Avoir perdu tant de temps pour ça, on peut dire que les quotes m'on co(u)té cher.

Merci beaucoup à toi et tous les autres, et encore une fois bonnes vacances pour les concernés.

Patrick
0