jdddeschamps
Messages postés13Date d'inscriptionjeudi 18 décembre 2008StatutMembreDernière intervention23 mars 2009
-
23 mars 2009 à 11:38
jdddeschamps
Messages postés13Date d'inscriptionjeudi 18 décembre 2008StatutMembreDernière intervention23 mars 2009
-
23 mars 2009 à 17:52
Horreur !
Je ne peux pas exécuter une commande shell car les noms de fichiers sont trop longs :
Le fichier dest n'est pas créé. Or quand je regarde l'expression, je me rends compte qu'elle est trop longue :
"C:\Documents and Settings\Deschamps\Mes documents\Elam\VB6_2_4_3_2009_01_01\jetcomp.exe -src:C:\Documents and Settings\Deschamps\Mes documents\Elam\VB6_2_4_3_2009_01_01\BDD\ElamVB5.mdb -dest:C:\Documents and Settings\Deschamps\Mes documents\Elam\VB6__"
Avec shell, ça ne marche pas, c'est normal, l'expression fait plus de 255 caractères
Avec shellexecute et chemin complet, ça ne marche pas ; c'est étonnant car l'expression de lpParameters ("-src:" & Src & " -dest:" & Dest) fait moins de 255 caractères.
Une erreur de syntaxe ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
le long erreur retourné est 42.
42 est supérieur à 32, il s'agit donc du handle de l'application qui a été lancé.
Shellexecute s'est donc déroulé normalement et n'a retourné aucune erreur.
Cependant, le fichier Dest n'a pas été créé.
En revanche, si je vais dans app.path, que je double-clique jetcomp.exe, que je sélectionne le fichier Src en source et Dest en destination, jetcomp.exe crée bien le fichier de destination.
C'est quand j'utilise shellexecute que je ne parviens pas à créer le fichier Dest.
Merci de ce que vous pourrez trouver pour résoudre le problème
jdddeschamps
Messages postés13Date d'inscriptionjeudi 18 décembre 2008StatutMembreDernière intervention23 mars 2009 23 mars 2009 à 16:58
J'ai eu du mal ; il fallait effectivement ajouter des chr(34) (guillemets).
J'ai dû aussi ajouter le paramètre -v3 ; je pense que cela correspond à msjet 3.51 mais je ne suis pas sûr.
Voici le résultat final (à tester sur d'autres machines et dans la durée) :
On Error GoTo erreurBDD
Set db = OpenDatabase(App.Path + "\BDD\elamVB5.mdb")
db.Close
GoTo fin
erreurBDD:
'************ code à prévoir si la réparation par jetcomp n'a pas fonctionné
fin:
end sub
J'ai essayé avec une bdd corrompue en Src et le code la répare automatiquement.
Merci à Renfield, je ne compte plus les fois où tu me dépannes.