Les ' d'une requêtre SQL dans du code VB [Résolu]

Signaler
Messages postés
14
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 septembre 2009
-
Messages postés
14
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 septembre 2009
-
Bonjour,
Voici mon problème, j'aimerais lister les database de mon serveur, j'ai trouvé le code qui fait ça :

select NAME from master..sysdatabases WHERE NAME NOT IN
('MASTER', 'TEMPDB', 'MODEL','MSDB','PUBS','NORTHWIND')

Seulement  ' correspond aussi aux commentaires en VB quand je veut faire ma requête avec
ChaineDB = cn.Execute "select NAME from master..sysdatabases WHERE NAME NOT IN" & _

"('MASTER', 'TEMPDB', 'MODEL','MSDB','PUBS','NORTHWIND')"

ça ne marche évidemment pas.

J'ai essayer de doublier les ', mais le compilateur les voyais toujours comme des commentaires.

Qu'est-ce que je dois faire pour que ça fonctionne ??

Merci d'avance pour votre aide,
Ivy

9 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
oupps, oui j'avais pas vu :

ChaineDB = cn.Execute (
"select NAME from master..sysdatabases WHERE NAME NOT IN" & _
"('MASTER', 'TEMPDB', 'MODEL','MSDB','PUBS','NORTHWIND')" )

---- Sevyc64  (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Recordset est un objet

faut mettre Set devant

Dim oRS as Recordset
Set oRS = cn.Execute("select NAME from master..sysdatabases WHERE NAME NOT IN ('MASTER', 'TEMPDB', 'MODEL','MSDB','PUBS','NORTHWIND')")
Do Until oRS.EOF
List1.AddItem oRS.Fields("NAME").Value
oRS.MoveNext
Loop
oRS.Close
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
tes ' sont inclus dans une chaine de caractère, le compilateur ne doit pas les interpréter comme des commentaire. Si c'est le cas, c'est VB qui merde. Enregistre tout ferme VB et relance le

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
14
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 septembre 2009

salut casy,
Tu as raison, en fait -c'est marrant- ce ne sont pas les ' qui merde mais le fait que je mette ChaineDB = ... (il est en string)
Pourtant je ne vois pas comment je pourrais récupéré la liste de mes DB autrement Oo
Messages postés
14
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 septembre 2009

Ah ouais super, comme ça il accepte, :-p
Merci beaucoup
Ivy
Messages postés
14
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 septembre 2009

Par contre ça m'est impossible de stocker le résultat de la requête où que ce soit Oo
string   = type incompatible
List     = type incompatible
fichier  = type incompatible

Dans quel type de variable puis-je stocker ce que ça me retourne, sachant que c'est la liste des database du serveur sql ??
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
RecordSet
Messages postés
14
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 septembre 2009

Salut Renfield,
Merci pour ta réponse mais soit plus précis, je ne suis pas certaine d'avoir compris juste.
J'ai donc fait
dim chaineDB as recordset
' j'ai ouvert la connexion au serveur sql, puis
ChaineDB = cn.Execute(
"select NAME from master..sysdatabases WHERE NAME NOT IN" & _
"('MASTER', 'TEMPDB', 'MODEL','MSDB','PUBS','NORTHWIND')" )

et alors maintenant l'erreur est : "erreur de compilation : utilisation incorrecte de la propriété"
étais-ce bien ça que tu voulais me faire comprendre ?
Messages postés
14
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 septembre 2009

Super ça fonctionne !!!
Merci beaucoup !!!
Ivy