Forms 有没有可能通过一个;输入参数值";如果查询失败,如何生成?

Forms 有没有可能通过一个;输入参数值";如果查询失败,如何生成?,forms,ms-access,ms-access-2010,Forms,Ms Access,Ms Access 2010,我正在使用Access 2013数据库,对“输入参数值”框有疑问。我使用的表单的记录源绑定到“Select”查询 如果查询找到我要查找的结果,它将用其值填充表单。如果查询失败,它会将表单保留为空,以便用户进行新的输入 我的一些用户一直抱怨,如果查询失败,他们希望将最初输入到“输入参数值”中的值传递给表单,这样他们就不必在表单中输入两次数据 是否可以将“输入参数值”中的值传递给表单框而不是查询?一种方法是在表单框中输入值,然后以编程方式将值作为参数传递给查询 一些伪: 打开查询窗口 设置参数值

我正在使用Access 2013数据库,对“输入参数值”框有疑问。我使用的表单的记录源绑定到“Select”查询

如果查询找到我要查找的结果,它将用其值填充表单。如果查询失败,它会将表单保留为空,以便用户进行新的输入

我的一些用户一直抱怨,如果查询失败,他们希望将最初输入到“输入参数值”中的值传递给表单,这样他们就不必在表单中输入两次数据


是否可以将“输入参数值”中的值传递给表单框而不是查询?

一种方法是在表单框中输入值,然后以编程方式将值作为参数传递给查询

一些伪:

  • 打开查询窗口
  • 设置参数值
  • 将查询设置为窗体的行源
一些代码:

请点击此处:

在Access 2010和2013中

这使用DAO,可能会引起兴趣

DIM MyQryDef as querydef
Dim a as string 

a = ""

a = a & "PARAMETERS Parameter1 INT, Parameter2 INT; "

a = a & "SELECT f1, f2 FROM atable WHERE "
a = a & "f3 = [Parameter1] AND f4 = [Parameter2] "
a = a & ";"

Set MyQryDef = currentdb().CreateQueryDef("MyQueryName", a)

MyQryDef.Parameters("Parameter1").Value = 33
MyQryDef.Parameters("Parameter2").Value = 2

' You could now use MyQryDef with DAO recordsets

' to use it with any of OpenQuery, BrowseTo , OpenForm, OpenQuery, OpenReport, or RunDataMacro


DoCmd.SetParameter "Parameter1", 33
DoCmd.SetParameter "Parameter2", 2
DoCmd.Form YourFormName
”“或者

请看这里:


哈维

你链接中的技术已经过时了。更多信息请参见我的答案。
DoCmd.SetParameter "Parameter1", 33
DoCmd.SetParameter "Parameter2", 2
DoCmd.OpenQuery MyQryDef.Name