Concatenation dans une requette

pierre4064 Messages postés 28 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 31 mars 2004 - 25 mars 2004 à 13:50
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 26 mars 2004 à 10:14
Pour une requette SqL j'ai un select aléatoire en fonction de checkbox cochées ou pas...
_______________________________________________________

Ainsi ca ressemble a ca:

If Consultation.AD = True Then
AD = "Numéro" & "," & " adresse"
End If

qtR = "SELECT '" & AD & "' FROM entreprises where commune= 'lons' ORDER BY NomEntreprise"

Rs.Open Rqt, cn
_________________________________________________________

Mais la variable AD recoit 'numéro, adresse'

Et le select n'accepte pas les ' '

select numéro => marche
select 'numéro' => marche pas

Quelqu'un connait 'il le moyen de concatener sans les ' '
ou des les enlever par la suite...

On m'a dit:
Non AD ne contient pas : 'numéro, adresse' !!!!
AD contient ceci : numéro, adresse
C'est toi qui ajoute les simple quotes dans la cosntruction de ta requête. Au lieu de ...
qtR = "SELECT '" & AD & "' FROM ...
fait ceci ...
qtR = "SELECT " & AD & " FROM ...

mais ca ne march pas :"( , en effet a présent :

qtR contient => select from.......

La valeur de AD n'est plus reconnue dans la requette

Avant qtr <= select 'nom' from <= march pas
Puis qtr <= select from <= march pas non plus

Je vous remercie par avance de votre aide.

8 réponses

Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
25 mars 2004 à 14:07
Salut ;O)

Il faut doubler les quotes ( ' )

Utilise la fonction Replace:

Replace(MaChaine,"'", "''")

qtR = "SELECT '" & Replace(AD,"'", "''")
& "' FROM entreprises where commune= 'lons' ORDER BY NomEntreprise"

Guy
0
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
25 mars 2004 à 14:09
Re ;O)

J'avais pas fait attention:
Pas de quotes ( ' ) dans le Select. Ce n'est syntaxiquement pas correct.

"SELECT '" & AD & "' FROM ...
devient
"SELECT " & AD & " FROM ...

Eventuellement, utilise replace pour la variable AD pour virer les quotes.

Guy
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
25 mars 2004 à 14:11
Pour la partie select d'une requete SQL

Tu ne doit pas avoir de '
A moins d'utiliser le nom du champ entre []
(ca doit marcher)
pour le nom du champs si il y a une apostrophe
mais en general il fuat eviter ces caracteres

Pour le sql
1--> "select nom, prénom from personne"
2--> "select personne.[nom], personne.age,prénom from personne"

3--> str = "nom, prénom"
"sleect " & str & from personne

les apostrophes sont pour la clauses where pour les champs alphabethiques

"select * from personne where nom = 'pierre44'"

j'espere que ca t'eclaire un peu
0
pierre4064 Messages postés 28 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 31 mars 2004
25 mars 2004 à 14:24
Parfait les [ ] fonctionnent parfaitement merci beaucoup ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pierre4064 Messages postés 28 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 31 mars 2004
25 mars 2004 à 15:45
J'ai un autre problème:

RQT : "SELECT [Categorie] FROM entreprises
RQT : "SELECT [NomEntreprise] FROM entreprises
=> fonctionnent

RQT : "SELECT [NomEntreprise, Categorie] FROM entreprises
=> ne fonctionne pas

Ca me marque Aucune valeur donée pour un ou plusieurs paramètres requis

Pouvez vous m'aider s'il vous plait ???
0
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
25 mars 2004 à 19:05
Salut ;O)

Essaye plutot ceci:

SELECT [NomEntreprise], [Categorie] FROM entreprises

Guy
0
pierre4064 Messages postés 28 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 31 mars 2004
26 mars 2004 à 09:35
En fait ce n'est pas aussi simple car le nombre de variables dans le select est lui aussi aléatoire se qu'il fait qu'il n'est pas possible de mettre les virgules a l'avance car si on en met pas assez ou si on en met trop cela ne marche pas.

Je vous remercie de votre réponse . ;)
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 mars 2004 à 10:14
Pour la gestion des virgules il faut que tu tourne le pb a l'envers
tu as surement un champ que tu utilises toujours dans ta requete qui est la cles primaire l(identifiant de ton enregistrement.

Don tu mets ce champ en premier.
et apres tu boucles ou ajoutes les autres champs
---> plus de problemes de virgules

str = " , prenom"
str = str & " , nom"
str = .....

strsql = "select ID " & str & " from table"

si tu as remarqué
la virgule est placé comme il faut et te genes plus pour ajouter les champs suivants.
0
Rejoignez-nous