こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

回答受付中の質問

accessからSQL-Serverへの接続で

 ネットで調べても見つけ方が悪いせいか、参考になりそうなのが見つからなかったので、こちらでも情報を得ようと致しました。
 
 Accessで、ADOを用いて、小さなシステムを作りましたが、フロントをAccessにして、DBをSQL-Serverで作りなおしてみようとしております。
 
 Windows7 Pro 64bitのパソコンにaccess2010にて、当初作成しました。
 そのパソコンに、SQL-Server2014 express をインストールしております。
 
 元々、画面とDBを分けてAccessで作成しており、リンクテーブルでつなげております。
 SQL-Serverとの接続においても、リンクテーブルでつなげて、同じPC内での正常稼働は確認ができましたが、そのPCをDBサーバーとして、別PCにAccessの画面を置いて、稼働させようとしましたが、エラーとなります。
 そこで、接続設定及びコードの書き方を教えて下さい。
 
 本来なら、サーバ機とサーバOSを購入してなのでしょうが、基幹システムでもない限り、購入費用はねん出してくれません。PC買うのにも渋り、HDDやCPU等の部品だけを購入して、私が直し、未だにXPを社員には使ってもらっているような中小企業であることをご理解ください。

 環境イメージとして、
<サーバ>
Windows7 Pro 64 bit
SQL-Server 2014 express
PC名:AAA
DB名:YYY
saアカウントで、パスはxxxx

<クライアント>
現在Accessだけでも最大接続3名いるかいないかなので、とりあえず1台として
Windows7 Pro 32bit
Access2010ランタイム
accdeのフロント部分
リンクテーブルでADOでサーバにつなぎに行きたい。
accdbでODBC接続設定をしたものをaccdeに変換したものを配布。

 他PCからの接続には、ファイアウオールの設定等々も必要とのことで、それは施しました。
 また、下記、コードを追加。

Dim cnnS As ADODB.Connection
Dim recW As ADODB.Recordset

Set cnnS = New ADODB.Connection
Set recW = New ADODB.Recordset

cnnS.Open "Provider=SQLOLE DB;" & _
"Data Source=AAA\SQLEXPRESS;" & _
"User ID=sa;" & _
"Password=xxxx;" & _
"Initial Catalog=YYY"


 これで、サーバ内で実行すると、
 「実行時エラー 3704
 オブジェクトが閉じている場合は、操作は許可されません」
 と表示され、リンクテーブルは生きているので、開けて、操作できてしまいます。
 
 次に、accdeを他PCにて稼働させると、
 「実行時エラーが発生したため、このアプリケーションの実行は中断されました。
アプリケーションを実行できません。システムはシャットダウンされました。」
と表示され、稼働しません。


 どのようにすればよろしいのでしょうか?。

投稿日時 - 2017-12-07 23:26:07

QNo.9405480

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

SQL Sever Expressはデフォルトではネットワーク越しの接続は許可されてないので、開放しなくてはなりません。
参考URLを参考にしてみてください。

参考URL:http://www.timetracker.jp/support/documents/KB/Content/Setup/KB080623_01.htm

投稿日時 - 2017-12-07 23:40:17

補足

ご回答ありがとうございます。
申し訳ないのですが、頂いた回答の設定は既に済ませております。

投稿日時 - 2017-12-08 23:27:33