

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
この記述は、試行錯誤の末、出来たものであり、これが本当に正しいかどうかわかりません。
どなたかわかる方教えてください。
No.1ベストアンサー
- 回答日時:
エラーとなる理由は、スタンバイ解除後の、フォームのクリックイベント時に実行され保存した変数等が、クリックイベント終了時に全て無くなるからです。
この現象をスコープから外れる等と言います。参考url : http://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%B3% …
ちなみに、何らかの処理中にスタンバイ等になりネットワークが切断されてしまった場合は、そこでエラーとし、アプリケーションを強制終了し、再度、最初から実行させるのが一般的です。
※そうしないと、データベースの整合性が崩れてしまう可能性があるため。
SherlockHolmes2さん
ご回答ありがとうございました。
>スタンバイ等でネットワークが切断されてしまった場合は、そこでエラーとし、最初から実行させるの>が一般的。
やはりそうですか。
スタンバイ等にしないよう、運用で逃げることを考えます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2010 accdbのエラー「ODB...
-
ACCESSのODBC接続でエラー
-
SQLServerへのOpen命令でのエラー
-
SQL Server 2005 Expressでbcp...
-
VB.NetでSQLServer2005に接続で...
-
DAOでのOpenRecordsetの方法
-
DBへの登録エラー?
-
SQL Serverの移行について
-
SQLのエラー(~付近に不適切な...
-
AccessのDAO.ExecuteとDoCmd.Ru...
-
Oracle 8i コンマ(,)を含むデ...
-
DB接続ができなくなって困って...
-
PostgreSqlでFunctionの作成に...
-
Excel-VBAの「しばらくお待ちく...
-
何も表示されない実行時エラー...
-
drop user できない。ORA-01940
-
ストアドの速度がクエリの30...
-
SQL-Loaderが動かないです。
-
GROUP BYでエラーが発生
-
RDSデバイスCALを誤って消費し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access2010 accdbのエラー「ODB...
-
SQLServerへのOpen命令でのエラー
-
ODBCによるエラー
-
SQL ServerにTCP/IPで接続出来ない
-
SQLネットワークエラー時の再接続
-
SQL Server 2005 Expressでbcp...
-
DAOでのOpenRecordsetの方法
-
PostgreSQLと、AccessをODBC接続
-
PHPのODBC関数
-
ASP.NET、SQLServerを使用してW...
-
ASP経由でのODBCの接続について
-
SQL Server 2008のsqlcmdコマン...
-
ODBC 一般ネットワークエラー
-
DBへの登録エラー?
-
VB.NetでSQLServer2005に接続で...
-
osqlでデータベースにアクセス...
-
一般的なネットワークエラーに...
-
JSPよりMySQLへ接続する
-
SQLサーバー接続について
-
バッチ処理でファイルの差分バ...
おすすめ情報