4

ネットワーク上の別のコンピューターからラップトップで実行されている SQL Server DB に接続する必要があります。これは、C# アプリと VBA マクロの両方で行っています。どちらも私のラップトップで完全に動作し、C# アプリはネットワーク上で完全に動作します。ただし、ネットワーク経由で VBA を使用して接続することはできません。これは私の接続文字列です:

ConnectionString = "Driver={SQL Server};Server=MY-LAPTOP; DAtabase=SAFEXlive; UID = MyUsername; PWD=MyPassword"

「Driver={SQL Server}」を除けば、これは動作する C# アプリで使用している接続文字列と同じです。

次に、次のコードを使用して (VBE の Microsoft ActiveX Data Objects 6.0 Library を参照)、接続を開きます。

Dim oConnection As Connection
Set oConnection = New Connection
oConnection.ConnectionString = strConnectionString
oConnection.Open

これは、ラップトップで実行すると正しく動作しますが、ネットワーク上の別のコンピューターで実行すると、次のエラーが表示されます。ユーザーが失敗しました...」と指定されたユーザーは、コンピューターのWindowsログインを指定します。

コードまたは Excel で設定する必要があるセキュリティ設定はありますか? または、接続文字列を正しく構成していませんか? 私は何を間違っていますか?

4

2 に答える 2

4

Solved. The answer is rather infuriating. The problem is in fact with the connection string, with the UID. Believe it or not changing ...UID= MyUsername;... to ..UID=MyUsername;..., i.e. removing the space character, was all it took! Thanks for suggestions though.

于 2012-04-16T08:09:37.007 に答える
3

この接続文字列を試してください。

ConnectionString = "Provider=SQLOLEDB;Data Source=MY-LAPTOP;Initial Catalog=SAFEXlive;User ID=MyUsername;Password=MyPassword"

これは AD ドメインのログインですか? ユーザー名にドメインを追加したことを確認してくださいdomain\user。これの代わりに統合セキュリティを使用することをお勧めします。

于 2012-04-13T17:46:56.323 に答える