使用 VBA 在 Access 中制作 GUI(我在这个学期第一次看到它,这对我来说看起来很不寻常)。我得到了Authors
我有列的表格,author_id
和带有列的表格,。我在表单上有按钮,单击时应要求用户输入作者姓氏,然后搜索并显示该作者的所有书籍。last_name
first_name
Books
author_id
book_name
因此,我尝试从 Authors 表中查找作者 ID,然后从 Books 表中显示 author.author_id 等于 books.author_id 的所有书籍。
我在想我需要创建包含 author_id 值的临时查询,然后使用 SQLquery 使用此查询创建记录集,"SELECT [Books].[book_name] AS [Bookname] FROM [Books] WHERE [Books].[author_id] = [test].[ID]"
但我卡在这里 - 我试图检查这件事是否有效,但它说有一个错误3061
Private Sub authorlist_Click()
Dim dbs As Database, authorsRS, booksRS As Recordset, queryStr, idbynameQuery, srchASurStr, strOutput, srId As String, qdf As QueryDef
Set dbs = CurrentDb()
srchASurStr = InputBox("Input author surname, please", , , 100, 100)
strQuery = "SELECT [Authors].[author_id] AS [ID] FROM [Authors] WHERE [Authors].[last_name] = " & srchASurStr & ""
Set authorsRS = dbs.OpenRecordset(strQuery, dbOpenSnapshot)
With dbs
Set qdf = .CreateQueryDef("test", strQuery)
DoCmd.OpenQuery "test"
.QueryDefs.Delete "test"
End With
End Sub
那么你能帮我了解一下有什么问题吗?是否有更简单的方法来显示某个作者的所有书籍(可能不使用 SQL 查询)?