在 Word 中从 VBA 运行 Access QueryDef

发布于 2024-07-13 11:56:21 字数 178 浏览 2 评论 0原文

我正在 Access 中创建参数化查询,并希望从 Word 中的 VBA 模块中的 ADO 代码调用它们。 但是,我不确定调用参数化查询的语法。 似乎无法在网上找到好的代码参考。

如果我有 qryGetRecordByFirstLast 接受名字和姓氏作为参数,我如何从 VBA 模块在 ADO 中编写此执行代码?

I'm creating parameterized queries in Access and would like to call them from ADO code in a VBA module in Word. I'm not sure of the syntax, however, to call parameterized queries. Can't seem to find a good code reference online.

If I have qryGetRecordByFirstLast that accepts Firstname and Lastname as parms, how do I code this execute in ADO from a VBA module?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

日暮斜阳 2024-07-20 11:56:21

这里有一些注意事项

'Set up a command object '
Set cmd = CreateObject ("ADODB.Command")
cmd.CommandType = 4 'adCmdStoredProc '
cmd.CommandText = "qryGetRecordByFirstLast"

'adVarWChar = 202'
'adParamInput=1'
set par=cmd.CreateParameter ("Firstname",202,1,1,strFirstname)
cmd.Parameters.Append par

set par=cmd.CreateParameter ("Lastname",202,1,1,strLastname)
cmd.Parameters.Append par

dbfile="C:\Docs\LTD.mdb")
Set objConn=CreateObject("ADODB.Connection")

cmd.ActiveConnection = objConn

Set rs = CreateObject ("ADODB.Recordset")
rs.Open cmd, , 0, 1 'adOpenForwardOnly, adLockReadOnly'

blnFound = False

If Not rs.EOF Then
    astrRecord = rs.GetRows()
    intRecFirst  = LBound(astrRecord , 2)
    intRecLast   = UBound(astrRecord , 2)

    blnFound = True
End If

Here are a few notes

'Set up a command object '
Set cmd = CreateObject ("ADODB.Command")
cmd.CommandType = 4 'adCmdStoredProc '
cmd.CommandText = "qryGetRecordByFirstLast"

'adVarWChar = 202'
'adParamInput=1'
set par=cmd.CreateParameter ("Firstname",202,1,1,strFirstname)
cmd.Parameters.Append par

set par=cmd.CreateParameter ("Lastname",202,1,1,strLastname)
cmd.Parameters.Append par

dbfile="C:\Docs\LTD.mdb")
Set objConn=CreateObject("ADODB.Connection")

cmd.ActiveConnection = objConn

Set rs = CreateObject ("ADODB.Recordset")
rs.Open cmd, , 0, 1 'adOpenForwardOnly, adLockReadOnly'

blnFound = False

If Not rs.EOF Then
    astrRecord = rs.GetRows()
    intRecFirst  = LBound(astrRecord , 2)
    intRecLast   = UBound(astrRecord , 2)

    blnFound = True
End If
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文