WorkStation IDとHost_Name()

Access_adpを各クライアントPCに配布したときSQLへの接続ホスト名が、どれも開発PCの名前になってしまう対策
まず、WorkStation IDがどうなっているか、データリンクプロパティをクライアントPCで調べてみましょう。
(1)「ファイル」−「接続」をクリック
(2)「すべて」のタブの最下行にあるWorkStation IDの値の確認をしてください。
ここで値の編集でWorkStation IDを削除して「OK」で再接続をすれば、
SQLへの接続ホスト名はクライアントPCの名前になります。


全てのクライアントPCで上記の作業をするのは大変なので、配布用Access_adpで以下の作業をしてから配布して下さい。
(1)イミディエイトウィンドウで ?CurrentProject.BaseConnectionString と入力してEnter
PROVIDER=SQLOLEDB.1; から始まる長いADO接続文字列が表示される。
この文字列の最後のほうに WorkStation ID=XXXXX があるので、これを除いた部分をコピーする。

(2)CurrentProject.CloseConnection と入力しSQLSaverとの接続を一旦解除する。

(3)CurrentProject.OpenConnection "ADO接続文字列", "ユーザーID", "パスワード" と入力し再接続をする。
ADO接続文字列のヶ所に(1)でコピーしたものを貼り付ける。
パスワードを保存するにチェックが入っている場合は接続文字列の中にユーザIDとパスワードが含まれているため、
"ユーザーID", "パスワード"は不要、また、Windows認証で接続の場合も"ユーザーID", "パスワード"は不要である。

(4)念のため再度 ?CurrentProject.BaseConnectionString と入力してみると
WorkStation ID=XXXXX が無くなっているのが確認できる。(下図参照)


このページの最初に説明したデータリンクプロパティを開いて再接続をすると、元に戻ってしまうので注意して下さい。
ちなみに、HOST_NAME()はSQL Serverの接続ホスト名を取得するSQLの関数です。