- 締切済み
Access2003 フォーム入力中に入力内容が消えてしまう
現在、仕事でAccess2003を使用しているのですが、Accessのフォームに文字を入力していくと、一定時間経過すると、当該入力内容が消えてしまう不具合が発生します。もちろん、テーブルデータには残っているのですが、どうにかならないのものでしょうか? 非常に困っています教えてください! 現在の使用環境をまとめます。 ・Access2003を使用し、苦情処理内容等をフォームに書き込み、苦情内容が蓄積していくようなデータベースを構築し運用している。 ・Access2003ファイルを同時に6人で共有して使用している。 ・フォームの構成は、フォームの中でコンボボックスを使用しており、コンボボックスが、例えば、都道府県区分を「東京」と選択すると、地区区分という関東か、東北か、などの区分が自動的に「関東」となるようにクエリを使用している。 ・フォームは、サブフォームとして選択クエリを使用して、苦情内容の期間、相談者名を親フォームを使用して、検索が可能な状態にしてある。 ・親フォームには、入力した内容を印刷できるように、入力データを印刷できるボタンを設置してある。 ・各苦情受付担当者が、当該Access2003で、入力フォームで苦情内容等を入力し、30分ぐらい経つと、自動的に文字が反転し、時計マークがでて来て、入力内容がそっくり消えてしまう。 おそらく、Access2003を複数人で同時に扱っているため、フォームに入力した内容が30分程度経つと消えてしまうのか? 若しくは、フォームの作り方に問題があるのか?(フォーム、サブフォームを作成し、入力はサブフォームに入力することとしている。当該サブフォーム中にはマクロでクエリをいくつか使っている状況。) 又は、システム上のバグの問題なのかわかりません。 もしわかる方、若しくは、少しでも手がかりがわかる方がいらしゃったら是非教えてください。なんでも結構です。 お願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- irija_bari
- ベストアンサー率73% (70/95)
Accessで[ツール]→[オプション]→[詳細]を開くと、「ODBCの再表示間隔」という 項目があります。 この項目のデフォルト値が1500秒(=25分)だったので、それっぽいですよね。 ただ、なぜ「ODBCの再表示」で入力フォームの内容が消えてしまうのか? についてはわかりません。 (ファイル共有が原因というのはほぼ間違いないと思います。) >入力フォームで苦情内容等を入力し、30分ぐらい経つと、... と書かれていましたが、 ・フォームに表示されているものはすでに追加されたレコードでそれの編集を 行っている場合なのか、それとも追加するための内容を書いている途中なのか? ・フォームの内容が消えてしまった場合、参照元のテーブルは追加・更新されて いるのか? ・30分間フォームを放置していたらということなのか? ・30分の間に、他のユーザがフォームの参照元であるテーブルに追加・更新・ 削除を行っているのか? といったことを疑問に思いました。 もし、「ODBCの再表示」が原因であれば、 http://www.nurs.or.jp/~ppoy/access/access/acF007.html のように、Me.Requery を実行することで防げるのかもしれません。 (VBAでRequeryを定期的に実行することも可能でしょう。) 当方でも(WinXP2台とAccess2000で)フォームの内容が消えるという現象の再現を 試みたのですが、うまくいっていません。 参考になりましたら幸いです。
補足
・フォームに表示されているものはすでに追加されたレコードでそれの編集を行っている場合なのか、それとも追加するための内容を書いている途中なのか? ⇒追加するための内容を書いている途中です。試しに、Accessのフォーム入力画面を開けたままの状態にして20分ぐらい経ったら、やっぱり、文字が反転して、砂時計が出た後、消えてしまいました。 もちろん消えた内容は、しっかりとテーブルに残されているので、フォームで呼び出すことは可能なのですが、入力者は、びっくりしてしまうという状況にあります。 ・フォームの内容が消えてしまった場合、参照元のテーブルは追加・更新されているのか? ⇒フォームの内容が消えてしまった場合は、参照元のテーブルは、ちゃんと追加、更新されています。なので、問題ないのですが、ウチの会社では、入力者の多数が高齢者ということもあり、「入力内容がいきなり消えてしまうと心臓に悪い!」と怒られています。どうにかしてあげたいのですがね。 ・30分間フォームを放置していたらということなのか? ⇒放置していても消えてしまいます。何故なのかはわかりません。試しにODBCの項目を変えたら、消えなくなったような「気がする」のですが、イマイチ原因が特定できません。 ・30分の間に、他のユーザがフォームの参照元であるテーブルに追加・更新・削除を行っているのか? ⇒30分の間に、他のユーザは、参照元のテーブルに追加、更新を行っています。常に数人が入力している状態です。(削除はしません。) もし、「ODBCの再表示」が原因であれば、 http://www.nurs.or.jp/~ppoy/access/access/acF007.html のように、Me.Requery を実行することで防げるのかもしれません。 (VBAでRequeryを定期的に実行することも可能でしょう。) 当方でも(WinXP2台とAccess2000で)フォームの内容が消えるという現象の再現を試みたのですが、うまくいっていません。 ⇒わざわざありがとうございました。本当に感謝です。恐らく、数人のユーザが同時に同じフォームを取り扱うという作業をしないとだめなのだと思います。共有ユーザの問題のような気がしますが…。イマイチわかりません。とりあえず、Me.Requery を実行して、 ODBCの項目を変更することで対応してみようかと思います。