簡體   English   中英

MS Access 使用 VBA 和 Form,構建查詢字符串並運行它

[英]MS Access using VBA and Form, build a query string and run it

我有一個 MS Access 表單,它將詢問用戶 select 或輸入將在查詢的where子句中使用的單詞。

單擊按鈕時,它將構建字符串並使用它來運行查詢。 這將是只讀的,用於查看 SQL 服務器中鏈接表的子集結果。 而已。 我用DoCmd.RunSQL進行了嘗試,但這僅適用於更新、刪除等操作類型。

在單擊按鈕事件上,它將有類似的查詢。

strSQL = "Select top 10 * Where ID = ''" + textbox1.value + "'' from linked_Table_Name;"

這沒有用。

DoCmd.RunSQL strSQL

首先,也是最重要的,永遠不要將用戶獲取的數據連接為 SQL 語句的一部分 任何使用此技術的應用程序都容易受到SQL 注入攻擊,並且如果用戶在他們提供的輸入中包含字符串分隔符(例如單引號)或其他保留字符,也會失敗。

相反,使用參數。

對於您的方案,我可能建議使用 SQL 創建一個已保存的查詢:

select top 10 t.*
from linked_Table_Name t
where t.ID = Forms![Your Form Name]![textbox1]

Your Form Name是包含控件textbox1的表單的名稱。

然后,您的點擊事件可以簡單地調用DoCmd object 的OpenQuery方法:

DoCmd.OpenQuery "YourSavedQuery"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM