• ベストアンサー

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

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

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

  • ベストアンサー
noname#22222
noname#22222
回答No.2

s_husky です。 ×Set appAccess = Nothing ○Set acApp = Nothing VBでは、Microsoft Access XX.X Objext Library への参照設定を! ※VB6.0 SP6 + Access 2003 で検証済みです。

その他の回答 (1)

noname#22222
noname#22222
回答No.1

ここでは、Access.mdbが起動していない場合の例を示します。 <Access側の設定> Public Sub UpdateForm1(ByVal frmName As String, _                 ByVal txtName As String, _                 ByVal strValue As String)   DoCmd.OpenForm frmName   Forms(frmName).Controls(txtName).Value = strValue   DoCmd.Close acForm, frmName End Sub ※指定のフォームをオープンし、指定のテキストボックスに指定された値を代入した後にフォームを閉じます。 <VB側のコード> Private Sub Command1_Click() On Error Resume Next   Dim acApp   As Access.Application   Dim strDBPath As String   Const DB_PATH As String = "D:\Temp\Test.mdb"   Set acApp = New Access.Application   With acApp     .OpenCurrentDatabase DB_PATH     .Run "UpdateForm1", "form1", "data", "XXX"   End With   acApp.Quit   Set appAccess = Nothing End Sub ※これで、Form1.data に連結しているテーブルの値は "XXX"に更新されます。 ※これをヒントに応用して下さい。

関連するQ&A

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

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

  • VBからのACCESSの起動に関して

    開発環境:Visual Basic 2008/ACCESS 2000 VB2008よりACCESSを更新したり、ACCESSのレポートを使用したりする プログラムを作成しています。 その際に、1つのACCESSに複数のレポートを作成している事から、複数のプログラム からACCESSを起動させようとするとエラーとなってしまいます。 ACCESSをそれぞれ分けてしまえば問題ないですが、、、、 そもそも1つのACCESSファイルを複数からアクセス(複数のVBプログラム)するという事が 不可能なのでしょうか? あるいは、下記の記述にあるように、データベースを開こうとするかエラーである為、 開いているか確認の記述をし、既に開いているようだったら、その処理をとばすような事 をすれば問題ないのでしょうか??? 教えて頂きたいと思います。 よろしくお願いします。 《記述内容》 Dim ac As Object ac = CreateObject("Access.Application") With ac 'アプリケーションを表示する ac.Visible = True 'データベースを開く ac.OpenCurrentDatabase("C:\sample.mdb") '名前を指定してレポートを開く ac.DoCmd.OpenReport("R_一覧表", 2) 'acViewPreview 'レポートの最大化 .DoCmd.Maximize() 'オブジェクトの解放 System.Runtime.InteropServices.Marshal.ReleaseComObject(ac) End With ac = Nothing

  • 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のメリットって何かありますでしょうか?ちなみに業務で使うためのものなので、家からアクセスして何かするというのは考えていません。あくまで社内で使う時にメリットはあるでしょうか?

  • VBからACCESSのマクロを起動できますか?

    VB6でACCESSのテーブルを参照しています。 そのMDBの中にあるマクロをVB側から起動できないでしょうか? 教えてください。 宜しくお願いいたします。

  • vb6のコンボボックスの操作について

    おはようございます。 vb6+MDBの環境下で、コンボボックスについて質問です。 マスタとなるテーブルA(都道府県など)と、一般的(?)なデータを日々貯めていくテーブルBがあり、 Bに、Aのキーとなる値が保存されています。 テーブルデータBの表示・更新画面を作っているのですが、 テーブルAの内容を画面上のコンボボックスに選択項目としてADDして表示するところまでは出来たのですが、以下のことを実現するには、コンボボックスにどういう記述で実現するのかわかりません。 1.テーブルBに持っているAの都道府県コードに該当する項目を、Bのデータ選択時に表示したい。 【テーブルA】 Aのキーコード,都道府県名 【テーブルB】 Bのキーコード,Aのキーコード,住所… このような場合、イベント時にコンボボックスをどのように処理するようにソースを書けば実現できますか?

  • VBでAccessの最適化

    VB6+Access2003でプログラムを作成しています。 Accessの最適化の方法について教えてください。 AccessのオプションにDBを閉じるときに最適化するというのがありますが そちらで最適化されるようにしておくほうがよいののでしょうか? VBで最適化するようにプログラミングしたほうがよいのでしょうか? (プログラム内で何度もAccessをOpen/Closeしています)

  • VBからMDBのアクセス

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

  • ACCESS と VB でこんなプログラムを作ろうとしています。どうやれば・・

    今、VB と ACCESS を 使って簡単なプログラムを作ろうとしています。 ACCESSの中にはテーブルが1つだけあります。 そのテーブルの中のデータをVB上の DATAGRIDに単純に表示します。 ここまではできました。 GRIDへの表示は一度ワークテーブルに入れて そこから表示するのではなくて、 直接そのテーブルから表示しています。 今、そのテーブルの項目にPATHとファイル名 が入っていて、そのPATHにファイルがなかったら GRIDに× あれば ○を表示したいのです。 一度ワークテーブルに入れているのであれば、 あとで、そのワークテーブルを開いて、 ループさせて、DIR でひとつひとつ調べて 更新すればよさそうなのですが、 あくまで直接開きたいのです。 または、一時的なワーク (SQLServer上の##~~~みたいな感じの EXEを閉じたら勝手に消えるようなイメージのテーブル) をACCESSで実現できるならそれでもよいです。 こういう場合、どうやったら ○ と× を表示することができるのでしょう? 困っています。助けてください。 よろしくお願いします。 環境 VB6 SP5 ACCESS2000 Windows2000 SP3

  • VBとACCESSを接続したい

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

  • VBの質問です

    VB6を使って開発をしています。 AとB2つのMDBがあってAの全テーブルのデータをBの全テーブルにデータをコピーしたいのですがプログラムでどうやるのかがわかりません。 どなたかわかるかた私に教えてください。お願いします。

専門家に質問してみよう