
VBを始めたばかりの初心者でDB接続がいまだによくわかっていません。
以下のプログラムをデバックするとデータベースの形式 <ファイル名> を認識できません
というエラーがでてしまいます。access2007はインストールしたばかりで何も設定とかは
いじってないと思います。
利用ソフト
VB2008 Express Edition
MS ACCESS 2007
Imports dao
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
' デフォルトのワークスペースを定義する
'DAO.DBEngine.Workspaces(0)の関数
'ws = DBEngine.Workspaces(0)
Dim obj As DBEngine = New DBEngine()
ws = obj.Workspaces(0)
Try
' データベースを開く
db = ws.OpenDatabase("C:\Users\PCUser\Desktop\database\Database1.accdb")
' テーブル名を指定してレコードセットを作成する
rs = db.OpenRecordset("adress", RecordsetTypeEnum.dbOpenDynaset)
Catch ex As Exception
MsgBox(ex.Message)
End Try
MsgBox("DB接続")
End Sub
No.2ベストアンサー
- 回答日時:
下記でテストしたらうまく行きました。
WindowsアプリケーションでForm1を出し、コマンドボタンを1つ貼り付け。ダブルクリックしてPrivate Sub Button1_Clickと End Sub の間に下記を入れる。
ーーー
Microsoft DAO 3.6 Object Liblaryを参照設定のこと。
ーー
Imports dao
Public Class Form1
のようにImports daoをPublic Class Form1の前に(すなわち最初に)入れる。
ーーー
Button1 ボタン1のクリックイベントに
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
' デフォルトのワークスペースを定義する
'DAO.DBEngine.Workspaces(0)の関数
'ws = DBEngine.Workspaces(0)
Dim obj As DBEngine = New DBEngine
ws = obj.Workspaces(0)
'Try
' データベースを開く
db = ws.OpenDatabase("C:\Documents and Settings\XXXX\My Documents\社員2.mdb")
' テーブル名を指定してレコードセットを作成する
rs = db.OpenRecordset("社員3", RecordsetTypeEnum.dbOpenDynaset)
'Catch ex As Exception
' MsgBox(ex.Message)
'End Try
Do Until rs.EOF
MsgBox(rs.Fields("氏名").Value.ToString())
rs.MoveNext()
Loop
End Sub
私の場合ACCESSで、MyDocumenntフォルダに社員2.mdbを作っており、そのテーブルの中の1つに、「社員3」があり、「氏名」フィールドほかがあり、デバッグ実行すると
全員の氏名が順次表示されました。
ーー
しかし、これからはADOを使うべき、ようですね
No.1
- 回答日時:
Access持っているならCOMコンポーネントを使った方が楽
Dim Objaccess As Microsoft.Office.Interop.Access.Application
Dim objDB As dao.Database
Dim rs As dao.Recordset
Try
Objaccess = CreateObject("Access.Application")
Objaccess.Visible = False
Objaccess.OpenCurrentDatabase(filename, True)
objDB = Objaccess.CurrentDb
rs = objDB.OpenRecordset("adress")
Catch ex As Exception
MsgBox(ex.Message)
end Try
MsgBox("DB接続")
objDB.Close()
Objaccess.CloseCurrentDatabase()
Objaccess.Quit()
objDB = Nothing
Objaccess = Nothing
ご回答ありがとうございました。私はVBを勉強し始めたばかりでDB接続の種類が沢山ありよくわかっていません。一般的に広く使われているDB接続のプログラム等ご存知でしたら教えてください。また、今はACCESSを使ってプログラムを組んでいますが、OracleやSQLServer等でもDB接続のプログラムを組みたいと思っていますのでDB接続のプログラム方法を教えていただければ幸いです。私が掲載したプログラムでのエラー回避方法等もご存知でしたら教えてください。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
wordpressのデータベースの変更...
-
DataTableの使い方についてアド...
-
VB6.0でSQLServerへ・・・Recor...
-
【VB】コンボボックスにデータ...
-
【VB】データグリッドに読み込...
-
複数SQL発行について
-
変数の宣言
-
C#でbyte配列から画像を表示さ...
-
SQLを発行とは?クエリの作成と...
-
手動または分散トランザクショ...
-
vba フィルター 複数条件 3つ以...
-
chrをintに変換すると…
-
VBA 変数名に変数を使用したい。
-
エクセルのテーブルを解除する...
-
VB6.0の「vbFromUnicode」はVB....
-
『列名 '担当者CD' があいま...
-
クリスタルレポート(8.5)の書式...
-
VBからMDBのアクセス
-
C# DataTableに最後に追加した...
-
VB.NETの配列にExcelから読み込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UPDATE時にSETしたい日本語文字...
-
【VB】コンボボックスにデータ...
-
VB6.0でSQLServerへ・・・Recor...
-
複数SQL発行について
-
名前'dbOpenDynaset'は宣言され...
-
MDBをADO接続でINSERT・UPDATE...
-
初心者ですデータベースの形式 ...
-
PerlでMDBのデータを読みたいん...
-
VB6.0とaccessのDBを接続する
-
データベースの接続ができない
-
OracleDataReaderについて…
-
ListviewにDB内容を表示し方に...
-
VBSでADOを使ってaccessのテー...
-
データベースに書き込むときの...
-
レコードをセレクトしてデータ...
-
VB6でデータベースを変えるとテ...
-
StrutsでDataSourceの切り替え
-
[ASP]エラー プロバイダが指...
-
vb.netでデータベース(Access)...
-
ASPでoracleの接続について教え...
おすすめ情報