按钮搜索子表单,然后在主表单中找到记录(Access VBA)

Posted

技术标签:

【中文标题】按钮搜索子表单,然后在主表单中找到记录(Access VBA)【英文标题】:Button searches subform, then finds record in main form (Access VBA) 【发布时间】:2018-02-09 21:10:57 【问题描述】:

我有一个包含子表单的 ACCESS 表单:Form & Subform 我正在尝试创建一个搜索按钮(使用 VBA)以按姓名查找学生(学生的姓名不在主表单后面的表格中)。

我已经完成了第一步,即在子表单中搜索学生的姓名,但我在执行所需的第二步时遇到了问题。我想要代码然后获取学生的 CWID 号码并在主表单中找到匹配的记录。我该怎么做? (我当前的代码如下)

我已经尝试过 DoCmd FindRecord 和 GoToRecord,但它完全难倒我。我正在谷歌学习如何做到这一点,并认为我从根本上误解了某些东西,因此无法搜索或理解答案。任何帮助将不胜感激。

Private Sub btnSearch_Click()
Dim SQL As String
SQL = "SELECT [AWN Banner].CWID, [AWN Banner].FirstName, [AWN Banner].LastName, [AWN Banner].Freshman, [AWN Banner].Instructor, [AWN Banner].Course " _
    & "FROM [AWN Banner] " _
    & "RIGHT JOIN [AWNEntry] ON [AWN Banner].CWID = [AWNEntry].CWID " _
    & "WHERE [LastName] LIKE '" & Me.txtKeywords & "*' " _
    & "ORDER BY [AWN Banner].LastName "

    Me.subAwnObj.Form.RecordSource = SQL
    Me.subAwnObj.Form.Requery
    End Sub

【问题讨论】:

看这个:***.com/questions/47147117/… 【参考方案1】:

当我创建我的搜索框时,我在底层表单源中放置了一个 WHERE 子句WHERE [field] LIKE "*" & [MySearchBox] & "*" 我将这样的子句放在子表单中,而在主表单中我创建了一个到子表单记录的 JOIN,并定义了相同的 WHERE 子句。然后单击我请求所有记录源。

【讨论】:

以上是关于按钮搜索子表单,然后在主表单中找到记录(Access VBA)的主要内容,如果未能解决你的问题,请参考以下文章

在子表单中搜索值 (vba Access 2013)

搜索后未找到访问表单记录源

在主窗体中创建子窗体

DataTables 搜索子行内容

NSPredicate 根据父实体的属性搜索子实体实例

Z平台--重写表单默认保存方法教程