-2

私はデータベースに取り組んでいます。このデータベースにはプロジェクトが含まれます。ボタンをクリックしてプロジェクトを追加すると、すべてのプロジェクトが別のページのデータシート サブフォームに表示されます。

フォルダを特定のプロジェクトにリンクするにはどうすればよいですか? したがって、すべての情報をフィールドに入力するときに、フォルダーの場所も入力できます。保存すると、テーブルに保存されます。サブフォームに移動してそのフィールドをクリックし、[フォルダーを開く] ボタンをクリックすると、コンピューター上のフォルダーが開きます。また、これらのフォルダーはサーバー上にあることに注意してください。コンピュータのメイン ハード ドライブの外部。

フォーム名: DatabaseF & AddProjectF

サブフォーム名: ProjectQSubF

テーブル名は ProjectsF です。

ネットワークの場所は G:\

ありがとう!

申し訳ありませんが、最初はこれを入れていませんでした。考えていませんでした。ボタンを使用して、コード内のプリセットのフォルダーの場所を開く方法を知っています。クリックしたフィールドに応じて変更するコードを添付する方法がわかりません。

これは、コード自体に事前設定されたフォルダーを開くために現在使用しているコードです。

Private Sub ProjectFolderBtn_Click()
    Dim x As Variant
    Const msgTitle As String = "Open Explorer"
    Const cExplorerPath As String = "C:\WINDOWS\EXPLORER.EXE"
    Const cExplorerSwitches As String = " /n,/e"
    Const cFilePath As String = "G:\Projects\Walmart"

    On Error GoTo Error_Handler

    If Dir(cExplorerPath, vbDirectory) = "" Then
        MsgBox "Explorer Path '" & cExplorerPath & "' could not be found.", vbCritical, msgTitle
        x = Shell(cExplorerPath, vbNormalFocus)
    ElseIf Dir(cFilePath, vbDirectory) = "" Then
        MsgBox "Path '" & cFilePath & "' could not be found.", vbCritical, msgTitle
        x = Shell(cExplorerPath, vbNormalFocus)
    Else
        x = Shell(cExplorerPath & cExplorerSwitches & "," & cFilePath, vbNormalFocus)
    End If

    Exit Sub
    Error_Handler:

    MsgBox "An error has occurred trying to open Explorer", vbCritical, msgTitle

    End Sub

現在選択されているフィールドを決定するには、DatabaseF という名前のバックグラウンドでまだ開いている別のフォームから ProjectID を取得する必要があります。そこには、txtProjID と呼ばれる非表示のテキスト ボックスがあります。これが、私が持っている [詳細情報] ボタン (フォルダーを開くボタンが配置される場所) に対して行ったことです。それを行う方法について私が知っているのはそれだけですが、選択したフィールドを取得して、テーブルに格納されている情報からディレクトリを開くために一緒に実行される実際のコードはわかりません。

4

1 に答える 1

1

変数名とフィールド名に合わせてこれを編集する必要がありますが、何を編集する必要があるかは明らかです。

Dim db as Database
Dim rec as Recordset

Set db = CurrentDB
Set rec = db.OpenRecordset("Select * from ProjectsF WHERE ProjectID = " & Me.ProjectID & "")

cFilePath = rec("FilePath")

これを先頭のどこかに置き、ハードコーディングされた cFilePath const を取り出して、動的に設定されたファイル パスを取得する必要があります。

于 2013-11-01T13:52:00.453 に答える