【问题标题】:Adding checkbox to each record in a continuous form in Access 2007在 Access 2007 中以连续形式向每条记录添加复选框
【发布时间】:2012-05-19 16:28:02
【问题描述】:

我是 VBA 和 Access 的新手。我必须创建一个库存贷款表单,使用户能够查看和更新​​用户的项目贷款详细信息。我创建了一个显示查询记录结果的连续表单(表单的我的 RecordSource 就是这个查询)。

我目前有一个名为“Loan Details”的表,其中包含一个名为“Return status”的布尔列。我已使用此列将一个复选框绑定到它,并将该复选框与记录一起放置。我想创建这样一个用户可以选择特定记录的复选框,然后单击“更新返回状态”按钮,有 vba 代码使用查询将“返回状态”再次更改为 True。

但是,该复选框不允许我选择(我认为这是因为该复选框仅显示“返回状态”值),我不太确定如何去做。

我知道这是一个常见问题,但我尝试在线搜索并找不到任何解决我问题的方法。

对不起,如果我听起来不清楚!

【问题讨论】:

  • 请发布表单的记录源和复选框的控制源。
  • 记录源是一个查询:SELECT * from items, (SELECT [Pdt ID] FROM [Loan Detail] WHERE [Loan Detail].[EmpID] = Forms![Update Form]![IDText ]) AS pdtList WHERE pdtList.[Pdt ID] = items.ID。项目表中有一个“返回状态”列,我已将其引用到复选框的控制源。

标签: vba ms-access-2007


【解决方案1】:

该查询看起来不可更新。要检查,请尝试更改文本框并查看 MS Access 窗口底部的状态栏。它将从“表单视图”之类的内容更改为“此记录集不可更新”。简单地从隐式连接更改为显式连接可能会有所帮助。

显式连接

 SELECT * 
 FROM items
 INNER JOIN (
    SELECT [Pdt ID] 
    FROM [Loan Detail] 
    WHERE [Loan Detail].[EmpID] = Forms![Update Form]![IDText]) AS pdtList 
 ON pdtList.[Pdt ID] = items.ID

顺便说一句 * 几乎总是一个坏主意,您应该列出您需要的字段(列)。

【讨论】:

  • 谢谢!现在可以了!只是为了澄清。当您说“隐式到显式”时,您的意思是使用 INNER JOIN 和 OUTER JOIN 而不是仅使用 WHERE 子句来更新表(如果查询中使用了 2 个表)?对不起,我对 sql 语句的命令有限。
  • 是的,我愿意。语言可能很痛苦,这里有一个链接en.wikipedia.org/wiki/Join_(SQL)
猜你喜欢
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 2021-05-26
  • 2013-04-04
  • 1970-01-01
相关资源
最近更新 更多