none
データベースの接続が出来ません RRS feed

  • 質問

  • 初めての投稿です。

    先日VB2005Express、VC#2005Expressをダウンロードして勉強を始めた初心者です。

    参考書を見ながら進めてきましたが、データベースの接続でつまずいています。

     

    データベースはAccess形式のmdbなのですが、[接続の追加]のダイアログボックスからデータソースの変更をすることが出来ません。

     

    データソース欄に[Microsoft SQL Server データベース ファイル (SqlClient)]が表示されていたので、[変更]ボタンを押して[データソースの変更]のダイアログボックスから[Microsoft Accessデータベース]を選択して[OK]ボタンを押すと、デザインが違う[接続の追加]のダイアログボックス(ConnectionStringを指定するようなダイアログボックス)が表示され、そのまま[OK]ボタンを押すと "初期化文字列の形式が使用に適合しません。index 0 で始まってます。" というメッセージボックスが表示されてしまいます。

     

    尚、上記現象はVB2005Express、VC#2005Express共に発生します。

     

    色々と調べたのですが解決方法が見つからず投稿させて頂きました。

    初心者なのでご教授宜しくお願いします。

     

     

     

    2007年6月18日 5:28

回答

  • takabou さん、こんにちは。

     takabou さんからの引用
    trapemiya様ご回答頂きありがとうございます。 初心者なのでコードを具体的にどのように記述したらいいのかわかりません。何か参考になる資料が有りましたら教えて頂けませんか?

    MSDN ライブラリの ConnectionString プロパティあたりに実際のコード例 (ConnectionString) の記載があります。
    takabou さんの場合は、OleDbConnection.ConnectionString プロパティをご覧になると良いでしょう。
    2007年6月18日 10:05
  • ごめんなさい、ごめんなさい。mdbは大丈夫なようです。う~ん、思い違いでした。

    投稿前には確認しないとダメですね。Orz

     

    DBの接続方法について
      http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=739921&SiteID=7

     

    データ接続で使えるプロパイダについて
      http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=566979&SiteID=7

     

    接続については以下が参考になりませんでしょうか?

     

    第2回 データベースを見る、いじる
      http://homepage1.nifty.com/rucio/main/VBdotNet/Database/Database2.htm

    2007年6月18日 12:11
    モデレータ
  • うちのマシンもある一台がまったく同じ症状が出たのですが,
    以下の方法で解決できました。

     

    ファイル名を指定して実行 で,出てくる ファイル名を指定して実行ダイアログ で,
    名前 のところに regedit と入力して OK クリックで,レジストリエディタ を起動します。

    で,
    \HKEY_CLASSES_ROOT\CLSID\
    ハイブ下で,
    {F9AE8980-7E52-11d0-8964-00C04FD611D7}

    を検索してください。
    要するに,

    HKEY_CLASSES_ROOT\CLSID\{F9AE8980-7E52-11d0-8964-00C04FD611D7}

    を探してください。

    (間違わないように注意してください。
    以下の VersionIndependentProgID の値が,MSIDXS になっていれば合ってるでしょう。)

    で,キーが

     

    ・ ExtendedErrors
    ・ InprocServer32

    ・ OLE DB Provider
    ・ VersionIndependentProgID

     

    となっているんじゃないかと思います。

     

    本当は,

     

    ・ ExtendedErrors
    ・ InprocServer32

    ・ OLE DB Provider

    ProgID
    ・ VersionIndependentProgID

     

    のように ProgID キーが存在していないといけません。

    なので,

    {F9AE8980-7E52-11d0-8964-00C04FD611D7}

     

    のところを右クリックして,新規 -> キー で,新しい キー を追加します。

     

    新しいキー #1

     

    となっていると思うので,それを

     

    ProgID

     

    にします。
    (確定しまっていたら,そこを 右クリック -> 名前の変更)

     

    で,ProgID を選択した状態して,右のペインで,

    (既定) のところを右クリック,修正 で,文字列の編集ダイアログ が出ます。

    値のデータ のところに

     

    MSIDXS.1

     

    と入力して,OK。

    で,おもむろにレジストリエディタを閉じて... Good Luck!!

     

    cf.

    Add connection wizard fails with Access database (3ページ目)

    Visual Studio Professional Data Team 方のアドバイスのところ

     

    problem with data source configuration wizard (2ページ目) のも同じ。

     

     

    # リンク先のスレで出てくるように レジストリクリーナ というと,
    # ベータ版のころの
    http://onecare.live.com/site/ja-jp/default.htm を

    # 問題のPCで使ったことがあるんですよね。

    # そのせいのような気がしないでもないですね。

    2007年12月23日 18:09

すべての返信

  • Express Editionでは残念ながらできません。コードを記述してプログラムから接続することは可能です。
    2007年6月18日 5:59
    モデレータ
  • trapemiya様

    ご回答頂きありがとうございます。

     

    初心者なのでコードを具体的にどのように記述したらいいのかわかりません。

    何か参考になる資料が有りましたら教えて頂けませんか?

     

    あと初歩的な質問ですが、

    Express版では、データソース構成ウィザードからのデータベース接続は、

    一切出来ないとの理解でよろしいのでしょうか?

     

    [データソース変更]のダイアログボックスまで表示されて

    データソースの一覧に[Accessデータベース][SQL Serverデータベース]が選択可になっているのに

    何か理不尽な気がしてなりません。

     

    何か愚痴になってしまいましたね。申し訳ありません。

     

    上記質問の件、宜しくお願いします。

    2007年6月18日 7:52
  • takabou さん、こんにちは。

     takabou さんからの引用
    trapemiya様ご回答頂きありがとうございます。 初心者なのでコードを具体的にどのように記述したらいいのかわかりません。何か参考になる資料が有りましたら教えて頂けませんか?

    MSDN ライブラリの ConnectionString プロパティあたりに実際のコード例 (ConnectionString) の記載があります。
    takabou さんの場合は、OleDbConnection.ConnectionString プロパティをご覧になると良いでしょう。
    2007年6月18日 10:05
  • ごめんなさい、ごめんなさい。mdbは大丈夫なようです。う~ん、思い違いでした。

    投稿前には確認しないとダメですね。Orz

     

    DBの接続方法について
      http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=739921&SiteID=7

     

    データ接続で使えるプロパイダについて
      http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=566979&SiteID=7

     

    接続については以下が参考になりませんでしょうか?

     

    第2回 データベースを見る、いじる
      http://homepage1.nifty.com/rucio/main/VBdotNet/Database/Database2.htm

    2007年6月18日 12:11
    モデレータ
  • trapemiya様

    じゃんぬねっと様

    ご回答ありがとうございます。

     

    じゃんぬねっと様からの参考資料はまだ試していないのですが

    trapemiya様からの参考資料に関してご報告いたします。

     

    残念ながら出来ませんでした…

     

    実は私が最初に質問した内容は「第2回 データベースを見る、いじる」の中の途中の段階で

    違うダイアログボックスが表示されてしまい先に進めなくなってしまうからなんです。

     

    資料の中の画像番号で説明すると

     

    ■画像3:データソースの選択(VB2005 Express Edition) での選択は出来るので選んで続行ボタンを押す。

    ■画像4:mdbへの接続情報の指定(VB2005 Express Edition) この段階で違うダイアログボックスが

     表示されてしまう。

     

    この違うダイアログボックス内には ConnectionString を指定するような入力欄があり

    何を入れればいいのか分からなく、そのままOKボタンを押すと

    "初期化文字列の形式が使用に適合しません。index 0 で始まってます。" のメッセージボックスが表示されてしまいます。

    適当に文字を入力しても同じメッセージボックスが表示されてしまい

    結局、Accessデータベースが選択出来ない状態で先に進めません。

     

    違うダイヤログボックスが表示されてしまう原因をご存知の方がいらっしゃいましたら

    情報のご提供を宜しくお願いします。 

    2007年6月19日 6:41
  • うちのマシンもある一台がまったく同じ症状が出たのですが,
    以下の方法で解決できました。

     

    ファイル名を指定して実行 で,出てくる ファイル名を指定して実行ダイアログ で,
    名前 のところに regedit と入力して OK クリックで,レジストリエディタ を起動します。

    で,
    \HKEY_CLASSES_ROOT\CLSID\
    ハイブ下で,
    {F9AE8980-7E52-11d0-8964-00C04FD611D7}

    を検索してください。
    要するに,

    HKEY_CLASSES_ROOT\CLSID\{F9AE8980-7E52-11d0-8964-00C04FD611D7}

    を探してください。

    (間違わないように注意してください。
    以下の VersionIndependentProgID の値が,MSIDXS になっていれば合ってるでしょう。)

    で,キーが

     

    ・ ExtendedErrors
    ・ InprocServer32

    ・ OLE DB Provider
    ・ VersionIndependentProgID

     

    となっているんじゃないかと思います。

     

    本当は,

     

    ・ ExtendedErrors
    ・ InprocServer32

    ・ OLE DB Provider

    ProgID
    ・ VersionIndependentProgID

     

    のように ProgID キーが存在していないといけません。

    なので,

    {F9AE8980-7E52-11d0-8964-00C04FD611D7}

     

    のところを右クリックして,新規 -> キー で,新しい キー を追加します。

     

    新しいキー #1

     

    となっていると思うので,それを

     

    ProgID

     

    にします。
    (確定しまっていたら,そこを 右クリック -> 名前の変更)

     

    で,ProgID を選択した状態して,右のペインで,

    (既定) のところを右クリック,修正 で,文字列の編集ダイアログ が出ます。

    値のデータ のところに

     

    MSIDXS.1

     

    と入力して,OK。

    で,おもむろにレジストリエディタを閉じて... Good Luck!!

     

    cf.

    Add connection wizard fails with Access database (3ページ目)

    Visual Studio Professional Data Team 方のアドバイスのところ

     

    problem with data source configuration wizard (2ページ目) のも同じ。

     

     

    # リンク先のスレで出てくるように レジストリクリーナ というと,
    # ベータ版のころの
    http://onecare.live.com/site/ja-jp/default.htm を

    # 問題のPCで使ったことがあるんですよね。

    # そのせいのような気がしないでもないですね。

    2007年12月23日 18:09
  • BindingSourceを使い始めて原因不明だった件が、稍丼さんの投稿のおかげで解決しました。

    私のPCも将に、レジストリに ProgIDが存在していませんでした。

     

    私は、これの原因が分からず、以下の方法で接続していました。

    1.データソース構成ウィザード→新しい接続
    2.データソースの変更→Microsoft ODBC データ ソース
    3.接続の追加:ユーザー名またはシステム データ ソース名を使用→MS Access Database→OKを押すとフォルダーが開くので、DBを指定。

    感謝

     

    2008年1月1日 18:14
  • こんにちは。中川俊輔 です。

     

    trapemiyaさん、じゃんぬねっとさん、大変参考になる回答ありがとうございます。

     

    稍丼さん、問題解決方法を回答して頂き、ありがとうございます。

     

    takabouさんへ

    問題解決に有効な回答のようでしたので、

    trapemiyaさん、じゃんぬねっとさん、稍丼さんの回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    問題解決につながる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

     

    takabouさんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

     

    2008年1月11日 7:58