2012-02-21 54 views
8

我當前想從表單中獲取值以將其設置在我使用VBA在Access下的模塊中進行的SQL查詢中。我試圖使用使用VBA模塊在Access中從窗體獲取文本值

value = Forms![NameOfForm]![NameOfTextbox] 

sqlquery = "...." & value & "....." 

它使一個錯誤(2450)說它無法找到指定的表單。我怎樣才能得到這個文本框的價值,所以我可以在我的模塊中使用它?

THX

+0

當您嘗試此操作時表單是否打開? – Fionnuala 2012-02-21 20:54:36

回答

6

修改您的VBA代碼,以確保形式是開放的。

DoCmd.OpenForm "NameOfForm" 

這應該防止錯誤#2450。

之後,您不需要將[NameOfTextbox]的值存儲到變量中,然後使用該變量來構建您的SQL語句。您可以直接使用它的值。

sqlquery = "SELECT * FROM YourTable " & _ 
"WHERE some_field = '" & Forms![NameOfForm]![NameOfTextbox] & "';" 

或者在查詢中嵌入對文本框本身的引用(而不是文本框的值)。

sqlquery = "SELECT * FROM YourTable " & _ 
"WHERE some_field = Forms![NameOfForm]![NameOfTextbox];" 

我假定some_field是文本數據類型字段,所以封閉在第一查詢示例單引號的文本框的值。注意第二個例子不需要引號,因爲它引用的是文本框的名稱而不是它的值。但是,如果繼續使用原始方法(將文本框值存儲到變量中),請不要將變量命名爲「值」,因爲值可能會與許多對象的屬性混淆。

相關問題