使用VBA在Access中进行GUI(第一次在本学期中看到它,它对我来说看起来很不寻常)。我得到了表Authors
其中我列author_id
,last_name
,first_name
和表Books
与列author_id
,book_name
。 我在按钮上点击应该要求用户输入作者姓,然后搜索并显示该作者的所有书籍。在访问中使用VBA的GUI。查询中的记录集
因此,我试图从Authors表中找到作者ID,然后从Books表中显示出author.author_id等于books.author_id的所有书籍。
我在想,我需要创建包含author_id值的临时查询,然后创建记录集使用此查询使用SQL查询如"SELECT [Books].[book_name] AS [Bookname] FROM [Books] WHERE [Books].[author_id] = [test].[ID]"
但我在这里stucked - 我试图检查这个东西是否工作,但它说有一个错误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查询)?
你有表吗?顺便说一下,这些字段名称会让你疯狂 - 大多数人建议避开除列表和表名之外的其他字符(如果你真的必须),例如姓氏。 – Fionnuala
是的我有一个表格 – DanilGholtsman