![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
VB初心者です。データベース接続を一度も成功したことがありません。
そのため「参照の追加」でMicrosoft DAO 3.6Object Libraryを設定することも
わかりませんでした。
利用しているソフトはVB2008 Express Editionを利用しています。
以下のソースコードで名前'dbOpenDynaset'は宣言されていません というエラーがでてしまいます
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'DAOのオブジェクト変数を宣言する()
Dim ws As DAO.Workspace
Dim db As DAO.Database
Dim rs As DAO.Recordset
' デフォルトのワークスペースを定義する
Dim obj As DBEngine = New DBEngine()
ws = obj.Workspaces(0)
' データベースを開く
db = ws.OpenDatabase("C:\Users\PCUser\Desktop\database\Database1.accdb")
' テーブル名を指定してレコードセットを作成する
rs = db.OpenRecordset("adress", dbOpenDynaset)
MsgBox("DB接続")
End Sub
End Class
No.2ベストアンサー
- 回答日時:
#1です。
ヒマだから簡単に解説。>名前'dbOpenDynaset'は宣言されていません というエラーがでてしまいます
dbOpenDynasetの名前解決ができないということ。
すなわちコンパイルする上で、「dbOpenDynasetってなんのことかわからないよ!」と言われているわけ。
「参照」-「追加」はビルドパスにdllを通しただけにすぎない。
従ってDAO名前空間配下のRecordsetTypeEnum列挙型のメンバであるdbOpenDynasetにアクセスするには
フルネームで指定しなくてはならない。それが先(前回答)の指摘。
「毎回フルネームで書くなんてメンドーだな!」という場合は
あらかじめインポートしてやればよい。
Imports DAO.RecordsetTypeEnum
これを文頭に書けばdbOpenDynasetだけでも名前解決ができるようになる。
開発環境にVisualStadioを使っているならdllを追加した「参照」の下部に
「インポートされた名前空間」ってやつがあるからそこに「DAO.RecordsetTypeEnum」を
追加してやっても同じこと。
余談だが、クラスや列挙体というのは必ずどこかの名前空間に属している。
例えば「MsgBox」関数は普通使う場合にフルネームで指定しないが
それは標準で「Microsoft.VisualBasic」名前空間がインポートされているから。
試しに「インポートされた名前空間」から「Microsoft.VisualBasic」のチェックをはずすと
「名前'MsgBox'は宣言されていません」と表示されるはず。
何事も実践が大事。お試しあれ。
No.1
- 回答日時:
> rs = db.OpenRecordset("adress", dbOpenDynaset)
rs = db.OpenRecordset("adress", DAO.RecordsetTypeEnum.dbOpenDynaset)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースの接続ができない
-
VB 2010 Expressでのデータベー...
-
【VB】コンボボックスにデータ...
-
VBSでADOを使ってaccessのテー...
-
【C#】textBoxの指定行のデータ...
-
VBとアクセスでSQL文に変...
-
C#でbyte配列から画像を表示さ...
-
VBA 変数名に変数を使用したい。
-
ファイル名の一部削除について
-
他のMDBのテーブルに追加したい
-
構造体配列内の文字列検索のよ...
-
定数配列の書き方
-
2つ目のレコードの値を取得す...
-
Access クエリで変数を参照する...
-
『列名 '担当者CD' があいま...
-
StrConvでUnicodeに変換出来な...
-
矩形グラフ(オシロやロジアナ...
-
Access 2010で実行時エラー3061
-
VB6でやると構造体の配列になる...
-
DataTableに特定のフィールドが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】コンボボックスにデータ...
-
UPDATE時にSETしたい日本語文字...
-
複数SQL発行について
-
初心者ですデータベースの形式 ...
-
VB6.0とaccessのDBを接続する
-
VB6.0でSQLServerへ・・・Recor...
-
データベースの接続ができない
-
PHP+ACCESSのデータベース接続...
-
名前'dbOpenDynaset'は宣言され...
-
ListviewにDB内容を表示し方に...
-
vb.netでデータベース(Access)...
-
OracleDataReaderについて…
-
VBSでADOを使ってaccessのテー...
-
VBでAccessにSQL文を実行して値...
-
VBでmdbファイルの抽出
-
PHPでのsqlite_close();について。
-
Accessを編集するとASPで接続で...
-
レンタルサーバでのDB接続の件
-
[ASP]エラー プロバイダが指...
-
VB2005でmdbに接続するには?
おすすめ情報