
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VB】コンボボックスにデータ...
-
名前'dbOpenDynaset'は宣言され...
-
データベースの接続ができない
-
VBSでADOを使ってaccessのテー...
-
UPDATE時にSETしたい日本語文字...
-
ExcelVBAでのAccessデータベー...
-
VB 2010 Expressでのデータベー...
-
OracleDataReaderについて…
-
[CakePHP]複数テーブルのアソシ...
-
C#でbyte配列から画像を表示さ...
-
【VB.NET】Excelの最終行までの...
-
INT64対応のprintf系関数はあり...
-
VBA 変数名に変数を使用したい。
-
SQLを発行とは?クエリの作成と...
-
『列名 '担当者CD' があいま...
-
エクセルでXY座標に並べられた...
-
構造体配列内の文字列検索のよ...
-
C# DataTableに最後に追加した...
-
Dir関数で読み取り順を操作でき...
-
VB.NETの配列にExcelから読み込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】コンボボックスにデータ...
-
UPDATE時にSETしたい日本語文字...
-
VB6.0でSQLServerへ・・・Recor...
-
複数SQL発行について
-
初心者ですデータベースの形式 ...
-
VB6でデータベースを変えるとテ...
-
データベースの接続ができない
-
名前'dbOpenDynaset'は宣言され...
-
ExcelVBAでのAccessデータベー...
-
【VB】データグリッドに読み込...
-
VB6.0とaccessのDBを接続する
-
コネクションオブジェクトについて
-
vb.netでデータベース(Access)...
-
DataTableの使い方についてアド...
-
変数の宣言
-
Accessのデータ操作について(Ac...
-
ListviewにDB内容を表示し方に...
-
ASP.NET(VB.NET)でADO.NETを使...
-
wordpressのデータベースの変更...
-
MSFlexGridでデータの追加の方...
おすすめ情報