如何以形式使用访问通行查询



我在访问时使用以下传递查询代码。代码不是问题。我的问题是在访问上制作一个表单,该表单进入所指示的位置上的可变,并从que sql select中返回表。常规解决方案:[form]![变量]不起作用,因为我想象的传递查询不支持它(我不是访问专家)。有人有解决这个问题的解决方案吗?

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或服务器端命令。

如前所述,您必须分享有关您要使用的通行查询(例如分配给记录集,组合框,报告,甚至是表单Recordsource的分配)的其他信息 - 因此需要附加信息完成此问题,但以上提供了一个工作示例。

相关内容

  • 没有找到相关文章

最新更新