|
■No20181 (はまや さん) に返信 > 今までの流れからいくと > サーバー側とクライアント側は別々のユーザになっていると思います > ただプログラムからではなく、SQL Server Management Studio Expressからと > なると、権限が無くても全て見えると思うのですが・・・
サーバPCよりSQL Server Management Studio Expressから サーバー名 ABC\SQLEXPRESS でローカル接続します。作製済みのTestDBという名前の ベータベースが表示され、テーブルのクリックで全て(26個)の各テーブル名が表示され 編集も可能です。
クライアントPCより同様にSQL Server Management Studio Expressから サーバPCのABC\SQLEXPRESS でネットワーク接続します。 TestDBという名前のデータベースが表示されますが、テーブルのクリックでは26個のテーブル名 は何も表示されません。 接続してるサーバー名は同じと思いますが、見えないということは何か不備があるのでしょうね。
VBアプリでは、サーバーPC上で 開発ツールの”データリンクプロパティ”ウィンドウから接続するサーバー名とデータベースのTestDBが確認でき、ローカルでの接続では問題なくアプリは動作します。 クライアントからも同様にサーバー名とデータベースのTestDBが確認できます。TestDBに接続すると 下記のコードの途中でエラー(6行目)表示となります。
Set cn = New ADODB.Connection cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestDB;Data Source=ABC\SQLEXPRESS"
Set rs = New ADODB.Recordset
mySQL = "SELECT MAX(伝票マスター.伝票ID ) as maxno FROM 伝票マスター " _ rs.Open mySQL, cn, adOpenStatic, adLockOptimistic ’−−−−−6行目 Set Label21.DataSource = rs Label21.DataField = "maxno" DB_denNo = CLng(Label21.Caption) rs.Close
=========================================== 実行時エラー
複数ステップのOLE DBの操作でエラーが発生しました。各OLE DBの状態の値を確認して下さい。
============================================
アプリの記述コードは同じものです。ローカル接続では問題なく、ネーツトワーク接続で上記の エラーを出します。このエラーは何なんでしょう。 上記コードのDB接続記述に問題ありでしょうか?しかしローカル接続ではOKなのですが........? 冒頭で書きました クライアントPCからの接続でテーブルが見えないことと関係があるのでしょうか。 よろしくお願いします。
> 見えないとなると、接続しているサーバーが違う気がします。 > 同じかどうか確かめるために、データベースまで見えているなら、サーバーで > 追加してみて、それがクライアント側で見えるか確認してみては? > > 見えないようなら、接続しているサーバーが違う可能性があるので > 「名前付きインスタンス」とかを怪しんでみるとか > ゲストアカウントで接続できていない可能性があります。 > (クライアント側のローカルDBに接続している可能性もあり)
|