• ベストアンサー

VB6 SQLサーバー 2005 

お世話になります。 今まではVB6 + SQLサーバー 2000 に ADO を用いて接続できたいたのですが、 今回 DBをSQL サーバー 2005 Express Edition に替えたところ上手く接続 できません。 「実行時エラー 2147467259  データーソース名および指定されたドライバが見つかりません。」 とエラー表示されます。  

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

  • ベストアンサー
回答No.3

No.2の回答は、ODBC接続を用いたときの設定なので、接続文字列が 「Provider=SQLOLEDB;~」(SQLServerネイティブの-ADOドライバ使用) であるなら設定は不要のはずです。 とりあえず、実際の接続文字を見ないとなんともいえないのですが、 個人的には、No1のリンク先にある。 「DataSourceは「サーバ名¥SQLEXPRESS」になっていますか? 」 あたりがいちばん怪しいと思います。

ShiroNeko
質問者

補足

temtecomai2,BellBell,khazad-lefty 様 お返事が遅くなりすみませんでした。アドバイスを頂いてから 色々と調査し何とかせつぞくできるようになりました。 (1).SQL Native Client をインストール (2).SQL Server 2005 Surface Area Configuration にてローカル接続及びリモート接続の   tcp/ip 接続を選択 (3).SQL Server Configuration Manager - SQLEXPRESSのプロトコル - tcp/ip を有効にする (4).VB側の接続文字    Dim con As New ADODB.Connection    con.ConnectionString = "Provider = SQLNCLI;" _   & "Server=サーバー名;" _   & "Database=データーベース名;" _   & "User ID=sa;" _   & "Password=パスワード" '   con.Open まだ良く理解できていませんが、こんな手順をおこなってみました。 貴重な時間を頂ありがとうざいます。

その他の回答 (2)

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

想像するに、システムDSNを登録していないか、ファイルDSNを作り直していないのでは? (個人的に、ユーザDSNは上級の運用者用と判断しているため、一般向けシステム等では考慮に入れない前提) こう書くと、DSNって何?って追加の質問が返ってきそうな気がしなくもないので、設定画面呼び出し方法を下記に補足。 エクスプローラを起動して、マイコンピュータ-コントロールパネル-管理ツール-データソース(ODBC)をダブルクリックです。 OSによっては、表記や場所が違うかも知れませんが。

回答No.1

であれば接続文字列をどのように記述しているのかを提示していただかないと。。。 ここら辺は参考になりますか? http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34197&forum=36&7

関連するQ&A

  • VBでSQLサーバーへ接続できない

    WVD2008ではSQLサーバーへ接続できて、データも表示できるのに、 VB2008からは最初の設定画面がわかりません。 添付の図は 右:WVD 左:VB です。 WVDは データソース:Microsoft SQL Server (SqlClient) サーバー名:○○○\SQLEXPRESS データベース名:master と入力しテスト接続すると「成功」します。 しかしVBは データソース:Microsoft SQL Server Compact 3.5 データベースファイル名:○○○\SQLEXPRESS もしくは データソース:Microsoft SQL Server データベース ファイル (SqlClient) データベース:○○○\SQLEXPRESS と入力しテスト接続すると「見つかりません」となります。 アクセスへなら データソース:Microsoft Access データベース ファイル (OLE DB) データベースファイル名:C:\\Desktop\Documents\○○○.mdb として接続できます。 接続できないというよりもVBにおいてのSQLサーバーへの設定方法がわかりません。 VBにて サーバー名:○○○\SQLEXPRESS データベース名:master へ接続したい場合はどうすればいいでしょうか? ご教授よろしくお願い致します。

  • VB2008 SQL Server2005 連携

    Win Xp HEで VB2008 Express Edition と Sql Server 2005 EDで データベース プログラムの練習をしています。  vb2008で新しいプロジェクトを作成し プロジェクト メニュから ローカルデータベースを選択すると「ローカル データファイルの 接続に 必要な データ プロバイダが見つかりません。 ファイルはプロジェクトに追加されますが ファイルに関連付けられた データ セットは 生成されません。」という メッセージがでます。 本来なら ここで データソース構成ウィザードが表示され空の データセットが作成されるはずなのですが 空のデータセットが できないまま終了してしまいます。 どなたか 対処法が わかる方 教えてください。 VB2008EDも SQL SERVER 2008も正常に インストールされて いると思います。設定の 問題だと おもうのですが・・・・

  • SQLサーバー接続について

    DB初心者です。 ODBCからSQLサーバーへのアクセスを設定したく、奮闘しておりますが うまくいかず困っております。 先方から支給されたのは、 DB名、ID、パスワード、ホスト名、ポート番号、MySQLのバージョン5.0.90で、 その通り設定したつもりが、以下のようなエラーが出てソース作成できません。 --- 接続できませんでした。: SQLState: '01000' SQL Server エラー: 11001 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen(Connect()). 接続できませんでした。: SQLState: '08001' SQL Server エラー: 6 [Microsoft][ODBC SQL Server Driver][TCP/IPSockets]指定された SQL Server が見つかりません。 --- エラー番号で検索してみても原因がわからず・・・ 詳しい方いらっしゃいましたらお願いいたしますm(__)m

  • vb.netでSQL serverの接続を行うコーディング

    vb.net (vb 2005)でSQL serverの接続を行うコーディングがよくわかりません。 ADO,もしくはDAOを使うところまでわかったのですが、具体的なコーディングがわかりませんでした。 VBの教本とかではSQL serverではなくAccesへの接続だったので、どうコーディングしてよいか混乱しています。 (ADOの場合とDAOの場合の違い)

  • VBでSQL Serverに接続したいのですが

    お世話になります。大変困っているので助けてください。 VB 2008EXPRESS EditionとSQL Server EXPRESS Edition(共に無償)をネットからダウンロードしてインストールしました。 VBからSQL Serverに接続したく以下のようなコードを記述しました。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' 接続文字列を生成する Dim stConnectionString As String = String.Empty stConnectionString = "Server=ABSAN\SQLEXPRESS;Initial Catalog=ABSAN;Integrated Security = SSPI;" ' SqlConnection の新しいインスタンスを生成する (接続文字列を指定) Dim cSqlConnection As New System.Data.SqlClient.SqlConnection(stConnectionString) ' データベース接続を開く cSqlConnection.Open() ' 接続に成功した旨を表示する MessageBox.Show("Microsoft SQL Server に接続されました") ' データベース接続を閉じる (正しくは オブジェクトの破棄を保証する を参照) cSqlConnection.Close() cSqlConnection.Dispose() End Sub 結果として、「SqlEXceptionはハンドルされませんでした」旨のメッセージが帰ってきます。 但し、自分でもData SourceとInitial Catalogの設定のところがこれでいいのかと思っています。 何らかの形で正しい設定をしたいのですが、サーバのインストール時にこのような設定があったように記憶がありません。 また他にも原因があるようでしたら教えてください。 全然わかってないのですが、アクセスするDBファイルはまだ存在しません。 上記コードではとりあえずローカルのサーバに接続するという概念で受け取っていますが、間違っていますでしょうか? 何分急いで下ります。よろしくお願いいたします。

  • SQL Server時間切れについて

    初めまして。SQL初心者です。 あるシステムにおいて、SQLサーバが無応答?になり、システムがダウンしてしまい、困っています。 Windows2000Server、SQL Server2000、VB6を用いてDBに定期的にRead&Write、及び各種のデータ表示を行っています。 ADOを使用して、接続や各コマンドを実行しているのですが、ごくたまに以下のエラーが出てしまいます。 Code:-2147217871,Description:時間切れになりました。Source:Microsoft OLE DB Provider for SQL Server,SQL State:HYT00,NativeError:0 過去ログや他サイトを調べた結果、コネクションのCommandTimeoutの秒数を延長させる、とあったので60秒に変更しました。 が、不定期(大体1週間~10日前後で夜中や朝方などにもあり)にこのエラーが出てしまい、約1時間~1時間半もダウンしています(この間のエラーをOn Errorではじいてログファイルに保存しています)。 毎分必ず実行しているストアド(20装置分のデータをUPDATEするので1分に20回実行する)があるのですが、必ずと言っていいほどこのストアド実行中に落ちています。 このストアドに5~6個のパラメータを渡し、複数のテーブルに対してUPDATE処理を行っています。 正常に動作している時は、数日間全く問題無いので、ストアドやVBのコードに間違いは無いと思います。 そこで、SQL Serverの設定等を見直したところ、1つ気になったところが。データベースファイル \Microsoft SQL Server\MSSQL\Data\aaa.MDF のサイズが14Gになっていました・・・。 このファイルにアクセスする時にSQL Serverで高負荷になってしまい、無応答のような状態になってしまうのでは?と思っていますがどうでしょう? 不定期に発生し、かつ再現性が無く、原因が掴めずに本当に困っています。 先輩方、何でも良いのでアドバイスをお願い致します。

  • クライアントからVB2005 .netアプリでSQL Serverに接続できない

    プログラムの配布で困っています。 ■環境 【開発環境兼サーバー】 ・WindowsXP Professinal SP2 ・SQL Server 2005 Express ・Visual Basic 2005 Express ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 【クライアントA】 ・WindowsXP Professinal SP2 ・SQL Server 2005 Express ・Visual Basic 2005 Express ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 【クライアントB】 ・WindowsXP Home SP2 ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 上記環境でプログラムを作成し、VBの 発行ウィザードで 配布プログラムを作成し、クライアントで実行してみました。 .netも無事インストールされ、プログラムを起動すると、 .net Frameworkから 「System.Data.SqlClient.SqlException: SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: SQL ネットワーク インターフェイス, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました)」 とでて起動できません。 開発環境兼サーバーではもちろんローカルのSQL Serverに接続できます。 クライアントAから開発環境兼サーバーへも接続できます。 クライアントBから開発環境兼サーバーへは接続できません。 ちなみに、クライアントBからODBCに設定もエラーで出来ませんでした。 データベースにはADO.netで使用してます。 いろいろとネットで検索して調べてみましたが、解決には 至りませんでした。 クライアントに何か足りないものがあるのでしょうか。 長くなりましたが、どうぞよろしくおねがいします。

  • SQL Server 2008 の接続

    VB 2010 Express Edition とデータベース Microsoft SQL Server 2008 Expressの 接続につきまして。 開発初心者です。 Visual Basic 2010 ExpressのデータソースでMicrosoft SQL Server 2008 Expressのデータベースを 選択したいのですが、データベースを選択すると「このファイルを開くアクセス許可がありません」 と表示され、選択することができません。 下記のサイトを参考にやってみたのですが、接続できませんでした。 http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/a3d490b6-1ea8-4a45-9ae5-114c58a06a7d/ 何が原因なのでしょうか?

  • SQL Server + VB の開発において

    こんにちは。 SQL Server + VB で開発をしているのですが、下記のソースの ★の部分でエラーが発生するのですが、回避策がわからなくて 困っています。(T T) 'udlパス名 strPath = パス 'コネクション 設定 objCnn.ConnectionString = strPath objCnn.Open 'トランザクション開始 objCnn.BeginTrans 'SQL作成(列名分 データを設定) strSql = "Insert Into User.TableName Values ('2004','02','18')" 'SQL実行★ objCnn.Execute strSql 'エラー判定 If objCnn.Errors.Count > 0 Then objCnn.RollbackTrans Else objCnn.CommitTrans End If エラーNo.:-2147467259 エラーメッセージ:手動または分散トランザクション モードのため、新規接続を作成できません。 別のアプリでSQLは実行できたので、SQLの文法エラーというのは考えにくいので、VBでの操作の仕方が 問題だとは思うのですが、分かる方お願いいたします。m(_ _)m

  • Accessでsql serverにつなげています

    Accessでsql serverにつなげています。 VBAのado接続はOLEDB接続です。 フォームのデータソースに Recordsetでadoのrecordsetの結果を貼り付けようとすると、 Sqlコードがacceessとは違うため、貼り付けできません。 Sqlは検索条件が都度違うため、 パススルークエリのオブジェクトを削除して作り直す、方法はやめたい。 何かよい案はありませでしょうか? ちなみにデータは何百万件という量です。

専門家に質問してみよう