【问题标题】:Double Click List to Open Form双击列表打开表单
【发布时间】:2011-06-27 05:10:50
【问题描述】:

我实际上才刚刚开始在 Access 2007 中创建表单,如果我单击列表框中的客户名称,我正在尝试打开一个包含客户信息的表单。

这是查找查询的内容:

SELECT msm_customers_extended.id AS ID, UCase([filed_name]) AS [Customer Name], UCase([address1]) & " " & UCase([address2]) AS Address
FROM msm_customers_extended
ORDER BY UCase([filed_name]);

所以我将绑定列设置为“1”,并将控制源设置为“客户 ID”。我在双击事件下有一个宏设置为:

动作:OpenForm 参数:

  • 表单名称:客户详细信息
  • 视图:表单
  • 过滤器名称:(空白)
  • 其中条件:[ID] = [客户 ID]
  • 数据模式:(空白)
  • 窗口模式:对话框

当我测试它时,我得到一个输入框,上面写着“客户 ID”,所以我假设我没有从列表框中获取 ID。如何从列表中获取 ID 以链接到我尝试打开的第二个表单?

【问题讨论】:

  • 我认为您确实应该将排序从 ORDER BY UCase([filed_name]) 更改为 ORDER BY [filed_name],因为大小写无关紧要。

标签: ms-access ms-access-2007


【解决方案1】:

正如 bluefeet 所说,你应该改变你的状况。由于您使用的是宏,而不是 VBA,请尝试将 Where 条件更改为:

[ID] = Forms!CustomerListFormName!ListBoxName 

虽然宏是发现 Access 属性和事件的绝佳方式,但我鼓励您在开始掌握属性和事件后立即切换到 VBA。变量、错误处理、可读性、VBA 会给你更多的满足。不要忘记,您可以自动将现有宏转换为 VBA 以帮助您快速入门。

【讨论】:

    【解决方案2】:

    从此改变你的 WHERE 条件:

    Where Condition: [ID] = [Customer ID]
    

    到这里:

    "[ID]=" & Me![Customer ID] 
    

    您必须告诉它从哪里提取客户 ID。通过使用Me,您可以让它知道它来自该表单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多