![](/img/trans.png)
[英]Need advice for using SQL & VBA in MS ACCESS to run a query
[英]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.