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クエリを使用せずに、ある著者のすべての本を表示するより簡単な方法はありますか?