他のPCのSQLサーバーに接続する方法は?

このQ&Aのポイント
  • 2台のPCがLANに繋がれており、同じワークグループです。PC1をサーバーとして、PC2からPC1のSQLサーバーに接続したいです。具体的な接続方法を教えてください。
  • PC1はDim cn As New ADODB.Connection cn.Open 'Provider=SQLOLEDB; Data Source=○○○○\SQLEXPRESS; Initial Catalog=サーバー名; Integrated Security=SSPI'と言うように接続しています。
  • PC2からも同じようなコードを書いたのですが、エラーが発生してしまいました。おそらく、'cn.Open 'Provider=SQLOLEDB; Data Source=○○○○\SQLEXPRESS;'の部分に問題があると思われます。どのようにすればPC2からPC1のSQLサーバーに接続できるでしょうか?
回答を見る
  • ベストアンサー

他のPCのSQLサーバーに接続したい

2台のPCはLANに繋がれていて、同じワークグループです。 PC1をサーバーとして PC2からPC1のSQLサーバーへ接続したいのですが どうすればいいのでしょうか? (エクセル→SQLサーバーです。) PC1は Dim cn As New ADODB.Connection cn.Open "Provider=SQLOLEDB;Data Source=○○○○\SQLEXPRESS; " & _ "Initial Catalog=" & サーバー名 & ";" & _ "Integrated Security=SSPI" rs.Open "Tテーブル", cn, adOpenStatic, adLockOptimistic と言うように接続しています。 PC2から同じようにコードを書いてみましたがやはりエラーになってしまいました。 多分、 「cn.Open "Provider=SQLOLEDB;Data Source=○○○○\SQLEXPRESS;」 の部分だと思うのですが どうすればPC2からPC1のSQLサーバーへ接続することができるのでしょうか? どちらも環境は OS:2000、オフィス:2003、 PC1のみSQLサーバー2005がインストールされています。 IPアドレスは固定です。 ご教授よろしくお願い致します。

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

どこまで設定ができていて、どんなエラーが出ている状態なのか分からないのですが、SQL Server 2005 Expressはデフォルトではリモート接続は許可されていないため、リンクを参考に設定をチェックしてみてください。 なお、現在はWindows認証での接続のようですが、ドメイン環境でないなら、SQL Server認証に変更した方がよいのではと思います。 (PC1、PC2両方にユーザ名・パスワードの同一なユーザを作れば行けたかもしれませんが)

参考URL:
http://support.microsoft.com/kb/914277/ja
thuurhurhu
質問者

お礼

ありがとうございます。 早速、読んだのですが 「その環境で有効にするプロトコルをクリック」の部分で どこを選べばよいかわからなかったので 勉強してみます。

関連するQ&A

  • エクセルからSQLサーバー 時間切れになるようになった

    cn.Open "Provider=SQLOLEDB;Data Source=NASTUN-PC\SQLEXPRESS; " & _ "Initial Catalog=" & サーバー名 & ";" & _ "Integrated Security=SSPI" cn.Execute "UPDATE Tbl SET チェック = 0" エクセルからSQLサーバーへ更新クエリを実行しています。 今までこのコードで問題なく作業できていたのですが 昨日から エラーNo:-2147217871 「時間切れになりました。」 というエラーになります。 cn.CommandTimeout = 120 と長くしても同じです。 何もいじってないのにできなくなるなんてあるのでしょうか? SQLサーバーにはテーブルのみおいています。 よろしくお願いします。

  • SQL Serverへの接続について

    すみませんが、どなたか教えてください。 Access2000のプロジェクトからADOを使って、OLE-DB経由でSQL Serverに接続しようとしています。 SQLステートメントを指定して、レコードセットを作成したいのですが、 以下のSQL分のテーブル名のSYARMに対して、オブジェクト名SYARMは無効ですというメッセージが出てきます。どこが問題になっているのでしょうか? Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.Open "Provider=SQLOLEDB;" & "datasource=(local);" & "Integrated Security=SSPI;" rs.Open "SELECT * FROM SYARM WHERE KANNO=12345;", cn, adOpenKeyset, adLockOptimistic rs.Close cn.Close Set rs = Nothing Set cn = Nothing

  • ADO 「NEW」の意味、必要性

    ADOを使ってACCESSやSQLサーバーへ接続する時に Option Explicit Sub ADO() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.Open "Provider=SQLOLEDB;Data Source=○○○\SQLEXPRESS;Initial Catalog=test;Integrated Security=SSPI" rs.Open "table1", cn, adOpenStatic, adLockOptimistic というようなコードを書きますが、 変数の宣言の「 New 」はどういう意味なのでしょうか? 何のためにつけるのでしょうか? あえて「 New 」を取ると、 「オブジェクト変数または With ブロック変数が設定されていません。」 というエラーになります。 普通の変数(Dim table名 As String)に 「 New 」を付けるとコンパイルエラーになります。 違いがわかりません。 よろしくお願いします。

  • 家庭内LANにて 他のPCのSQLサーバーへ接続したい

    同一のワークグループに ・vista(SQLサーバーインストール、データーベース作成済み) ・XP があります。 vba(ADO)を使って XPからvistaのSQLサーバーへ接続したいのですがうまくいきません。 vistaでの設定は セキュリティ構成→リモート接続→ローカル接続及びリモート接続→TCP/IPのみを使用する 構成マネージャー →SQLEXPRESSのプロトコル→TCP/IP→有効→IPアドレスにXPのIPアドレスをいれサービスを再起動しました。 そしてエクセルVBEに Dim CN As New ADODB.Connection Dim RS As New ADODB.Recordset CN.Open "Provider=SQLOLEDB;Data Source=192.168.0.6\SQLEXPRESS; " & _ "Initial Catalog=" & データベース名 & ";" & _ "Integrated Security=SSPI" (192.168.0.6はvista側のIPアドレス) にすると、 「実行時エラー -2147217843 ユーザー ’vista\guest’はログインできませんでした。」 となります。 192.168.0.6をvistaのホスト名にしても同じエラーです。 192.168.0.6を「localhost」やXPのIPアドレスdにすると 「実行時エラー -2147467259 [DBNETKIB][ConnecthionOpen (Connect)().]SQL Serverが存在しないか、アクセスが拒否されました。」 と言うエラーになります。 ・全く同じコードでvistaから接続できます。 ・XPのIPアドレスは自動取得です。 ・XPにSQLサーバはインストールしていません。 ・XPからvistaの中にある共有フォルダの中のmdbファイルなら問題なくadoで接続できます。 ご教授よろしくお願いします。

  • 【VBA】アタッチとデタッチについての認識

    VBAを勉強中の者です。カテ違いならすいません。 ******************************************************* Sub test1() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.Open "Provider=SQLOLEDB;Data Source=localhost\SQLEXPRESS; " & _ "Initial Catalog=" & データベース名 & ";" & _ "Integrated Security=SSPI" rs.Open "テーブル1", cn, adOpenStatic, adLockOptimistic MsgBox rs.RecordCount rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub ******************************************************* このコードで アタッチは「Set cn = New ADODB.Connection」、 デタッチは「cn.Close: Set cn = Nothing」 になりますか? ご教授よろしくお願い致します。

  • ASPからSQLサーバーへ接続できない

    色々な質問を見たのですが 環境などの違いもあり解決できず 困っています。 環境は1台のPC(W2000)にIIS+SQLサーバー2005デベロッパーエディションとか言うテスト用のバージョンをインストールしています。 また SQLサーバーはWindows認証を使っています。 SQLサーバーにマネジメントエキスプレスで接続して システムデータベースにPLEMIAというデータベース名を作り テーブルのシステムテーブルにpure_kihonというテーブルを作っています。 ASPにて試験的につないでみようと思い Dim objCon Set objCon = Server.CreateObject("ADODB.Connection") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "Data Source=(local);" & _ "Initial Catalog=PLEMIA;" & _ "Integrated Security=SSPI;" objCon.Open strSQL = "SELECT * FROM [pure_kihon]" objRS.Open strSQL, objCon, 3 こうした場合  objCon.Open のところで引っかかり Microsoft OLE DB Provider for SQL Server (0x80004005) [DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。 と出てしまいます。 SQLサーバー自体は稼働しているようなんですが 何がいけないのか よく分かりません。 どなたか解決策などご教授頂けると幸いです。 よろしくお願いします。

  • VB6とSQL SERVER 2005のADO接続方法

    VB6とSQL SERVER 2005(Developer Edition)のADO接続方法がわかりません。 今までSQLSERVER2000で開発していたのですが、DBをSQLSERVER2005に 変更したところ接続できませんでした。 以下はSQLSERVER2000時のソースなのですが、 2005の場合ConnectionStringはどうやればいいのでしょうか? --------------------------------------- Dim rs As ADODB.Recordset Dim cn As ADODB.Connection Set rs = New ADODB.Recordset Set cn = New ADODB.Connection cn.ConnectionString = "Provider=SQLOLEDB.1;" & _ "User ID=" & strUsr & ";" & _ "Data Source=" & strSvr & ";" & _ "Password=" & strPass cn.CursorLocation = adUseClient cn.Open --------------------------------------- 初歩的な質問で申し訳ありませんがどなたかお助けください。

  • SQLサーバーへの接続が どうしてもウマくいきません

    SQLサーバーを始めたばかり です。 ASPで SQLサーバーのデータを表示しようとしています。 環境: WinXP (Pro)     IIS設定済み     SQL Server 2005 Express Edition 近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。 サーバーが現用機なので 自PCで動作確認してからと思っています。 色々ネットを調べて まず接続しようとしましたが そこでつまづいています。 この方法以外も沢山試しましたが全てうまく行きません。 2005 ExpressでDBとテスト用のテーブルが作成してあります。 そのデータを読み出せれば 第一段階とトライしますが、 IEから接続にいくと「objCon.Open」がエラーになってしまいます。 ASPファイルの内容は 以下です なお DB名は 「PC名¥SQLEXPRESS」といれています よろしく お願いします ---------------------------------------------------- <%@ LANGUAGE="VBScript" %> <% option explicit %> <% Dim objCon ' DB接続コネクション Dim objRS ' DB結果レコードセット Dim sql ' SQL文 Dim errflg ' エラーフラグ 'DataSource名 Const DS = "111.111.0.1" ←IPアドレス。正しいものをいれてます Const IC = "DB名"      'ユーザ名 Const User = "sa" 'パスワード Const Pwd = "sa" Set objCon = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.Recordset") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "User ID=" & User & ";" & _ "Password=" & Pwd & ";" & _ "Data Source=" & DS & ";" & _ "Initial Catalog=" & IC objCon.Open sql = "select * from Aテーブル" objRS.Open sql,objCon,adOpenStatic,adLockReadOnly %> レコード件数 <%=objRS.RecordCount%> <% ' DBclose objCon.Close() Set objCon = Nothing objRS.Close() Set objRS = Nothing %>

  • 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 &= "Data Source = ABSAN\SQLEXPRESS;" ' stConnectionString &= "Initial Catalog = ABSAN;" ' stConnectionString &= "Integrated Security = SSPI;" 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の設定のところがこれでいいのかと思っています。 何らかの形で正しい設定をしたいのですが、サーバのインストール時にこのような設定があったように記憶がありません。 また他にも原因があるようでしたら教えてください。 何分急いで下ります。よろしくお願いいたします。

  • ADOでエクセルからSQL Serverへデータを移行するには

    エクセルvbaのADOを使って、 SQL Serverの「test」という名のデータベースの「Table_1」に 新規レコードを追加する事はできますか? エクセルからアクセスには Sub test() Dim データベース名 As String Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & データベース名 rs.Open "Tテーブル1", cn, adOpenKeyset, adLockOptimistic rs.AddNew rs.Fields("フィールド1") = データ rs.Update rs.Close cn.Close Set rs = Nothing Set cn = Nothing End Sub で移行しています。 これをエクセルからSQL Serverへ移行させるにはどうすればいいのでしょうか? よろしくお願いします。