• ベストアンサー

VBとACCESSを接続したい

VBの画面からACCESSのテーブルを取得したいのですが どういうふうに記述すればいいかわかりません。 サンプルプログラムとともにおしえてください。 DAOというので接続したいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

まず、参照設定でMicrosoft DAOにチェックをつけます。 で、コーディングですが、以下のような感じです。 不明点とかあったら、補足にてご質問ください。 Private Sub Command1_Click()   Dim DB As DAO.Database   Dim RST As DAO.Recordset   Dim SQL As String      'データベースを開く   Set DB = DAO.OpenDatabase("X:\XX\db1.mdb")      '「テーブル1」をスナップショット(読み込み専用モード?)で開く   Set RST = DB.OpenRecordset("テーブル1", dbOpenSnapshot)      'テーブル1のID列を書き出します。   Do Until RST.EOF     Debug.Print RST![ID]     RST.MoveNext '次のレコードに移動   Loop   'レコードセットとデータベースを閉じる   RST.Close   DB.Close End Sub

その他の回答 (2)

  • xruz
  • ベストアンサー率50% (72/143)
回答No.2

こんにちはxruzです。 MSのライブラリはいかがでしょうか? 下記URLの左側のメニューで VisualBasic6.0ドキュメント →VisualBasicドキュメント -→MicrosoftDAO3.60 結構やさしく書いてありますのでご覧になって損はありません。

参考URL:
http://www.microsoft.com/japan/developer/library/default.asp
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

参考URLのところで簡単な手順だけはわかるとおもいます。 蛇足かもしれませんが、忠告をひとつ。その Access のテーブルは共有される、 つまり、複数の VB の画面から同じに更新されたりはしないですよね? Access って、そういう用途に耐えられるようには作られていませんので、注意 してください。 # ちなみに、私は計算機屋さんですが、VB や Access なんかは使ったことは # 無いので、自信無しです。

参考URL:
http://homepage2.nifty.com/inform/vbdb/

関連するQ&A

  • VBからACCESS2007に接続・・・

    VB6.0からACCESS2007へDAO接続しようとしているのですが、 拡張子が.mdbではなく、.accdbとなっているためか、接続できません。 なにか方法をご存じの方いらっしゃいましたら教えてください。。

  • VBからMDBのアクセス

    VB初心者質問です。 開発環境 VB6 SP6 WIN2000  VB6からMDBの検索の手順について教えてください。 (質問) フォームに検索値用のテキストBOXを配置し、 その値でMDBのテーブルを検索し1件抽出する。 (検索値はテーブルのキー項目のため重複なし) 現在 Microsoft DAO 3.6 Object Library を参照しているので DAOで検索を行いたい。 知りたいことは検索の方法と 見つからなかった場合の判定についてです。 サンプルなどあればお願いいたします。

  • ACCESS2003 VBAよりVB.NETを使った方がいい?

    ACCESS2003 VBAよりVB.NETを使った方がいい? プログラマーでもないのですが、仕事でAccess2003でVBAを書いています。フォームにテーブルから引っ張てきたデータを表示させてデータを閲覧したり、データを加工してExcelにデータを吐き出したりしています。テーブルには10万件程度のデータがあります。 特に私は便利に使っているのですが、上司がVB.netとMYSQLでプログラム書いた方が楽じゃない?VB.NETよかったら買ってあげるよと言われました。買ってくれるのは嬉しいのですが、.netなんてやったこともないですし、DAOしか使ったことがなくADOなんて全くわかりません。 何かACCESS VBAよりVB.net+MYSQLのメリットって何かありますでしょうか?ちなみに業務で使うためのものなので、家からアクセスして何かするというのは考えていません。あくまで社内で使う時にメリットはあるでしょうか?

  • VB2008からAccess2007へのDAO接続でエラーになります。

    VB2008からAccess2007へのDAO接続でエラーになります。 VB2008EEからDAO3.6を利用し、Access2007(*.accdb)に接続しようとしていますが、 エラーが発生してしまい、接続できません。 エラーの内容は下記のとおりです。 実行時エラー '3343': データベースの形式 'XXX' を認識できません。 Access2000のデータベース(*.mdb)には普通に接続できています。 Accessのバージョンを問わずに接続したい場合、どうすればよいのでしょうか? 参考までに現在のコードを記載しておきます。 ※DAO3.6に参照設定してあります。 Imports dao Module modConnectDb Public Function DaoConnect(ByVal strDb As String) As Boolean 'strDb:データベースのファイルパス Dim Ws As dao.Workspace Dim DbE As dao.DBEngine Dim Db As dao.Database Dim strMsg As String Try DbE = New dao.DBEngine Ws = DbE.Workspaces(0) Db = Ws.OpenDatabase(strDb) Catch ex As Exception strMsg = "エラー番号 " & Str(Err.Number) & vbCrLf & _ Err.Source & " でエラーが発生しました。" & vbCrLf & Err.Description MsgBox(strMsg, vbExclamation, "エラー") End Try End Function End Module

  • VB6.0を使ってAccessに固定長インポートしたい

    いつもお世話になっております。 タイトルの通りなのですが・・・(^-^; 「Accessを開いて(開いた状態で)」というわけではなく、 VB上でTxtファイル(固定長)をAccessのテーブルにインポートしたいのです。 DAO、ADO等の指定は無いとするとどのようなやり方があるのでしょうか? ご教授いただきたいです。

  • VB6.0でACCESSのコマンドを実行するには?

    教えてください。よろしくお願いします。 VB6.0のプログラムからACCESSに文字データを渡し、それをキーにしてACCESSのテーブルから該当するデータをACCESSのテキストボックスに表示させたいのですが、検索・表示のプログラムはACCESSで記述ずみですので、VBからは引数を渡して、ACCESS側のVBAのプログラムを実行させたいのです。 その際、ACCESSの引数を渡すMDBが起動していなかったら、起動させて、上記の処理をさせたいのですが。 分かりづらい文章で申し訳ありませんが、どなたかアドバイスをお願い致します。

  • VB2005でACCESSの処理

    VB5.0でACCESS(DAOを利用)を使っています。VB.NETが発表された時早速購入挑戦しましたが、データベースへの接続がスムーズに移行できそうになくgive-upしました。.NETは Windowsのprofessinal版でしか利用できなっかたのですがVB2005ではかなりその制限がゆるんだようです。 Microsofthへ電話したりHPで調べましたが、よくわからなかったので質問です。 1..NET系ではデータベースがXML志向のようですが、これってシークエンシャルファイルで使いにくいように思えますが、うまくいくのでしょうか? 2.DAOはVB5.0 6.0感覚で使えるのでしょうか? 3.上記のようなことが学べるVB2005の導入のいいトレーニングコースを紹介してください。 よろしくお願いいたします。

  • VB2005を使ってACCESSのテーブルを別のデータベースにエクスポートさせるには?

    例えば、VB2005を使ってACCESSのA.mdbにあるテーブルをB.mdbにエクスポートさせるには、どのようなプログラムを書けば良いのでしょうか? ちなみに、ACCESSのテーブルをデータセットに取得して、別のテーブルに書き込むと言うようなものを書いて見ましたが、処理が非常に遅いので使えませんでした。

  • Access 2000 の VB での テーブル作成について質問です。

    下記のようにAccess 2000のVBからDAOを使ってテーブルを作っておりますが、 作るフィールドに規定値の設定もVBからできないのでしょうか?DAOだと無理なのでしょぅか? 教えてください Dim db As DAO.Database Dim tbdef As DAO.TableDef Dim flID As DAO.Field Set db = CurrentDb Set tbdef = db.CreateTableDef("テーブル") Set flID = tbdef.CreateField("ID", dbInteger)   tbdef.Fields.Append flID   db.TableDefs.Append tbdef db.Close: Set db = Nothing

  • AccessのVBにて、自動でODBC接続してリンクを自動で張るプログラムを作りたいのですが。。。

    AccessのVBで、自動でODBC接続(Oracle)してリンクを張るプログラムを作りたいのですが、参考になるようなサイトを教えて頂けないでしょうか? 良いサイトがなかなか見つからなくて。 ※リンクテーブルの個数が多いので、別ファイルか何かでテーブルを指定したいと思っています。