[英]MS Access: referring to a subform textbox control element in VBA query definition
我有一個帶有用戶輸入(文本框)的子表單,它可以超過 255 個字符並且可以包含特殊字符。 由於我無法將其作為參數分配給 vba 查詢定義(只能使用 255 個字符),因此我考慮直接引用文本框:
Insert into ...
Values (Forms!MainFormName!txt_MyTextField, ... )
在 Access GUI 中的查詢中確實有效,但在使用以下代碼指定的 vba 查詢定義中無效:
Set query_definition = CurrentDb.CreateQueryDef("", SQLQuery))
"Forms!MainFormName!NameOfSubformNavigationElement!txt_MyTextField" 也不能作為參考,以防萬一。 “Forms!MainFormName!NameOfSubformNavigationElement.Form.txt_MyTextField”也不行
我怎樣才能得到我想要的? 字符串可以有任何類型的特殊字符,如 ' 和 "。除了將用戶輸入附加到 sql 查詢之外別無選擇嗎?是否有一些內置函數來轉義這些值?
更新:現在環境已知,添加了另一個示例。
要在操作查詢中使用表單字段,請創建一個將返回所需字段的公共函數,然后從您的查詢中調用該函數。
Public Function GetFormField() As String
GetFormField = Forms![MyMainForm]!MySub.Form.MyField
End Function
在您的查詢中,使用以下內容:
WHERE ((([106thZip_code_database].zipcode)=GetFormField()));
以下是您可以在主窗體中用於引用子窗體中的字段的示例。 'MySub' 是主窗體上控件的名稱 - 不是子窗體的對象名稱。
Debug.Print Forms![MyMainForm]!MySub.Form.MyField
關於這個主題的一個很好的參考可以在: http : //access.mvps.org/access/forms/frm0031.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.