• ベストアンサー

VBでAccess97のシステムDSNを自動設定するには

少し困っています。 VBで作成するExeを起動して、Accessのmdbに接続するシステムDSNを自動設定する仕組みを作成したいのですが、これって出来るのでしょうか? 出来るとしたら、具体的にどのような仕組みで実現させるのかをお聞きしたいのですが・・・。 MSDBのユーザDSNの自動設定は出来るような感じだったので、AccessのシステムDSN設定も出来るかなと調べてみたのですが、よく分かりませんでした。 よろしくお願いします。 OS:WindowsXP Pro VB:VB6.0Sp5 DB:Access97

  • ekyu
  • お礼率62% (10/16)

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

  • ベストアンサー
  • bugmaru
  • ベストアンサー率38% (76/195)
回答No.1

ODBCのAPIのSQLConfigDataSource()を使うか、 RDO(RemoteDataObject)のrdoEnvironmentオブジェクトの rdoRegisterDataSourceメソッドを使えばDSNを動的に登録できます。 あと、ODBCのレジストリキーファイルを作っておいて読み込ませる方法も 手としてはありかと。

ekyu
質問者

お礼

お返事遅れてごめんなさいっ; 上手く解決できましたのでご報告アンドお礼です~。。 ありがとうございました。 処理としては、ODBCのAPI、SQLConfigDataSource()を使用しました。 環境的に(というか技術的にも)一番いいかなと思って。 解決の糸口をくださってありがとうございます。 助かりました~。

関連するQ&A

  • システムDSN or ファイルDSN

    アクセス2003 SQLServer2000 これまでmdbでSQLServerのテーブルにリンクをする時は、 あまり深く考えずにファイルDSNを使ってきました。 以前にシステムDSNの方がいいという話を聞いたことがあります。 いろいろ調べてみましたが、実用上の差がよく分かりません。 両者の実用上のメリットデメリットを教えていただけないでしょうか。 よろしくお願いいたします

  • ODBCを使用する場合のファイルDSNの設定

    環境 WindowsXP Pro Visual Studio.NET 2003 インストールしたもの MySQL(ver:4.1.11) MyODBC-3.51.11-1-win.exe ODBC .NET Data Provider(ver:1.0.4030.0) (MDAC(ver:2.8)はいつのまにか勝手に入ってました) 「コントロールパネル」→「管理ツール」→「データ ソース (ODBC)」から「ODBCデータソースアドミニストレータ」を起動して、ファイルDSNタブから追加で【MySQL ODBC 3.51 Driver】を選択し「適当な名前」を入れて、「適当な名前」.dsnがファイルDSNに作成されるのですが、ダブルクリックしてみると 「一般エラー:DSNファイルC:\~~~~.dsnが無効です。」となってしまいます。 ユーザーDSNとシステムDSNはちゃんと追加でき、「Connector/ODBC」も設定でき、Access2003、VB.NETからMySQLで作ったテーブルは読み取れました。 VB.NETのサーバーエクスプローラから接続の追加で、データリンクプロパティのプロバイダタブから「Microsoft OLE DB Provider for ODBC Drivers」 を選び、接続タブから「接続文字列を使用する」にチェックを付けビルドで開いたデータソースの選択欄にファイルDSNで作った.dsnは表示されますが、選択してもデータリンクエラー「ドライバへの接続中にエラーが発生したため、操作を実行できません。」となりやはりファイルdsnが使えません。 どうやってファイルDSNを設定したらいいのでしょうか?

  • VB, Access のシステム

    Access のデータベースを用いて VB でシステムを設計しています その後,exeファイルとアクセスファイルを3.5FDにコピーし exeを実行すると、下記のエラーが発生します Coundn't find installable ISAM どのように対応すれば良いのでしょうか?

  • DB2とWin2003-アクセスとの接続

    AS400-DB2をWin2003のアクセスで検索したいんです IBMのクライアントアクセスというものをインストールすれば接続はできるらしいんですが,設定がわかりません(クライアントアクセスのCDは会社にあるらしいです) で,実は既にAS400-DB2の内容を帳票にするソフトが動いているんで,それを参考にしたいんですが,その中で '*** ファイルDSNを使用する場合(ODBCの登録は不要) Cn.Open "FILEDSN=" & App.Path & "\Database\S101D27F.dsn;" でMDBと接続しているらしいんです 今回もODBCは使いません このDATABASEフォルダーには S101D27F.mdb があって,リンクテーブルが入っています この S101D27F.dsn ってどうやって手に入れるんでしょうか? dsn と mdb は同じ名前が条件みたいですが・・ 帳票ソフトを作った人がもう会社にいないので困っています 言語はVB6です わかる方お願いします

  • VBからAccessのマクロを動かしたい(最適化したい)

    開発環境=NT4SP4 VB5 Access97 VBからMDBファイルを最適化するプログラムを作成しているのですが、 現在わかっているやり方は 最適化したファイルを作る→最適化元ファイルを削除→最適化後ファイルのファイル名を元ファイル名に直す。 という手順を踏んでいるのです。 これをAccessのマクロならば上記の手順のようにファイル削除したりしなくても 最適化が行えるそうなのです。 そこでVBからAccessのマクロを実行する方法がわからなくて困っているのです。 よろしくお願いいたします。

  • VB6.0のシステムは何に移行するのが良いですか?

    WinXPの環境で、VB6.0で作成したシステムがあります。(DBはACCESSです。) 現状、Win7では動作しているのですが、今後の事を考えると今のうちに作り直した方が良いと思っています。 そこで、質問させていただきたいのですが、 どのような言語で作り直すのが良いと思われますか? 一般的にはどうしているのでしょう。 システム自体は、ごく小規模なもので、複数のPCで受注の処理を行うようなものです。 開発用ソフトにあまり費用をかけなくて済むもの VB6とACCESSの経験しかなくてもなんとかなりそうなもの など、 教えていただけると助かります。 よろしくお願いいたします。

  • ThinAppでのACCESS97

    こんにちは、 VmwareのThinApp(バージョン5)について教えてください。 現在、ThinAppを利用して Access97をパッケージングしようとしております。 パッケージング環境は WindowsXP Pro SP3です。 パッケージングを完了し、そのexeファイルを 他のXP端末で実行すると問題なく動くのですが Windows7Proで実行すると以下の現象が起きます。 ・WindowsXPで作成していたMDBのテーブル・フォーム・レポート等すべて表示できない(デザインビューでも) ・新規でフォーム・テーブル・レポートは作成できる ・Windows7で作成したフォーム等はWindowsXP側では表示できない(デザインビューでも) 要するに、別OSで作成されたフォームやテーブルは表示できない、という具合です。 MDBを作成しているのはどちらもパッケージしたACCESS97です。 ThinAppでのACCESS97事例は多いと思っていたのですが 解決策が見つかりません。 どなたか、教えていただけますか。

  • VBでAccessの最適化

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

  • データベースアクセスで。

    VBとAccessを使用してデータのやりとりを行っています。 Data1を貼り、DatabaseNameを設定するところまではうまくいきましたが、RecordSourceプロパティをクリックすると「データベースの形式'C:\xxx\xxx.mdb'を認識できません」と表示されてしまいます。 別DBを設定すると上記の現象がでないので、Accessが原因だとは思いますが、VBを使用する際の注意点などあるのでしょうか? 【環境】WinXP SP2 VB6.0 / Access2000です。

  • システムの統合について(Access2000)

    ABCという大元となっているOracleDB(ODBC接続している。) このDBからデータ抽出や確認を行うためのシステムZZZ.mdb(Access2000で作成したツール) ZZZ.mdbに登録されているマスタは、販売店マスタ・商品マスタがあります。 似たようなシステムでZZZaa.mdb、ZZZxx.mdbというシステムがあり、 統一したいと考えています。 (似たようなとしているのは、販売店マスタは共通だが商品マスタに違いがある為。) システム(ツール)でやっていることは、 ある一定期間ごとの商品の在庫等のデータをABCというDBから抽出してきて Excelに出力して確認できるようにしています。 今、問題となっているのは商品マスタに登録されているデータが異なるため、 DBから抽出する時の条件が異なるということです。(1つのシステムに付き条件は複数あり複雑) この為、システムを分けている(1つのシステムで完結出来ない。)と考えるのが一般的でしょうか? もし、良い方法がある方がいたらその方法もご教示下さい。