Question

J'essaie de créer une table dans une base de données qui stocke tous les documents liés à la base de données "dedans".Ce que je veux vraiment faire, c'est télécharger un fichier et avoir un code VBA qui copie le fichier vers un emplacement réseau, renomme le fichier en concaténant deux champs du formulaire de table de document (éliminant le problème des noms de fichiers en double dans l'emplacement externe), puis stocke le nom du fichier et le chemin du fichier dans un champ de chemin de fichier dans la table.Je suis très novice en matière d'accès et de VBA, j'ai donc du mal à tout faire fonctionner.Le code que j'ai actuellement est ci-dessous:

Option Compare Database

Private Sub Command15_Click()
Dim f As Object

Set f = Application.FileDialog(3)

f.AllowMultiSelect = False

If f.Show Then
    For i = 1 To f.SelectedItems.Count
        sFile = Filename(f.SelectedItems(i), sPath)
        MsgBox sPath & "---" & sFile
    Next
End If

End Sub

Public Function Filename(ByVal strPath As String, sPath) As String
    sPath = Left(strPath, InStrRev(strPath, "\"))
    Filename = Mid(strPath, InStrRev(strPath, "\") + 1)
End Function

Je n'arrive pas à comprendre comment déplacer, renommer en concaténant les deux champs du formulaire ou stocker le chemin dans le champ chemin de la table.Je me suis rendu aux endroits suivants pour obtenir les informations que je pouvais

MS Access, recherchez le fichier et obtenez le nom et le chemin du fichier

VBA pour copier un fichier d'un répertoire à un autre

J'utilise actuellement Microsoft Access 2010 et je ne souhaite pas utiliser le type de champ de pièce jointe en raison de contraintes de taille de base de données.Actuellement, j'appuie sur un bouton et un explorateur de fichiers apparaît pour accéder au fichier en cours de téléchargement, et le chemin et le nom du fichier sont saisis dans des chaînes.Après ce point, je suis perdu.Si d'autres informations sont nécessaires, veuillez me le faire savoir.Merci d'avance pour l'aide.

Était-ce utile?

La solution

Je pense que votre approche de la gestion des documents est correcte.Dans la plupart des cas, cela n'a pas beaucoup de sens de stocker des documents dans la base de données elle-même lorsque le système de fichiers est plus adapté à cette tâche.

Ce que vous faites est assez simple mais la principale complexité viendra de la bonne gestion des différents chemins et noms de fichiers et d'en extraire les bonnes informations.

Cela peut devenir délicat si vous n'utilisez pas certaines fonctions d'assistance pour disséquer et recomposer les différents éléments des chemins.

J'ai créé un exemple de base de données qui a quelques fonctions.Cela ne correspond peut-être pas exactement à ce dont vous avez besoin, mais vous pouvez facilement jouer avec en fonction de votre cas particulier.

La base de données exemple comprend un Tools Module VBA qui possède quelques fonctions utiles pour diviser un chemin en ses constituants.

Fondamentalement, la base de données comporte 2 formulaires.

Le formulaire principal vous permet de définir le chemin réseau où les fichiers doivent être enregistrés.Vous pouvez ensuite sélectionner un numéro de compte prédéfini (répertorié dans la Account tableau) associé à un document, puis cliquez sur le bouton de téléchargement.

Main Form

Cela crée un nouvel enregistrement dans le Document et ouvre un formulaire dans lequel vous pouvez modifier le titre du document et cliquer sur un bouton pour télécharger un fichier sur le serveur.

Document Upload form

Le fichier sélectionné par l'utilisateur est copié sur le serveur après transformation de son chemin.J'ai supposé que le fichier conserverait son extension d'origine, le nom du fichier serait renommé en ID de la Document enregistrer où les informations du fichier sont enregistrées (comme 5845.pdf) et que le dossier où le fichier est enregistré sur le serveur serait le numéro de compte, afin qu'un fichier source sélectionné par l'utilisateur

C:\Users\user\Desktop\SuperSecretFile.pdf

serait enregistré comme, par exemple :

\\docserver\files\123-55547\5845.pdf

Le formulaire principal vous permet également de mettre à jour un enregistrement existant, d'ouvrir le fichier à partir du serveur, d'ouvrir le dossier du serveur où se trouve le fichier ou même de recopier le fichier du serveur sur l'ordinateur de l'utilisateur avec le nom d'origine du fichier.

Je vous laisse jouer avec.Faites-moi savoir si vous avez des problèmes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top