【カテゴリー別】Access VBA スタンダード 模擬問題 DAO Access VBA スタンダード 模擬問題 模擬問題 2026.07.062026.07.15 こちらはカテゴリー別の模擬問題です。 合計16問が、システムに登録した順番に1問1答形式で出題されます。 タイマー機能やランダム機能はありません。 準備が整い次第、ボタンを押して試験を開始してください。 1. DAOの説明として最も適切ものはどれか。以下の選択肢より1つ解答しなさい。 DAOはテーブルやクエリを作成する機能を持たない。 DAOはADOの新しいバージョンである。 AccessのJetデータベースエンジンに直接接続するライブラリで、テーブルやクエリを作成する機能を持つ。 Access以外のさまざまなデータベースを共通の方法で操作するための汎用的なライブラリである。 None 2. DAOとADOの違いに関する説明として最も適切ものはどれか。以下の選択肢より1つ解答しなさい。 ADOは、Accessの他にMicrosoft SQL Serverなどのデータベースにも接続でき、データベースの種類が異なってもレコードを操作できる汎用性を持つ。 DAOとADOには同じ名前のオブジェクトが存在しないため、ヘルプでメソッドやプロパティを調べる際に、どちらのオブジェクトの説明かを確認する必要はない。 DAOはJetデータベースエンジンに直接接続する専用のライブラリであり、レコードセットの操作やトランザクションの管理を行うことはできない。 DAOでレコードセットを操作するには、ADOと同様に必ず参照設定でライブラリを有効にする必要がある。 None 3. DAOを 標準で利用することができるが、参照設定で有効なっているか確認にするライブラリはどれか。以下の選択肢より1つ解答しなさい。 Microsoft Scripting Runtime Microsoft ActiveX Data Objects X.X Library Microsoft Access XX.X Object Library Microsoft Office XX.X Access database engine Object Library None 4. DAO(Data Access Objects)を使って、Recordsetオブジェクト変数を宣言する。DAOのRecordsetであるとして最も適切ものはどれか。以下の選択肢より1つ解答しなさい。 Dim rst As Recordset.DAO Dim rst As DAO.Recordset Dim rst As NEW.Recordset Dim rst As ADODB.Recordset None 5. 次のコードは、DAOでカレントデータベースへ接続するものである。最初空欄にはDAOのデータベースを表すオブジェクト型を、次の空欄にはカレントデータベースを入力します。以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim dbs As DAO. Set dbs = Set dbs = Nothing MsgBox "完了"End Sub 6. 次のコードは、DAOを使って、現在開いているデータベース(カレントデータベース)ではなく、別の場所にあるデータベースファイル(C:¥data¥test.accdb)に接続し、そのデータベース名を表示する処理である。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim dbs As DAO.Database Set dbs = ("C:¥data¥test.accdb") MsgBox dbs.Name dbs.Close Set dbs = Nothing MsgBox "完了"End Sub 7. DAOのDatabaseオブジェクトのExecuteメソッドを使ってSQLを実行する方法に関する説明として、最も適切ものはどれか。以下の選択肢より1つ解答しなさい。 Executeメソッドでは、レコードセットを返す選択クエリのみを実行でき、追加・更新・削除などのアクションクエリは実行できない。 Executeメソッドは、アクションクエリと選択クエリのどちらも実行でき、選択クエリの結果はレコードセットとして返される。 Executeメソッドで実行できるのはアクションクエリのみで、レコードセットを返すSQL(選択クエリ)を実行することはできない。 Executeメソッドの引数には、SQLステートメントは指定できず、あらかじめ作成したクエリ名だけを指定できる。 None 8. 次のコードを実行するとどうなるか。最も適切ものはどれか。以下の選択肢より1つ解答しなさい。 Sub Exam1() Dim dbs As DAO.Database Set dbs = CurrentDb dbs.Execute "SELECT * FROM [Table Product1]" Set dbs = Nothing MsgBox "完了"End Sub Table Product1の全レコードが取得され、正常に完了する。 先頭レコードだけが取得される。 選択クエリはExecuteで実行できないため、エラーが発生する。 何も起きずに完了する。 None 9. 削除予定 コード穴埋め問題にDAOでテーブルを作成する手順として最も適切ものはどれか。以下の選択肢より1つ解答しなさい。 CreateFieldでテーブルを作成し、CreateTableDefでフィールドを追加する。 テーブルはDAOでは作成できない。 CreateTableDefで作成し、CreateFieldでフィールドを作成してAppendで追加した後、TableDefsオブジェクトにAppendで追加する。 CreateTableだけでテーブルとフィールドを同時に作成する。 None 10. 次のコードは、DAO(Data Access Objects)を使って、「Name of sport」「Price」「Category」の3つのフィールドを持つ新しいテーブル「Table Sports2」を作成する処理である。 以下の空欄に入る適切な語句を解答しなさい。。Sub Exam1() Dim dbs As DAO.Database Dim tdf As DAO.TableDef Set dbs = CurrentDb Set tdf = dbs. ("Table Sports2") tdf.Fields.Append tdf.("Name of sport", dbText, 20) tdf.Fields.Append tdf.「上記空欄と同じ」("Price", dbLong) tdf.Fields.Append tdf.「上記空欄と同じ」("Category", dbText, 10) dbs.TableDefs.Append tdf Set dbs = Nothing Set tdf = Nothing MsgBox "完了"End Sub 11. 次のコードは、DAOのCreateFieldメソッドを使って新しいテーブル [T入荷マスタ] にフィールドを追加するものである。先の空欄にはテキスト型を表すデータ型定数が、次の空欄には日付/時刻型を表すデータ型定数が入る。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim DB As DAO.Database Dim TD As DAO.TableDef Set DB = CurrentDb Set TD = DB.CreateTableDef("入荷マスタ") TD.Fields.Append TD.CreateField("商品コード", , 5) TD.Fields.Append TD.CreateField("入荷日", ) DB.TableDefs.Append TD Set TD = Nothing: Set DB = Nothing MsgBox "完了"End Sub 12. DAOでCreateFieldメソッドを使って新しいフィールドを作成するとき、第2引数にはフィールドのデータ型を表す定数を指定する。「倍精度浮動小数点型」のフィールドを作成するときに第2引数へ指定する定数として、正しいものはどれか。以下の選択肢より1つ解答しなさい。 dbDate dbText dbCurrency dbDouble None 13. 次のコードは、DAOを使って、カレントデータベースにある「work」という名前のテーブルを削除する処理である。空欄に入るコードを解答しなさい。 Sub Exam1() Dim dbs As DAO.Database Set dbs = CurrentDb dbs. "work" Set dbs = Nothing MsgBox "完了"End Sub 14. 次のコードは、データベースに保存されない一時的なクエリを作成するものである。空欄に入るメソッド名を解答しなさい。なお、第1引数(クエリ名)に長さ0の文字列を指定している。 Sub Exam1() Dim dbs As DAO.Database Dim qdf As DAO. Set dbs = CurrentDb Set qdf = dbs.( "", "SELECT * FROM [Table Product1]") Set qdf = Nothing: Set dbs = Nothing MsgBox "完了"End Sub 15. 次のコードは、DAOを使って、名前を付けずに作成した一時的なクエリを実行し、その実行結果をレコードセットに格納して、先頭レコードのProduct Nameを表示する処理である。空欄に入る語句を解答しなさい。 Sub Exam1() Dim dbs As DAO.Database Dim qdf As DAO.QueryDef Dim rst As DAO.Recordset Set dbs = CurrentDb Set qdf = dbs.CreateQueryDef("", "SELECT * FROM [Table Product1]") Set rst = qdf.() MsgBox rst.Fields("Product Name").Value rst.Close Set rst = Nothing: Set qdf = Nothing: Set dbs = Nothing MsgBox "完了"End Sub 16. 次のコードは、、作成したクエリ「Q1」を削除するものである。空欄に入るコードを解答しなさい。 Sub Exam1() Dim dbs As DAO.Database Set dbs = CurrentDb dbs."Q1" Set dbs = Nothing MsgBox "完了"End Sub Time's up