【问题标题】:Access 2016: Search result display in multiple text boxesAccess 2016:搜索结果显示在多个文本框中
【发布时间】:2020-01-02 17:47:06
【问题描述】:

这项工作正在 Access 2016 中执行。创建了一个查询,然后根据该查询创建了一个表单。将文本框作为搜索框来查询记录。搜索脚本如下。

Dim strsearch As String
Dim Task As String
'Check if a keyword entered or not
If IsNull(Me.txtSearch) Or Me.txtSearch = "" Then
   MsgBox "Please type in your search keyword.", vbOKOnly, "Keyword Needed"
   Me.txtSearch.SetFocus
Else
    strsearch = Me.txtSearch.Value
    Task = "SELECT * FROM [RSIDCircuit] WHERE ((RSID Like ""*" & strsearch & "*""))"
   Me.RecordSource = Task
End If

搜索按预期工作,但希望在多个可编辑的不同文本框中显示结果。希望第 1 列转到 text4,第 2 列转到 text5,依此类推。无法弄清楚如何让结果出现在各种文本框中。提交搜索时,其他文本框会变为空白,并且在没有进行任何搜索时,其他文本框会显示表的第一条记录。非常感谢任何帮助。

【问题讨论】:

  • 组合框的第 1 列? txtSearch 是一个组合框吗?您的代码设置表单 RecordSource,而不是组合框 RowSource。如果要编辑数据,请将文本框绑定到 RecordSource 中的字段。应该保存组合框选择的键值,而不是与该键关联的其他数据。
  • txtSearch 是一个文本框,根据给出的答案,这似乎是不可能的,需要使用组合框。感谢您的回复。
  • 只要有足够的代码,大多数事情都是可能的。你的叙述没有意义。
  • 是的。当时对 Access 2016 的搜索功能知之甚少。过去四天花了很多时间研究并找到了几乎可以完成所有期望的方法。剩下的唯一问题是创建一个搜索功能,该功能不仅可以找到第一条记录。起初这是一个很好的解决方案,但不再可取。再次感谢您的帮助,并将继续研究更多。

标签: ms-access ms-access-2016


【解决方案1】:

使用子表单(根据基表创建一个连续的子表单,可以使用设计器,不用写代码。

然后,对于搜索,您只需将 sql 中的内容填充到子表单中,如下所示:

Task = "SELECT * FROM [RSIDCircuit] WHERE ((RSID Like ""*" & strsearch & "*""))"
me.mySubForm.Form.RecordSource = Task

结果将如下所示:

您可以编辑结果,或者如上所示,我有结果,如果您单击眼镜图标,我会运行此代码以启动“向下钻取”详细信息表单以查看数据

docmd.OpenForm "frmDetails",,,"ID = " & me!id

因此,要显示重复数据,请创建 + 使用通常称为连续表单(功能区中的多个项目表单)的形式。它会像魔术一样让您显示重复数据的行,但是当您设计表单时,您只需放置/编辑/设计一个带有一行文本框的表单,这些文本框会自动为您重复一遍又一遍。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多