【问题标题】:Automatically fill out textbox doble clicking on an item in a listbox双击列表框中的项目自动填写文本框
【发布时间】:2017-05-04 08:39:23
【问题描述】:

另一个初学者问题,但这次是关于 MS 访问控制。 我有一个表格,其中有一个列表框,里面有很多项目。 我需要做的是,当我双击存储在列表框中的一项时,所有文本框都应该填充存储在与我的表的同一行不同的字段中的项目。

我已经查看了很多教程,但没有找到好的解决方案。

感谢您的帮助!

编辑:

我有一个包含多个字段的表格。列表框包含来自第一个字段 (ID) 的项目。我表单中的文本框表示的其余字段(平铺、交货日期等)。

当我双击列表框中的一项时,将填充文本框。 如果我从列表框中选择第 5 项,它代表表中的第 5 行,则每个文本框都应该从表中表示的字段的同一行中获得它们的项目。

我只想用这个表格编辑存储在表格中的数据。

【问题讨论】:

  • 所有文本框是否应该填充存储在与我的表的同一行不同字段中的项目 - 这很难理解,您可以将您的问题编辑为清楚一点?

标签: textbox listbox ms-access-2010


【解决方案1】:

好的,我终于找到了解决方案。

双击事件后,我使用 DLOOKUP 将数据拉到我的表单中。

 Dim ctrloop

 For Each ctrloop In Me.lbReportID.ItemsSelected
      strReportID = Me.lbReportID.ItemData(ctrloop)
 Next ctrloop

 Me.txtTitle = DLookup("[Title]", "tblreports", "[ID No] = '" & strReportID & "'")

循环存储我在表中的所有报告 ID。 DLOOKUP 使用它作为过滤器。这就像 SQL 中的WHERE

当程序运行时,将填写我的标题文本框,查看我的tblreports 表中的标题字段,该表使用strReportID 过滤。

它的工作方式类似于我在不同文本框中使用的这个 SQL 查询:

SELECT tblReports.[ID No] 
FROM tblReports 
WHERE (((tblReports.WorkPacage) = 'CDS'))  
  AND (((tblReports.State) <> 'Complete')); 

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多