problème d'ouverture d'application [ACCESS] - VB/VBA/VBS - Programmation
Marsh Posté le 02-08-2007 à 16:01:53
Bonjour,
stAppName = "C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe C:\Documents and Settings\ENFANTS_2\Mes documents\essaimergeTAM136.pdf"
Call Shell(stAppName, 1)
Fonctionne très bien
Codialement
Marsh Posté le 02-08-2007 à 16:38:19
donc dans mon stappname je met d'abord le chemin d'accès de mon programme, et ensuite celui de mon fichier... merci beaucoup! comme ca j'ai pu voir que je n'avais pas adobe... pas facile d'ouvrir un progamme que l'on a pas...
et penses tu que cela puisse etre dinamique: en l'état, il faut aller dans menu, insertion, objet, chercher l'objet... c'est pénible si la base a besoin de ces manips tout le temps... j'aimerai directement arriver a la fenetre d'exploration, sans passer par le menu...
merci pour tout
Marsh Posté le 02-08-2007 à 20:56:00
Re,
je n'ai pas bien compris ta question, mais voici une séquence d'ouverture de la boite de dialogue:
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.InitialFileName = "C:\Documents and Settings\areitz\Bureau\"
fd.Filters.Clear
fd.Filters.Add "Adobe", "*.pdf"
fd.Show
If fd.SelectedItems.Count > 0 Then MsgBox fd.SelectedItems(1)
Cordialement
Marsh Posté le 03-08-2007 à 09:59:39
en fait, ces lignes de codes apparaitront derrière mon instruction Double click de la zone de lien OLE. en fait, j'aimerai faciliter la procédure de liaison d'un rapport, à savoir ne pas contraindre l'utilisateur a passer par le menu de Access pour lier un rapport de maintenance a un appareil. l'objectif est d'enregistrer le chemin d'accès au fichier PDF dans un champ, et qu'a chaque nouvel enregistrement il soit possible de réitérer la meme manipulation. (on est toujours avec les appareils et les controles qualité... je fais une sorte d'agenda/Inventaire/boite mail apartir d'access... pour la partie boite mail j'ai abandonné... je voulais envoyer par mail aux utilisateurs le nombre de jour restant avant le prochain controle de tel ou tel appareil...
Marsh Posté le 03-08-2007 à 10:19:05
Re,
que contient ton lien ole?
tu veux sur chaque fenètre concernant un appareil disposer d'un moyen d'afficher le pdf sur un simple clic?
Marsh Posté le 03-08-2007 à 10:26:56
oui... je pensais pouvoir enregistrer un lien OLE différent pour chaque enregistrement...
dans ma table "controle qualité niveau B" j'ai un champ de type LienOLE appelé "LienCQNivB", et ma table est lié a la table Installation_Appareil.
Marsh Posté le 03-08-2007 à 11:28:41
je suis sous access 2000... je peux envoyer tout ce que vous voulez, il suffit de me dire quoi faire...
Marsh Posté le 03-08-2007 à 11:39:47
qu'est-ce qu'un MDB? modèle de Base? un shéma?
Marsh Posté le 03-08-2007 à 11:59:33
le fichier mdb c'est la bdd, donc tu peux lui envoyer ca oui
Marsh Posté le 03-08-2007 à 12:13:00
elle fait déjà 7Mo... avec seulement 4 formulaires 2 requetes et 2 enregistrements dans la base! si ca c'est pas une usine a gaz de dingue...
Marsh Posté le 03-08-2007 à 12:14:48
fais tools> options de la bdd>compacter la base, ca gagnera de la place
Marsh Posté le 03-08-2007 à 12:33:09
ah ben tout de suite... 657Ko... ca va mieux... a quelle adresse j'envoie la base? j'atend vos adresses en message privé...
Marsh Posté le 03-08-2007 à 12:50:54
re,
http://www.cjoint.com/
pratique, mais un inconvenient, le fichier joint n'est conservé qu'un certain temps
Cordialement
Marsh Posté le 03-08-2007 à 12:57:51
et bien c'est fait... http://cjoint.com/?idnRMaEnOl
éclatez vous avec tout ca... mois ca fait un mois et demi déjà... en meme temps, et pour ca je dois remercier tres sincerement jpcheck, les progrès effectués sont énormes!!!
Marsh Posté le 03-08-2007 à 12:59:56
précision: jpcheck, la partie qui concerne l'etablissement, hopital, service etc... je l'ai laissé de coté, j'y reviendrai plus tard, je me suis fait casser les desnt quand ils ont vu que j'avais toujours pas le système d'alerte lors de la dernière réunion...
Marsh Posté le 03-08-2007 à 13:42:48
c'est c... je recommence et je modifie le post laissé précédement
Marsh Posté le 03-08-2007 à 14:45:27
de rien, je laisse senior achever le topic, sauf besoin express
Marsh Posté le 03-08-2007 à 18:06:01
Bonsoir,
Ce lien n'est pas ou n'est plus disponible!!!
on n'a pas de chance
tu me "mail " et je remettrai sur cjoint
Cordialement
Marsh Posté le 03-08-2007 à 18:15:07
décidement c'est de l'acharnement... vive la loi de murphy...
j'envoi par mail pas de souci.
merci
Marsh Posté le 03-08-2007 à 19:37:08
Bonsoir,
j'ai reçu,
pourquoi veux-tu passer par un OLE?
si tu mets le nom du rapport dans ta zone de texte, tu peux lancer le shell ..... de la façon suivante:
stAppName = "C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe C:\Documents and Settings\ENFANTS_2\Mes documents\" & liendoctechnique & ".pdf"
Call Shell(stAppName, 1)
tu adaptes , et pour tester ajoute un champ texte dans la table avec le nom du pdf de la doc technique
Cordialement
je mets sur cjoint le copie de.... ou le copie de copie....?
Marsh Posté le 03-08-2007 à 22:58:32
c'est vrai qu'en y réfléchissant y'a pas besoin d'OLE... je peux me servir d'un petit programme de recherche windows ou il fqut que les utilisateurs se tapent la recherche a la main?
Marsh Posté le 03-08-2007 à 22:59:34
pardon pour les q a la place des a et inversement, je jongle entre clavier azerty et qwertz...
Marsh Posté le 04-08-2007 à 07:20:29
Bonjour,
J'avais cru comprendre que tous tes pdf seraient au même endroit.
En normalisant un peu tu dois pouvoir dire: tous les modes d'emploi sont dans le dossier "mondossier" (par exemple) du disque S: et chaque mode d'emploi porte le nom de l'appareil.
(on suppose que Modèleinstall est unique, sinon on ajoute le nom du constructeur)
ainsi tu auras pour othophos :sachant que Modèleinstall="othophos"
PdfAouvrir= "S:\.......\mondossier\" & Modèleinstall
puis:
MonAppli="C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe "
puis:
stAppName=MonAppli & PdfAouvrir
Call Shell(stAppName, 1)
Les utilisateurs n'ont donc pas besoin d'aller chercher le pdf.
Cordialement
Marsh Posté le 04-08-2007 à 10:13:35
Bonjour,
je sais porquoi ton .mdb ne va pas sur cjoint: il est trop gros, la limite de cjoint est 500ko
quelqu'un a-t-il un site moins restrictif?
Cordialement
Marsh Posté le 06-08-2007 à 17:00:41
merci beaucoup seniorpapou pour ta mise a jour, je peux maintenant afficher le nombre de jours restant dans ma zone de texte... chouette!
j'ai encore vadrouillé dans les bureaux de mes collègues et ils ne sentent pas trop bien le fait de devoir normaliser le nom des fichiers, car une petite erreur de frappe ou un espace de trop poserait vite problème, et ils ne sauraient pas forcément quoi faire vu que je ne serai plus avec eux fin aout... en plus, certaines personnes voudraient garder pour eux leurs rapport de controle qualité. (plus conservateur que ca...)
j'ai donc farfouillé, cherché, et encore cherché. et j'ai finalement trouvé.
les rapports doivent donc pouvoir se trouver n'importe ou, que ce soit sur le C: ou sur le réseau, en fonction de la facon de travailler de chacun, ils pouront soit ne rien ranger du tout et la base doit le gérer, soit structurer leur PC au cas ou la base ne bug... donc je vais me servir du code de senior papou pour ouvrir mon PDF une fois qu'il est lié, et j'ai trouvé un code simpa pour importer mon fichier sans passer par le menu insertion, juste en lisant le chemin d'accès et en le recopiant dans une table... voila le code, récupéré sur CodeS-sourceS:
'Utilisation de la fonction :
'mettre une commande de type : Call OuvrirAvecCD("xls", "c:\", "TOTO fait du ski" )
'Puis ont peux récupérer le chemin du fichier sélectionné par l'utilisateur
'dans la variable "FichierSélectionné"
'c'est tout !
Public FichierSélectionné As String
Public Function OuvrirAvecCD(Extension As String, DOSSIER As String, TITRE As String)
FichierSélectionné = ""
Set CD = CreateObject("MSComDlg.CommonDialog" )
On Error Resume Next
Debut:
With CD
.MaxFileSize = 260
.InitDir = DOSSIER
.CancelError = True
.DialogTitle = TITRE
.Filter = "Fichiers " & Extension & "(*." & Extension & " )|*." & Extension & "|"
.FilterIndex = 1
Err.Clear
.ShowOpen
If Err.Number <> 0 Then
If MsgBox("Vous n'avez pas sélectionné de fichier." & Chr(10) & "Voulez-vous annuler la sélection ?", vbYesNo, TITRE) = vbYes Then
Exit Function
Else
GoTo Debut
End If
End If
End With
FichierSélectionné = CD.FileName
Set CD = Nothing
End Function
mon mini problème c'est de récuperer la valeur de CD.Filename: je voudrai l'afficher dans une zone de texte( donc en appelant NomDeLaFonction.FichierSélectionné) et le copier dans le champ "LienVersCQ" de l'enregistrement en cours... comment puis-je faire cela?
merci d'avance...
Marsh Posté le 06-08-2007 à 17:19:55
Bonsoir,
pour appeler ta fonction tu peux ecrire:
LienVersCQ=OuvrirAvecCD(.........)
et tu places l'instruction:
OuvrirAvecCd=CD.filename
avant le Set CD=Nothing
Cordialement
Marsh Posté le 06-08-2007 à 17:30:21
nickel... eh bien il me semble que je touche au but...
il ne me reste plus qu'a afficher mon alerte dans une zone de texte, et a faire le lien avec la partie administration...
la partie administration est une sorte de gros entonnoir ou le bout le plus fin de l'entonnoir est l'appareil, le plus gros c'est l'établissement, et les etapes de l'entonnoir sont l'hopital, le service, la salle... le soucis c'est de gérer les redondances: au CHU il y a deux hopitaux au nom différent, mais dont le nom des services sont identiques... pour l'instant j'arrive pas a filtrer correctement... mais je vais deja faire fonctionner correctement ces deux parties avant, peut etre, de revenir poster par ici... merci a tous et je vous donne des nouvelles de l'avancement des choses...
a bientot
Marsh Posté le 02-08-2007 à 12:49:28
bonjour tout le monde!
j'ai besoin, dans ma base de données, d'ouvrir un fichier PDF. j'ai donc défini mon champ "LienDocTechnique", dans lequel je compte rentrer le chemin d'accès a mon fichier. mon fichier, pour ce test, se trouve là: "C:\Documents and Settings\areitz\Bureau\cata"
a terme, tous mes documents seront sur un DD du réseau et l'endroit ne devrait plus bouger...
en fait, je souhaiterai ouvrir mon fichier via un bouton. je viens d'essayer avec l'assistant access mais cela ne fonctionne pas ... j'ai ce code derrière le bouton:
Private Sub Commande18_Click()
On Error GoTo Err_Commande18_Click
Dim stAppName As String
stAppName = "C:\Documents and Settings\areitz\Bureau\cata"
Call Shell(stAppName, 1)
Exit_Commande18_Click:
Exit Sub
Err_Commande18_Click:
MsgBox Err.Description
Resume Exit_Commande18_Click
End Sub
pour l'istant le chemin est fixe, a terme il devra ouvrir le fichier contenu dans le chemin défini dans mon champ "LienDocTech"... mais on n'en est pas encore là... pour l'instant j'ai juste besoin d'ouvrir ce fichier comme indiqué...
j'ai éssayé de mettre cata.pdf dans le chemin, mais rien n'y fait...
silvouplé...