Access 2007 - Afficher le contenu PDF dans un formulaire
Sur Access 2007, est-il un moyen d'afficher le contenu d'un fichier PDF, même si c'est juste la première page, sur un formulaire? Ce fichier PDF enregistré dans un tableau en pièce jointe.
Avertissement: Cette réponse ne fonctionne que pour les fichiers PDF stockés à l'extérieur de votre base de données en tant que fichier séparé. Ils peuvent être situés sur une connexion réseau, mais je ne sais pas comment y accéder directement à partir de votre table de base de données. Cette le site donne une approfondie guide d'utilisation des pièces jointes, mais ne montre pas comment les afficher automatiquement. Il est probable que la fonctionnalité n'est pas fourni par l'Accès.
Vous pouvez afficher quoi que ce soit Internet Explorer peut afficher avec un Microsoft Web Browser de Contrôle.
Une fois que vous avez ajouté le contrôle, vous pouvez naviguer jusqu'à ce que vous voulez l'afficher lors de la charge ou de l'événement open du formulaire.
Par exemple, si le contrôle est appelé WebBrowser0 alors la suivante devrait fonctionner:
Private Sub Form_Load()
Me.WebBrowser0.Navigate2 "C:\example.pdf" 'Substitute the actual address here.
End Sub
C'est extrêmement polyvalente méthode pour afficher d'autres contenus à l'intérieur de l'Accès. Vous pouvez trouver plus d'informations ici.
J'ai ajouté un avertissement et quelques informations supplémentaires qui sont liés, mais n'est toujours pas résolu la question précise. 🙁
Les deux seules méthodes que je connais pour la prévisualisation d'un fichier PDF (WebBrowswer comme suggéré par Daniel et le Adobe de contrôle Active X) besoin d'un chemin d'accès au fichier d'être transmis au contrôle.
Je recommande d'extraire le fichier à partir du champ des pièces jointes et de les enregistrer dans un emplacement temporaire, comme C:\Documents and Settings\username\AppData. Cela peut être trouvé en utilisant le vba Environ commande.
L'extraction du fichier se fait avec le SaveToFile méthode dans le sous-jeu d'enregistrements DAO (qui est la façon dont les pièces jointes sont stockées en mémoire).
Exemple De Code
Supposons que chaque enregistrement possède un champ appeléAttachedFileet chaque enregistrement a un seul fichier PDF ci-joint. La forme est à l'aide d'un contrôle WebBrowser nomméPreviewBrowserpour afficher le PDF
Private Sub Form_Current()
On Error GoTo ExitSub
Dim FormRS As DAO.Recordset
Set FormRS = Me.Recordset
Dim RecAtt As DAO.Recordset
If (Me.AttachedFile.AttachmentCount > 0) Then
Set RecAtt = FormRS.Fields("AttachedFile").Value
RecAtt.OpenRecordset
Dim Path As String
FilePath = Environ("APPDATA") & "\Preview.pdf"
If (Dir(FilePath) <> "") Then Kill FilePath
RecAtt.Fields("FileData").SaveToFile FilePath
Me.PreviewBrowser.Navigate2 FilePath
End If
ExitSub:
RecAtt.Close
End Sub
Bien sûr, le code doit être un peu plus compliqué s'il y a plusieurs pièces jointes à un dossier donné, mais qui serait fait par la manipulation de la RecAtt jeu d'enregistrements.
Avertissement: Cette réponse ne fonctionne que pour les fichiers PDF stockés à l'extérieur de votre base de données en tant que fichier séparé. Ils peuvent être situés sur une connexion réseau, mais je ne sais pas comment y accéder directement à partir de votre table de base de données. Cette le site donne une approfondie guide d'utilisation des pièces jointes, mais ne montre pas comment les afficher automatiquement. Il est probable que la fonctionnalité n'est pas fourni par l'Accès.
Vous pouvez afficher quoi que ce soit Internet Explorer peut afficher avec un
Microsoft Web Browser
de Contrôle.Une fois que vous avez ajouté le contrôle, vous pouvez naviguer jusqu'à ce que vous voulez l'afficher lors de la charge ou de l'événement open du formulaire.
Par exemple, si le contrôle est appelé
WebBrowser0
alors la suivante devrait fonctionner:C'est extrêmement polyvalente méthode pour afficher d'autres contenus à l'intérieur de l'Accès. Vous pouvez trouver plus d'informations ici.
OriginalL'auteur Daniel
Les deux seules méthodes que je connais pour la prévisualisation d'un fichier PDF (WebBrowswer comme suggéré par Daniel et le Adobe de contrôle Active X) besoin d'un chemin d'accès au fichier d'être transmis au contrôle.
Je recommande d'extraire le fichier à partir du champ des pièces jointes et de les enregistrer dans un emplacement temporaire, comme
C:\Documents and Settings\username\AppData
. Cela peut être trouvé en utilisant le vbaEnviron
commande.L'extraction du fichier se fait avec le
SaveToFile
méthode dans le sous-jeu d'enregistrements DAO (qui est la façon dont les pièces jointes sont stockées en mémoire).Exemple De Code
Supposons que chaque enregistrement possède un champ appelé
AttachedFile
et chaque enregistrement a un seul fichier PDF ci-joint. La forme est à l'aide d'un contrôle WebBrowser nomméPreviewBrowser
pour afficher le PDFBien sûr, le code doit être un peu plus compliqué s'il y a plusieurs pièces jointes à un dossier donné, mais qui serait fait par la manipulation de la
RecAtt
jeu d'enregistrements.OriginalL'auteur nicholas