• ベストアンサー

SQLSERVERにADOで接続

現在、サーバマシンのコンピュータ名では接続できるのですが、 サーバのIPアドレスで接続したいのですが、できるのでしょうか? サーバ名のところをIPアドレスにしてもだめでした 【VB6.0】 Dim cnn As New ADODB.Connection cnn.Open "Provider=SQLOLEDB;" & _ "SERVER=サーバ名;" & _ "Initial Catalog=pubs;", "sa", ""

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

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

私が、スタッフのためにまとめたHPからの抜粋です。 NO.1さんのように<IPアドレス>での検証はしていませんが・・・。 少し、リンクプロパティの全容もヒントになるかなと思います。 【必須データリンクプロパティ】 PROVIDER・・・・・・・・・・・SQLOLEDB.1 を指定します。 Data Source・・・・・・・・SQL Server または MSDE が作動しているコンピュータのネットワーク上のサーバー名を指定します。 INITIAL CATALOG・・・・接続し開くデータベース名を指定します。 USER ID・・・・・・・・・・・・SQL Server 認証を使用している場合に、ユーザーアカウント名を措定します。 PASSWORD・・・・・・・・・・・SQL Server 認証を使用している場合に、ユーザーのパスワードを指定します。 例えば、Accessプロジェクトのプロパティは次のようになっています。 【Windows NTの統合セキュリティを使用する場合】 PROVIDER=SQLOLEDB.1; INTEGRATED SECURITY=SSPI; PERSIST SECURITY INFO=FALSE; INITIAL CATALOG=Sales2006SQL; DATA SOURCE=(local); Use Procedure for Prepare=1; Auto Translate=True; Workstation ID=LAVIE 【特定のユーザー名とパスワードを使用する場合】 PROVIDER=SQLOLEDB.1; PASSWORD=login007; PERSIST SECURITY INFO=TRUE; USER ID=Operator; INITIAL CATALOG=Sales2006SQL; DATA SOURCE=(local); Use Procedure for Prepare=1; Auto Translate=True; Packet Size=4096; Workstation ID=LAVIE

その他の回答 (1)

回答No.1

私も開発環境でもADO接続してますが、 「SERVER」というのはなく、 「Data Source」というのがあり、 ここをコンピュータ名ではなく、IPアドレス に変えて接続してみましたが、接続できました。

関連するQ&A

  • 他の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アドレスは固定です。 ご教授よろしくお願い致します。

  • MSDE インストールと外部からADO接続できないのです

    MSDEをインストールしました C:\SQL2KSP4\MSDE>setup SAPWD="a" INSTANCENAME="a" DISABLENETWORKPROTOCOLS=0 SECURITYMODE=SQL ADOから接続で Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=a;Data Source=192.168.0.10 としますが接続できず Data Source=マシン名\インスタンス名 とすれば接続できました Data Source=IPアドレス で接続できる方法無いでしょうか? MSDEのインストール方法が間違っているのでしょうか?

  • 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 --------------------------------------- 初歩的な質問で申し訳ありませんがどなたかお助けください。

  • 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 」を付けるとコンパイルエラーになります。 違いがわかりません。 よろしくお願いします。

  • VB6 WIN7_64bit SQLServer

    SQLServerに接続できなくて困っています。 サーバ機:WinXP SQLServer 2000を実行 既クライアント機:WinXP 既クライアント機で、VB6SP6で開発したプログラムを実行してSQLServerに接続していました。 接続のコードは以下の通りです。 strcnn = "Data Source=SERVER0;provider=sqloledb;Initial Catalog=TESTDB;User ID=sa;Password=sasa;" Set gSyscnct = New ADODB.Connection gSyscnct.Open strcnn 同じプログラムをwin7homepremium64ビット版のクライアント機にインストールして実行しますと、以下のエラーになってしまいます。  実行時エラー '-2147467259' (80004005) [Microsoft][ODBC Driver Manager]データソース名及び指定された既定のドライバがみつかりません。 何か追加の設定がWin7機で必要なのでしょうか?(ODBCアドミニストレータとか。。) 何をしたらよいか、または何を調べたらよいか 検討がつきません。 ご存知の方がいらっしゃいましたらお教えください。

  • FTPサーバー上のデータにADO接続したい

    WINDOWS2008サーバー/クライアント Win7 FTPサーバー上にあるEXCELファイルから、同じFTPサーバー上のACCESSファイルへ ADO接続したいのですが、(そのエクセルをクライアントPC Win7から実行します) Dim adoCON As New ADODB.Connection adoCON.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=IPアドレス" & ";DATABASE=accdb名" & & "; UId=FTPユーザー名 ; PWD=パスワード; " ではエラーになってしまいます。 どなたか教えていただけませんでしょうか? どうぞよろしくお願いいたします。

  • ADOオブジェクトの接続文字列について

    Visual BasicでADOオブジェクトを使用してDBに接続しようとしています。 Connectionオブジェクトの接続文字列 Provider=SQLOLEDB.1; Persist Security Info=False; Data Source=***; User ID=***; Password=***; Initial Catalog=***; Connect Timeout=120; とあるのですが、Persist Security Info=Falseというのは何を表しているのでしょうか? 調べてみるとトランザクション処理と関係がありそうなのですが、関係があるのでしょうか? 今までProvider、Password=、User ID、DataSource、Initial Catalogしか接続文字列に設定したことがないため、この他に接続文字列に何が設定できるのかわかりません。もしよろしければ、この他の設定項目についても教えてください。

  • SQLserverからのデータ取得

    はじめまして。カナと申します。 突然ASPで開発をすることになり、謎だらけで大変困っています。宜しくお願いいたします。 ・windowsXP ・Vbscript ・IIS5.0 質問:SQLserver2000からデータを取得し、そのテーブルの件数を表示する 以下のように記述したところ、ブラウザで確認すると「ページを表示できません 」になってしまいます。 ------- <%@ 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 %> --------------- 以上です。どこかおかしいのでしょうか・・・。 VBAは触ったことがあるのですが、VBAのようにブレークポイントを付けるデバッグが出来ないので、どこで落ちたのかもわからず困っています。 こういう場合の、上手なデバッグ方法があれば、それもご教授いただきたいです。ちなみに客先なので、ソフトやツールのインストールなどは出来ません・・・。 前に進めず、本当に困っています。 どなたか、宜しくお願いいたします!

  • 家庭内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で接続できます。 ご教授よろしくお願いします。

  • ADO1とADO2は意味は同じですか?

    Private Sub ADO1() Dim cn As New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub Private Sub ADO2() Dim cn As ADODB.Connection Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub は、 Dim cn As ADODB.Connection Set cn = New ADODB.Connection を簡素化したものが Dim cn As New ADODB.Connection になるのでしょうか?

専門家に質問してみよう