SQLServer2000とAccess2000(adpファイル)でシステムを組んでいます。
データベースとの接続は、アプリケーションの「データリンクプロパティ」内で設定してあり、初期立ち上げフォームに次のコードを記述して接続しています。
Option Compare Database
Option Explicit
Public cn As ADODB.Connection
Sub p_接続開始() ‘データベースとの接続を行うプロシージャ
Set cn = Application.CurrentProject.Connection
cn.CursorLocation = adUseClient ‘カーソルをユーザークライアントにする
End Sub
その後、フォームを開いた状態で一定時間経過すると、PCが「システムスタンバイ」状態になり、スタンバイを解除すると次のエラーが出て接続できません。
「[DBNETLIB][ConnectionWrite(send()).]一般的なネットワークエラーです」
しかしいろいろ試した結果、フォームのクリックイベント時に、次のコードを記述したところ、一時的に接続できるようになり、入力フォーム上のデータがSQLServerに保存出来るようになりました。
Set cn = New ADODB.Connection
cn.ConnectionString = Application.CurrentProject.Connection
cn.Open
しかしその後、このフォームを閉じたり、他のフォームに移動したりすると、「[DBNETLIB][ConnectionWrite(send()).]一般的なネットワークエラーです」が出てエラーとなります。
データベースを終了し、再度開き直すと、完全に元通りに復活しますが、上記でフォームを閉じたり、移動したときに、エラーが出ないようにするにはどうしたらいいでしょうか?
Set cn = New ADODB.Connection
cn.ConnectionString = Application.CurrentProject.Connection
cn.Open
この記述は、試行錯誤の末、出来たものであり、これが本当に正しいかどうかわかりません。
どなたかわかる方教えてください。
お礼
SherlockHolmes2さん ご回答ありがとうございました。 >スタンバイ等でネットワークが切断されてしまった場合は、そこでエラーとし、最初から実行させるの>が一般的。 やはりそうですか。 スタンバイ等にしないよう、運用で逃げることを考えます。 ありがとうございました。