Variable dans commandtext

Signaler
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008
-
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008
-
Bonjour, encore moi,

J'ai ce code (sous excel 2003):With ActiveSheet.QueryTables.Add(Connection:_<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" /??>

        "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=******;PWD=******;SERVER=******;Destination:=Range("A1"))

        .CommandText = Array("Ma_Seletion; ......"
 & Chr(13) & "" & Chr(10) & "FROM SERVEUR.MATABLE MATABLE" & Chr(13) & "" & Chr(10) & "WHERE (MATABLE.DATE Like '01/04/2008')")

Donc je donne un critère pour ma requete "Quand la date commence par 01/04/2008".
ca marche très bien sauf que:
Je voudrais changer la date.
J'ai créé pour cela une variable qui contient "WHERE (MATABLE.DATE Like '01/04/2008')" avec la date qui change comme je le veux.
Sauf que si je remplace dans mon code "WHERE (MATABLE.DATE Like '01/04/2008')" par ma variable ca ne marche plus.
Comment pourrais-je faire ?
Merci

20 réponses

Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
re:

En réalité il n'y a que ta date qui va être dynamique. Pour ne pas mettre simplement ta date en dynamique c'est à dire dans une variable.
Ca te donnerai un truc genre :





With ActiveSheet.QueryTables.Add(Connection:_<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" /??>











        "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=******;PWD=******;SERVER=******;Destination:=Range("A1"))











        .CommandText = Array("Ma_Seletion; ......"





 & Chr(13) & "" & Chr(10) & "FROM SERVEUR.MATABLE MATABLE" & Chr(13) & "" & Chr(10) & "WHERE (MATABLE.DATE Like '" &maVariable & "')")


Je ne suis pas spécialiste en vba mais voila ce que j'en pense...
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Merci lillith je vais essayer,


mais je penssais a un truc il faut peu etre convertir ma variable en texte, mais j'ai oublier le code ...
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
re:

la commande Cstr(maVariable) converti en string...
Et voila...
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

merci mais j'ai bien regardé je n'ai rien oublier et pourtant ca ne marche toujours pas
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
tu as quoi comme message d'erreur?
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Ben en fait c juste que ca marche pas car si je met une date fixe ca marche et sinon ca ne remplis pas la table
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
je ne comprends pas cette manie d'utiliser LIKE pour trouver .... la valeur exacte ...

bref.

une date, (énième question posée concernant ce point précis...)
se formatte ainsi :

"... WHERE `Date` = #" & Format$(maVariableDate, "MM\/DD\/YYYY") & "# "
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Merci de ta réponse mais je n'arrive pas trop a voir ta ligne de commande.
Mon like me permet de choisir la date avec "commence par ..." car dans ma colonne j'ai la date et l'heure .
Voila
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

de plus je vien d'essayer ton code mais je n'ai toujours rien dsl.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
aucune utilité également de faire ... & "" & ....

pour en revenir a ma proposition de code (avec LIKE, si ca te chante) :

.CommandText = Array("Ma_Seletion; ...... " & _
"FROM SERVEUR.MATABLE MATABLE " & _
"WHERE (MATABLE.DATE Like #" & Format$(maVariable, "MM\/DD\/YYYY\/") & "# ")
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Merci je vais essayer. Pour le coup du ...&""&... C'est un enregistrement de macro donc il a enregistré ca et je n'ai pas enlevé car débutant en vba .
Merci encore
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
ok, je vois ca souvent, j'ignorais que l'enregistreur de macro ajoutais cela...
j'ai appris un truc, encore, aujourd'hui ^^
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Bon ca ne marche toujours pas.
A chaque fois j'ai une erreur sur "Refresh BackgroundQuery:=False".
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
possible de passer par un Long, pour virer l'heure :

.CommandText = Array("Ma_Seletion; ...... " & _
"FROM SERVEUR.MATABLE MATABLE " & _
"WHERE (ROUND(MATABLE.DATE,0) = #" & Format$(maVariable, "MM\/DD\/YYYY\/") & "# ")
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Désolé mais ya pas moyen le .Refresh BackgroundQuery:=False fait toujours des siennes. a chaque fois je compile ca marche mais a l'éxecution erreur 1004 refresh en jaune et si je met une date fixe je n'ai pas ce probleme donc ca doit venir du code de la variable .
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
quelle est ton erreur (le texte, s'il te plait)
?
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Erreur d'éxecution '1004' :
Erreur de syntax SQL
Débogage : .Refresh BackgroundQuery:=False          surligné ne jaune
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Sinon pour résoudre le probleme j'ai crée une variable p = """WHERE (MATABLE.DATE Like '')""" dans laquelle j'ajoute la date que je veux.
Ca ca marche j'ai pnew= "WHERE (MATABLE.DATE Like '23/04/2008')"
Donc c'est bon maintenant il faudrait mettre pnew dans le commandtext. Mais si je met directement pnew ca ne marche pas : meme erreur meme débogage.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
ton champ date n'est pas au format date/heure, si ?
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

non ya juste la date