質問

データベースに関連するすべてのドキュメントを「データベース内に」保存するテーブルをデータベース内に作成しようとしています。私が本当にやりたいのは、ファイルをアップロードし、そのファイルをネットワークの場所にコピーし、ドキュメントテーブルフォームの 2 つのフィールドを連結してファイルの名前を変更する (外部の場所でファイル名が重複する問題を排除する) VBA コードを用意することです。次に、ファイル名とファイル パスをテーブルのファイル パス フィールドに保存します。私は Access と VBA に非常に慣れていないため、すべてを機能させるのに苦労しています。現在私が持っているコードは以下のとおりです。

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

フォームの 2 つのフィールドを移動したり、名前を変更したり、テーブルのパス フィールドにパスを保存したりする方法がわかりません。可能な情報を得るために次の場所に行きました

ms アクセスしてファイルを参照し、ファイル名とパスを取得します

あるディレクトリから別のディレクトリにファイルをコピーする VBA

現在 Microsoft Access 2010 を使用していますが、データベース サイズの制約のため、添付ファイル フィールド タイプを使用したくありません。現在、ボタンを押すとファイル エクスプローラーが表示され、アップロード中のファイルに移動し、パスとファイル名が文字列に入力されます。この時点から私は道に迷ってしまいます。他に情報が必要な場合はお知らせください。よろしくお願いいたします。

役に立ちましたか?

解決

文書管理に対するあなたのアプローチは正しいと思います。ほとんどの場合、ファイルシステムがこのジョブに適している場合、ドキュメントをデータベース自体に保存することはあまり意味がありません。

やっていることは非常に単純ですが、主な複雑さは、さまざまなパスとファイル名を正しく管理し、そこから適切な情報を抽出することに起因します。

いくつかのヘルパー関数を使用していない場合、パスのさまざまな部分を分析して再構成するのは困難になる可能性があります。

を作成しました サンプルデータベース それはいくつかの機能を持っています。必要なものと正確に一致していない可能性がありますが、特定のケースに合わせて簡単に試すことができます。

サンプル データベースには、 Tools パスをその構成要素に分割するためのいくつかの便利な関数を備えた VBA モジュール。

基本的に、データベースには 2 つの形式があります。

メイン フォームでは、ファイルを保存するネットワーク パスを設定できます。その後、事前定義された口座番号 ( Account table) をドキュメントに関連付けてから、アップロード ボタンをクリックします。

Main Form

これにより、 Document テーブルが表示され、フォームが開きます。そこでドキュメントのタイトルを編集し、ボタンをクリックしてファイルをサーバーにアップロードできます。

Document Upload form

ユーザーが選択したファイルは、パスが変換された後にサーバーにコピーされます。ファイルは元の拡張子を保持し、ファイル名は IDDocument ファイル情報が保存されている場所を記録します (例: 5845.pdf)、サーバー上のファイルが保存されているフォルダーがアカウント番号になるため、ユーザーが選択したソース ファイルが

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

たとえば、次のように保存されます。

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

メイン フォームでは、既存のレコードを更新したり、サーバーからファイルを開いたり、ファイルが存在するサーバーのフォルダーを開いたり、サーバー ファイルを元のファイル名でユーザーのコンピュータにコピーしたりすることもできます。

遊んであげましょう。何か問題がございましたらお知らせください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top