使用输入框为参数赋值

时间:2016-06-03 21:21:01

标签: vba ms-access access-vba

我有以下代码

command_Click()

    rDate = InputBox("MM/YYYY")

end sub

当我点击命令时,输入框出现,我输入了我的值。但后来我再次弹出询问rDate的参数值。

有什么想法?

1 个答案:

答案 0 :(得分:1)

我假设您有一个类似

的查询
Select * 
From SomeTable
Where acolumn = rDate

command_click()子中定义的rDate不是一回事。 rDate是一个局部变量,与您的查询无关。

您可能希望将参数传递给查询。假设您的查询名为vikesQuery。您的命令按钮单击代码将如下所示

Dim qdef As DAO.QueryDef
Set qdef = CurrentDb.QueryDefs("vikesQuery")
If qdef Is Nothing Then
   Exit Sub
End If
qdef.Parameters("rDate") = InputBox("MM/YYYY") 'though there are much better ways of getting your parameter like a textbox on a form
Dim rs As DAO.Recordset
Set rs = qdef.OpenRecordset

现在您的查询位于记录集中,您可以使用它进行大量操作。通常,您会在表单上显示此内容。

Dim frm As Form
DoCmd.OpenForm "vikesForm", acNormal
Set frm = Forms("vikesForm")
Set frm.Recordset = rs 'sets the recordset of the form to the recordset you generated from your query.

最后一步假设您已设置表单以接受此记录集的结构。即绑定到右列的文本框。