Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2011, 01h16   #1
Candidat au titre de Membre du Club
 
Inscription : février 2004
Messages : 59
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 59
Points : 13
Points : 13
Par défaut Problème de parenthèse/guillemet

Bonjour à tous,

Après une soirée à tester toutes les solutions, je viens demander des solutions à d'autres car moi je vais dormir...pas bien car je vais encore y penser..

Je travaille actuellement sur un projet ACCESS (ADP) avec SQLSERVER2005.

Dans un évènement click d'un bouton, je dois lancer une simple requête de contrôle mais dans le WHERE doivent passer des données de type : BRUXELLES (Braine-l'Alleud).
Lorsque je l'exécute, j'obtiens un message d'erreur avec la mention "Nom de colonne non valide: "BRUXELLES (Braine-l'Alleud)" ".

J'ai cru que le problème venait de l'apostrophe mais après avoir essayé beaucoup de chose, je me demande si le problème ne vient pas des parenthèses mais là, je n'ai pas d'idée.

Que me conseillez-vous?
Merci.

Voici mon code:
Code :
1
2
 
strSQL = "SELECT * FROM T_TAXATION_Archive WHERE (exercice = " & Me.txtEXERCICE.Value & ") AND (type = " & Me.chxTYPE.Value & ") AND (ent = """ & Me.lstPRO_ENT.Column(1) & """);"
Voici le debug.print obtenu:
Code :
1
2
 
SELECT * FROM T_TAXATION_Archive WHERE (exercice = 2011) AND (type = 1) AND (ent = "BRUXELLES (Braine-l'Alleud)");
apprenti46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 11h10   #2
Membre chevronné
 
Inscription : mai 2006
Messages : 928
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 928
Points : 762
Points : 762
Bonjour,
essai cela
Code :
SELECT * FROM T_TAXATION_Archive WHERE (exercice = 2011) AND (type = 1) AND (ent = 'BRUXELLES (Braine-l''Alleud)');
cbleas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 11h12   #3
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

Citation:
Je travaille actuellement sur un projet ACCESS (ADP) avec SQLSERVER2005.
J'ignore ce que celà implique de particulier.

En tout cas, j'ai testé ton code avec Access2000 et ton code est correct.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 11h52   #4
Candidat au titre de Membre du Club
 
Inscription : février 2004
Messages : 59
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 59
Points : 13
Points : 13
Merci pour votre aide.

J'ai avancé ce matin grâce à votre aide: le problème principal provient des parenthèses???

En effet, j'ai testé la solution de cbleas: remplacer le simple apostrophe par un double apostrophe

Avec en plus un replace des parenthèses par des tirets et cela fonctionne....j'ai donc la cause du problème mais pas de solution qui me convienne.

Quelqu'un aurait-il une idée??

Citation:
strENT_PRO = Replace(Me.lstPRO_ENT.Column(1), "(", "-")
strENT_PRO = Replace(strENT_PRO, ")", "-")
strSQL = "SELECT * FROM T_TAXATION_Archive WHERE (exercice = " & Me.txtEXERCICE.Value & ") AND (type = " & Me.chxTYPE.Value & ") AND ent = '" & Replace(strENT_PRO, "'", "''") & "'"
apprenti46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 12h01   #5
Membre chevronné
 
Inscription : mai 2006
Messages : 928
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 928
Points : 762
Points : 762
peut être en doublant les parenthèses
cbleas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 12h34   #6
Candidat au titre de Membre du Club
 
Inscription : février 2004
Messages : 59
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 59
Points : 13
Points : 13
Sorry, j'ai testé à nouveau et maintenant cela fonctionne même sans "chipotage" avec les parenthèses.

Voici le code:

Citation:
strENT_PRO = Me.lstPRO_ENT.Column(1)
strSQL = "SELECT * FROM T_TAXATION_Archive WHERE (exercice = " & Me.txtEXERCICE.Value & ") AND (type = " & Me.chxTYPE.Value & ") AND ent = '" & Replace(strENT_PRO, "'", "''") & "'"
A bientôt.

Fred.
apprenti46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h33.


 
 
 
 
Partenaires

Hébergement Web