【问题标题】:Search a form by matching two fields in form in access通过匹配访问表单中的两个字段来搜索表单
【发布时间】:2020-03-06 14:52:54
【问题描述】:

我在 MS 访问中有一个名为 frmBullList 的表单,其中一个字段名为 TYPE,另一个字段为 LOCATION。我有LOCATION 的单独表,它与tblBullList 连接。

我想搜索两个字段都匹配的记录。

假设我想在美国 (LOCATION) 搜索红牛 (TYPE)。结果将只显示美国的红牛。

谢谢

【问题讨论】:

  • “我有单独的 LOCATION 表,它与 tblBullList 连接。” 它们是如何连接的?
  • 看来您错过了tour 并阅读了How to Ask
  • 它是一对多的关系。
  • @MoodyA 拔牙:在哪些领域?没有阅读我的链接?

标签: vba ms-access search module combobox


【解决方案1】:

我假设您的表 LOCATION 有 3 个字段:

LocationID
LocationName
TypeID

表 TYPE 有 2 个字段:

TypeID
TypeName

如果这是真的,则为您的 cmbType 组合事件创建:

    Private Sub cmbType_AfterUpdate()
        If isnull(cmbType) Then
            Me.Filter = ""
            Me.FilterOn = False
        Else
            Me.Filter = "TypeID = " & cmbType.column(0)
            Me.FilterOn = True
        End If
    End Sub

你应该设置这些属性(你也可以在属性窗口中设置它们):

    Private Sub Form_Load()
        Me.RecordSource = "SELECT * FROM LOCATION"
        Me.txtLocation.ControlSource = "LocationName"
        Me.cmbType.RowSource = "SELECT TypeID, LocationName FROM TYPE"
        Me.cmbType.BoundColumn = 1
        Me.cmbType.ColumnCount = 2
        Me.cmbType.ColumnWidths = "0;"
    End Sub

我希望我没有忘记任何事情。我没有测试过。

【讨论】:

  • 由于 [access-vba] 错过了 lang-vb 代码提示并且没有其他标签(请参阅标签说明以检查)在此问题中引用 lang-vb(或任何其他),因此未激活默认语法突出显示, 开启添加code hint
  • 不错。我做的。谢谢。
  • 如果你想知道那个丑陋的突出显示here,这是由多个代码提示(vba 和 sql)引起的,那么使用默认突出显示,不将引号识别为 cmets,但是字符串字面量。手动语言设置解决了这个问题。
  • 谢谢。对不起,我没有很好地提出我的问题。我的数据库有 2 个表 tblBullList 和 tblLocation。这两个表与 LocationID 连接。而 TYPE 是 tblBullList 中的一个字段。我有一个名为 frmBullList 的拆分表单。我有两个组合在上面....一个组合是 cboType,另一个是 cboLocation。希望现在已经很清楚了。
猜你喜欢
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-23
  • 2020-01-18
  • 2021-02-23
  • 2021-08-18
相关资源
最近更新 更多