[英]How to use access pass-through query in a form
我在訪問時使用下面的傳遞查詢代碼。 代碼不是問題。 我的問題是要在訪問時形成一個表格,在指定的位置輸入變量,然后從que SQL select中返回表。 常規解決方案:[Form]![Variable]不起作用,因為我想直通查詢不支持它(我不是Access專家)。 有人對此問題有解決方案嗎?
SELECT instalacao
,tipounidade
FROM sgdprd.useccionadora us
INNER JOIN (
SELECT bloco
FROM sgdprd.redeprimaria rp
WHERE rp.useccionadora IS NOT NULL CONNECT BY rp.nox = PRIOR rp.fontex
AND rp.noy = PRIOR rp.fontey START
WITH rp.utransformadora = (
SELECT utransformadora
FROM sgdprd.redeprimaria rp
INNER JOIN sgdprd.consumidor con ON rp.utransformadora = con.instalacao
WHERE con.conta = '**VARIABLE GOES HERE**'
)
) lista ON lista.bloco = us.instalacao
WHERE us.tipounidade = 'DJ'
OR us.tipounidade = 'RL'
您沒有提及要對該查詢的結果做什么?
任何傳遞查詢都是只讀的。
但是,您可以使用以下代碼:
Dim strSQL As String
strSQL = "your sql goes here where con.contra='[P1]' bla bla"
strSQL = Replace(strSQL, "[P1]", Me.SomeControl)
With CurrentDb.QueryDefs("QryPass")
.SQL = strSQL
End With
假定表單中的me.SomeControl被限制為一個數字列,因為如果它是自由格式的文本框,則您可以進行sql注入。 QryPass只是一個保存的傳遞查詢,您可以在代碼中一遍又一遍地重復使用該查詢,以獲取所需的任何T-sql或服務器端命令。
如前所述,您必須共享有關傳遞查詢要執行的操作的其他信息(例如,分配給記錄集,組合框,報表甚至表單記錄源),因此需要其他信息才能解決此問題,但以上提供了一個有效的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.