web-dev-qa-db-ja.com

タイムアウトエラー-SQLバックエンドを備えたMS Accessフロントエンド

まず、SQLについて何も知らないので、意味がわからない場合はお詫びします。

MS Accessデータベースを作成し、IT領域でテーブルをSQL Server 2008に移行して、テーブルをフロントエンドにリンクしました。

負荷が増加するまで(約1000ユーザー)、データベースは正常に機能します。その後、レコードを送信しようとすると、ユーザーは次のエラーを受け取ります。

エラー3155 ODBC--リンクテーブル 'tblMain'の挿入に失敗しました。[Microsoft] [ODBC SQL Server Driver] Query timeout expired(#0)

このエラーはユーザーの約90%に発生し、基本的に使用できなくなります。ほとんどのユーザーがその日を去る午後4時頃に、データベースは問題なく再び動作し始めます。

IT領域では、すべての側で問題はなく、ユーザーやロックに制限は設定されていません。問題は、フロントエンドとコードが複雑すぎることです。しかし、それだけではありません。送信ボタンの背後にあるコードは、非常に単純なのでです。

DoCmd.GoToRecord , , acNewRec

ITが困難になっているときに何をすべきかわかりません。理解を深めてもらい、IT担当者にさらに調査してもらう必要があります。ですから、アドバイスをいただければ幸いです。

ああ、SQLにこっそりとアクセスしました。データベースのプロパティにアクセスすると、ユーザー数= 8と表示されます。これは、データベースを開いても変わりません。 8人限定ということですか?

どうもありがとう、ジェレミー。

2
user37969

表示されているタイムアウトの期限切れエラーは、Microsoft AccessがSQL Serverから行をフェッチする方法が原因である可能性が非常に高いです。たとえば、問題のフォームがデータバインディングを使用してSQL Serverからのデータをフォームのコントロールに入力し、フォームに1行のデータを選択するフィルターがない場合、Accessは結果を開いたままにし、ページ」の行を一度に1行ずつ表示します。これにより、他のユーザーがテーブルの行を更新できなくなります。

1,000人のユーザーが使用するシステムの場合、Accessをフロントエンドとして使用しないでください。 Access(必要な場合)をラピッドデザインプロトタイピングツールとして使用し、Visual Studioまたはその他のエンタープライズレベルの開発ソフトウェアを使用して実際のソリューションを構築します。

1
Max Vernon