【问题标题】:Is it possible to pass a "Enter Parameter Value" to form if query fails?如果查询失败,是否可以传递“输入参数值”来形成?
【发布时间】:2015-04-20 21:49:20
【问题描述】:

我正在使用 Access 2013 数据库,并且对“输入参数值”框有疑问。我正在使用其记录源与“选择”查询相关联的表单。

如果查询找到我正在寻找的结果,它会使用其值填充表单。如果查询失败,它会将表单保留为空白,以便用户输入新条目。

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

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

【问题讨论】:

    标签: forms ms-access ms-access-2010


    【解决方案1】:

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

    一些伪:

    • 打开查询定义
    • 设置参数值
    • 将查询设置为表单的行源

    一些代码:

    检查这里: http://bytes.com/topic/access/answers/887449-how-pass-parameter-value-query-via-vba

    【讨论】:

    • 链接中的技术已过时。有关更多信息,请参阅我的答案。
    【解决方案2】:

    在 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
    

    请看这里: https://msdn.microsoft.com/en-us/library/office/ff194182(v=office.14).aspx

    哈维

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 2013-09-08
      相关资源
      最近更新 更多