Utiliser le shell dans access [Résolu]

Messages postés
308
Date d'inscription
mardi 1 juin 2004
Dernière intervention
23 mars 2010
- - Dernière réponse : alias666
Messages postés
308
Date d'inscription
mardi 1 juin 2004
Dernière intervention
23 mars 2010
- 25 avril 2006 à 11:39
Bonjour à tous,

Apparement pas beaucoup de personne n'a répondu a mon message peut était il mal exprimé donc je m'y reprend :p

Je voudrais ouvrir un fichier .dot (modèle Word) à partir de code VBA sous Access 97. Le chemin du fichier .dot est stocké dans une table nommée "t_chemin_fichier_dot" sous le champ nommé "CheminRelance".
Pour cela j'utilise un bouton (btnEdition) et je veux utiliser un shell derriere ce bouton.
Vous avez compris ?
Merci

_______________________ <<<< :-: 4L!@$ :-: >>>>
Afficher la suite 

14 réponses

Meilleure réponse
Messages postés
189
Date d'inscription
mercredi 21 août 2002
Dernière intervention
19 janvier 2011
3
Merci
... quand on est pas dedans ... ;-)
je pensais que tu écrirais le chemin word en dur ... mais bon s'il est dans ta table c'est plutot ça! !!!

Set Tbl = BDD.OpenRecordset("select CheminRelance,CheminWord from T_Chemin_fichier_dot ")
Fic_a_ouvrir=Tbl!CheminWord & " " & Tbl!CheminRelance
Shell Fic_a_ouvrir

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 124 internautes nous ont dit merci ce mois-ci

Messages postés
189
Date d'inscription
mercredi 21 août 2002
Dernière intervention
19 janvier 2011
0
Merci
dans le code de ton bouton :
dim BDD as database
dim Tbl as recordset
set BDD=opendatabase("chemin de la base")
set Tbl=BDD.openrecordset("select CheminRelance from
t_chemin_fichier_dot")
shell tbl!CheminRelance
Tbl.close
BDD.close

de tête, ça doit etre à peu près ça ...
après il y'a peut etre des conditions à rajouter das le select si tu as plusieurs enreg et un controle avant le shell pour s'assurer qu'il y'a bien un enreg (Tbl.recordcount <> 0)

à essayer !
Messages postés
189
Date d'inscription
mercredi 21 août 2002
Dernière intervention
19 janvier 2011
0
Merci
j'ai oubilé un truc ...
dans ton shell il ne faut pas oublier de lancer l'appli avec laquelle tu veux ouvrir le .dot, word je pense .. et tu passes en paramètre le chemin du fichier
shell chemin_word & " " & tbl!CheminRelance
Messages postés
308
Date d'inscription
mardi 1 juin 2004
Dernière intervention
23 mars 2010
0
Merci
J'ai donc rajouté chemin_word dans la base avec le chemin correspondant au .exe sinon pour ce qui est du shell pour le passage en paramètre j'ai cela

Private Sub edition_Click()
Dim BDD As Database
Dim Tbl As Recordset
Dim CheminWord As String
Set BDD = OpenDatabase("cheminbase...")
Set Tbl = BDD.OpenRecordset("select CheminRelance from T_Chemin_fichier_dot ")
Shell CheminWord & " " & Tbl!CheminRelance
Tbl.Close
BDD.Close
End Sub

Quel est le problème malgré que j'ai déclaré le chemin en tant que string?

_______________________ <<<< :-: 4L!@$ :-: >>>>
Messages postés
189
Date d'inscription
mercredi 21 août 2002
Dernière intervention
19 janvier 2011
0
Merci
tu as bien un seul enregistrement dans ta table T_Chemin_fichier_dot ??? avec 2 champs CheminRelance et chemin_word.
ce code me semble correct, où est ce que ça plante ? enfin ça plante où c'est le fichier qui ne s'ouvre pas ?
Messages postés
308
Date d'inscription
mardi 1 juin 2004
Dernière intervention
23 mars 2010
0
Merci
J'ai bien une ligne d'engistrement mais j'ai 4 champs :
-IdChemin
-CheminRelance
-CheminWord

Sinon ca plante la

Shell CheminWord & " " & Tbl!CheminRelance

_______________________ <<<< :-: 4L!@$ :-: >>>>
Messages postés
308
Date d'inscription
mardi 1 juin 2004
Dernière intervention
23 mars 2010
0
Merci
pardon

-IdChemin
-CheminRelance
-CheminRetour
-CheminWord

_______________________ <<<< :-: 4L!@$ :-: >>>>
Messages postés
189
Date d'inscription
mercredi 21 août 2002
Dernière intervention
19 janvier 2011
0
Merci
essaie ça mais bon ... ça change rien normalement
dim Fic_a_ouvrir as string

Fic_a_ouvrir = CheminWord & " " & Tbl!CheminRelance
shell Fic_a_ouvrir

c'est quoi l'erreur exacte ... parceque normalement c'est bon ce code !
et regarde ce que tu as dans la variable Fic_a_ouvrir
Messages postés
308
Date d'inscription
mardi 1 juin 2004
Dernière intervention
23 mars 2010
0
Merci
donc fic_a_ouvrir je recupere bien le chemin de mon fichier .dot
Sinon l'erreur est "Erreur d'exécution - fichier introuvable" Erreur 53.

_______________________ <<<< :-: 4L!@$ :-: >>>>
Messages postés
189
Date d'inscription
mercredi 21 août 2002
Dernière intervention
19 janvier 2011
0
Merci
ok, mais dans fic_a_ouvrir, il faut que tu aies (exemple) : "c:\program files\...\word.exe c:\dossier\fic.dot")

tu as essayé ça : ?
Set Tbl = BDD.OpenRecordset("select CheminRelance,CheminWord from T_Chemin_fichier_dot ")
Fic_a_ouvrir=Tbl!CheminWord & " " & Tbl!CheminRelance
Shell Fic_a_ouvrir
Messages postés
308
Date d'inscription
mardi 1 juin 2004
Dernière intervention
23 mars 2010
0
Merci
Cela viendrait-il du fait que mon fichier .dot soit sur un server malgré que j'ai tous les droits d'accès ?

_______________________ <<<< :-: 4L!@$ :-: >>>>
Messages postés
308
Date d'inscription
mardi 1 juin 2004
Dernière intervention
23 mars 2010
0
Merci
Bah oui chui con moi mdr ^^ Bien joué

_______________________ <<<< :-: 4L!@$ :-: >>>>
Messages postés
189
Date d'inscription
mercredi 21 août 2002
Dernière intervention
19 janvier 2011
0
Merci
je te suis plus trop avec tous tes mess ... c'est bon alors ?

non je pense pas que ça vienne du fait que ton fichier soit sur un serveur, du moment que ton chemin est bien de la forme X:\ ... .dot
Messages postés
308
Date d'inscription
mardi 1 juin 2004
Dernière intervention
23 mars 2010
0
Merci
Ouai c'est bon le code mais je me rend compte qu'en fait ca m'ouvre le fichier .dot comme si je faisas un clic droit "ouvrir" et donc du coup il ne s'execute pas j'ai trouve la piste suivante apparement. Ce n'est qu'un début

Dim objword
Set objword = CreateObject("Word.Application") 'manque qqchose avant create object
objword.Documents.Add nom_du_fichier

_______________________ <<<< :-: 4L!@$ :-: >>>>

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.