[vba] pb de & ds une url

  • Auteur de la discussion karpette
  • Date de début

karpette

Nouveau membre
Je travaille sur windows xp pro et sur access 2003.
J'avais à lancer msdos à partir de acces, ca cs'est bon mais la le problème est que mon url contient des & donc ce qui fait que lorsque je lance dos ce qui donne:
Shell Environ$("comspec") & " /c start " & url
Le problème est qui'il lance l'url en s'arrétant au premier &: par exemple si l'url est www.google.fr/fr&video (c'est un exemple), il va pas prendre en compte ce qu'il y a aprés le & donc il lance www.google.fr/fr.

Alors voila est ce que quelqu'un peut m'expliquer comment résoudre ce problème de &.

D'avance merci.
 

Nova13

Habitué
C'est peut-etre (surement :D ) une betise ce que je vais dire mais la bidouille ca marche souvent.
Remplace ton '&' par une variable type string et tu l'insère dans ton url
Code:
dim i as string
i=&
Shell Environ$("comspec") " & i & "  /c start " & url

 

zeb

Modérateur
Nova13> C'est sûr, ça ne compile même pas :(

Avant de faire la commande shell ajoute un msgbox et donne nous le résultat :
Code:
MsgBox <trucs utiles>
Shell <trucs utiles>

Au vu des résultats probables, je te proposerai sans doute de mettre l'URL entre double-quotes.
 

Johan_et_Pirlouit

Grand Maître
Il n'y a pas une entité spécifique à utiliser à la place de '&', à la manière du '&amp;' en HTML (d'ailleurs obligatoire dans les URLs en XHTML) ? Si tu essaies ce '&amp;', ça donne quoi ?

:merci:
 

karpette

Nouveau membre
Ma commande fonctionne je n'ai pas d'erreur de deboguage. Le seul problème est que je dois remplacer les & par d'autre codes équivalent pour que cela fonctionne car si je laisse des & en fait il arréte l'url au premier & trouvé.
 

karpette

Nouveau membre
Si quelqu'un connait on m'a conseillé de faire cela:
url=a & b & c
texte = Replace(url, "&", "%26")

Je dois en fait remplacer les & par des %26 mais meme en essayant dans IE il ne convertit pas les %26 en & donc l'url n'est pas bonne.
 

Johan_et_Pirlouit

Grand Maître
Tu as essayé avec ce que je t'ai dit : à savoir &amp; ? Parce que &amp; est l'entité HTML qui remplace le & dans le code de la page............

Et pour être complet, tous les navigateurs Web reconnaissent les entités HTML et les convertissent automatiquement en les remplaçant par le caractère indiqué : pour &amp; le navigateur affichera &..

:merci:
 

zeb

Modérateur
Non J&P. C'est CMD.EXE qui interprète le &.
[fixed]start www.google.fr/fr&video[/fixed]est vu comme[fixed]C:\> start www.google.fr/fr
C:\> video[/fixed]:( Donc si tu ajoutes un &amp; ça ne change rien.
 

Johan_et_Pirlouit

Grand Maître
Vu :merci:.. Mais apparemment, il envoie l'URL pour être exécutée par le navigateur, c'est pour ça que je pense à l'entité HTML [:spamafote]..

:merci:
 

KangOl

Grand Maître
ha ! faut l'echaper :o
[fixed]start www.google.fr/fr^&video[/fixed]
 

zeb

Modérateur
Evidemment !
Comment devine-t-on que ^ est le caractère d'échappement de CMD.EXE ?

(google ?)
 

karpette

Nouveau membre
Merci beaucoup cela fonctionne. Vous m'enlevez un eépine du pied.
Encore un gros merci.
 

Johan_et_Pirlouit

Grand Maître
Et moi j'ai appris un p'tit truc toujours utile, au passage ;)..

:merci:
 

zeb

Modérateur
J&P> moi aussi ;)
KangOl> J'insiste.... , où as-tu pêché cette info ?
 

KangOl

Grand Maître
c'est un colègue qui me l'as dit il y a quelques semaines [:joce]

je suppose qu'il l'a trouvé sur google ...
 

Johan_et_Pirlouit

Grand Maître
En même temps, c'est vrai que le coup de l'échappement des caractères réservés est un classique en prog, mais on n'y pense pas à tous les coups, surtout quand ça paraît anodin comme dans une commande DOS..

:merci:
 

zeb

Modérateur
Ben si, pour moi c'est clair. Habitué au C, d'une part, sous Unix de l'autre, et au commande sed, grep, etc, c'est un grand classique.

Mais je savais que cela n'existais pas sous DOS...... Jusqu'au post de KangOl :whistle:
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 852
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut