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 13/06/2011, 13h07   #1
Invité de passage
 
Inscription : juin 2008
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 24
Points : 1
Points : 1
Par défaut fichier bat généré par vb access et accents

Bonjour, question certainement posée 200 fois, j'ai fait des recherches sur les forums mais je n'ai pas trouvé la réponse.
Par programmation vb sous access, j'ai créé un fichier bat pour pouvoir mettre à jour une appli. Comme s'est sur un réseau, le programme identifie l'utilisateur, puis écrit dans le fichier bat la fonction de copy ainsi que tous les chemins où se trouvent le fichier à charger et à recopier. Le but étant d'automatiser le processus pour les utilisateurs.

Sauf que s'il y a des noms de chemin avec accents, le lancement du bat qu'il soit par shell, ou manuellement ou par la commande msdos call copy.bat, les caractères accentués sont remplacés par un signe cabalistique et n'indiquent donc plus les vrais chemins.

Par contre, si je fais un copié collé du texte du bat et que je l'introduit dans la console de commande msdos, tout fonctionne. Voilà je n'arrive pas à m'en sortir, j'ai utilisé CHCP 1252, bref je crois avoir tout fait Avez vous trouvé la solution ? çi dessous programme VB
Code :
1
2
3
4
5
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(EmplacementUtilisateur & "\Copy.bat", 2, True, TristateUseDefault)
f.Write "copy """ & EmplacementNewAppliServeur & """ """ & EmplacementUtilisateur & "\PrevisionsRedactions.mdb"""
f.Close
Shell EmplacementUtilisateur & "\Copy.bat"
jbellein est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 13h43   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 736
Points : 10 736
Envoyer un message via MSN à jpcheck
salut,

perso j'utilise la fonction issue de la

qui donne
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Function EcrireFichierTexte(strText As String, strpathfile As String) As Boolean
Dim F As Integer
On Error GoTo fin
    F = FreeFile
    Open strpathfile For Append As #F
    Print #F, strText
    Close #F
    EcrireFichierTexte = True
    Exit Function
fin:
If Err.Number = 61 Then ' accès en écriture du fichier non accepté
    EcrireFichierTexte = False
End If
End Function
Et en testant avec un caractere accentue ca donne
Code :
1
2
3
4
 
Sub piou()
EcrireFichierTexte "testÉ", "C:\temp\jp.bat"
End Sub
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 14h41   #3
Invité de passage
 
Inscription : juin 2008
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 24
Points : 1
Points : 1
Par défaut re: merci pour la réponse

J'ai testé la fonction, mais le résultat est le même. dur dur ! merci pour la réponse
jbellein est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 14h45   #4
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 736
Points : 10 736
Envoyer un message via MSN à jpcheck
Est-ce que tu parles du contenu du fichier bat ou de ce qui s'affiche lors de l'execution de ce fichier ?
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 15h02   #5
Invité de passage
 
Inscription : juin 2008
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 24
Points : 1
Points : 1
Par défaut re:

Le contenu du fichier BAT est correct, c'est son exécution qui pose problème, lancé soit shell soit manuellement, ou bien en faisant un call, les caractères accentués ne sont pas gérés par msdos? par contre lorsque je fais un copié collé du contenu du fichier bat et que je l'introduis dans la console msdos la ligne de commande fonctionne normalement !
jbellein est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 15h17   #6
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 736
Points : 10 736
Envoyer un message via MSN à jpcheck
ok,

remplace alors dans la syntaxe les caracteres accentues par leur valeur en code ascii

exemple (toujours avec la meme fonction) :
Code :
1
2
3
Sub piou()
EcrireFichierTexte "C:\temp\" & Chr(138) & "\jp.bat" & vbCrLf & "pause", "C:\temp\test.bat"
End Sub
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 15h25   #7
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

regarde comment je fais ici

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 16h36   #8
Invité de passage
 
Inscription : juin 2008
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 24
Points : 1
Points : 1
Par défaut re : mille merci c'est Ok

Pas évident à connaitre, donc c'est ok, j'ai introduit les lignes dans ma fonction, ca remplace apparement les "é" pas une virgule, mais s'est décodé par msdos correctement. Remerciements de votre intérêt à cette question, cela me prenait la tête. Je vais bien dormir ce soir.
jbellein 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 00h57.


 
 
 
 
Partenaires

Hébergement Web