2015-06-08 144 views
1

我想實現一個形式非常簡單的窗體文檔網格:選定的索引和單元格值

enter image description here

我所擁有的一切,除了獲取文件路徑,當用戶點擊網格。如何從用戶行單擊事件獲取文件路徑值?

很抱歉,如果我的術語是關閉的,我很少寫VBA

回答

4

您可以創建一個引用您的FilePath字段的公用子例程,然後在子窗體上的每個字段的單擊事件中引用此子例程。

所以,如果你的窗體看起來是這樣的:

enter image description here

進去窗體的設計視圖,然後選擇您的領域之一:

enter image description here

選定字段,請轉到右側的屬性頁並轉到事件選項卡,然後單擊On Click事件上的[...]按鈕:

enter image description here

你會被帶到形式的VBA腳本模塊,它會爲你選擇的字段上單擊事件創建初始VBA:

enter image description here

忽略該字段的現在只需點擊事件VBA,而是將光標移動到頂部,併爲該字段的點擊事件上方的公共子例程騰出空間。

寫這樣的事情在頂部:

Public Sub GetFilePath() 

    Debug.Print Me.FilePath 

End Sub 

所以,你在訪問代碼現在應該是這個樣子:

enter image description here

公共子我叫GetFilePath現在可以在子窗體中的每個字段的點擊事件中引用。讓我們完成上單擊我們剛剛開始的ID字段的事件......

enter image description here

...還引用同一個公共子在所有其他領域的上單擊事件(再次,通過選擇在設計視圖中的字段,然後單擊[...在屬性表的上單擊事件]按鈕):

enter image description here

在VBA編輯器,請確保您有即時窗口打開;它應該位於VBA代碼下方的區域。如果它不存在按Ctrl + G或轉到查看>即時窗口:

enter image description here

隨着VBA編輯器和即時窗口仍處於打開狀態,回到你的形式,放入窗體視圖。

點擊任一行,你應該可以看到你點擊打印出立即窗口排FilePath數據(這是Debug.Print一樣):

enter image description here

你可能穿上」 t想要FilePath去立即窗口,但因爲你沒有指定你想要去的地方我想這至少說明如何通過點擊你的子窗體中的記錄來獲得該數據。

您只需將Debug.Print Me.FilePath行替換爲對您有用的任何行。

希望這足以讓你開始雖然:)

+0

謝謝這麼多這是我收到的最詳細的答案之一。我希望我能更多地讚揚它! –

+0

沒問題!很高興有幫助:) –

2

MS Access不提供行單擊事件。您必須執行[Form onClick事件]或理想地將filePath設置爲HyperLink,並且onClicking FilePath檢索其值。

當您選擇[Form onClick事件]時,您將從選定的行中獲取FilePath。但是,點擊事件只會在您點擊表單而沒有任何字段時觸發。

如上所述,將FilePAth字段設置爲超鏈接,向其添加onClick事件並檢索該值。

相關問題