- ベストアンサー
Access2013でスタック領域不足エラー
- Access2013で開発したシステムを現在Office365で修正を行っております。親フォーム(連結フォーム)に「次へ」ボタンを配置し、クリックする度に次のレコードをフォーム上に表示するプログラムで、「スタック領域が不足しています」のエラーが発生します。
- ゆっくりとレコードを送る分には問題ないのですが、ボタンを早くクリックし続けると、3,40件あたりでエラーとなります。また、親フォームの中に8つのタブを作り、それぞれサブフォームを作成し、親フォームのIDとサブフォームのIDでリンクしており、次へいくたびに該当のデータを表示しております。
- おそらくこのタブでの表示処理が多いためエラーとなっていると推測しております。色々と調べておりますがなかなか解決しません。何か良い対策はございませんでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コメント有難うございます。 >現在単票フォームですが、こちらはクライアントの指定ですので 変更することができません。 ★3,40回早押しクリックのエラーは当然だと思います。 性能の違うPCで試して下さい。 エラーの頻度に差が出ると思います。 ★クライアントの方に提案なさってはいかがですか 添付のように帳票フォームでレコードがあふれると右辺にの スクロールバーのクリックの位置により 数レコード、画面単位、ハンドルで自由に数千レコドを一瞬に移動できます。 単票フォームが必要ならレコードの端に「単票」ラベルを配置し これのクリックイベントでピンポイントで開く事も出来ます ---------------------------------------- Private Sub 単票_Click() DoCmd.OpenForm ("名前登録単票,,,[名前]=[forms]![名前登録];") End Sub ----------------------------------------------------------------- >同じく、8つのタブに関しても指定された仕様ですのでコンボボックスに 変更することができません。 >親フォームのIDとサブフォームのIDでリンク ★これらのIDはオードナンバー型ですよね親フォームのテーブルに含めることも 出来ないですか
その他の回答 (2)
- chayamati
- ベストアンサー率41% (260/624)
回答No.1です。 添付する画像が間違えました。 正しくはこちらです。 尚、画像のようにクイックアクセスツールバーをリボンの下に表示すると 表示幅が画面幅になり、たくさんのツールを配置できます。 また下辺の移動ボタンを非表示も可能ですがレコード件数も非表示になってしまいます。
補足
ご返信が遅くなり申し訳ありませんでした。 まず、クイックアクセスツールバーへの配置については教えていただきありがとうございました。 質問時に書いたコードはまだ未完成で「次へ」をクリックする時に色々と制御する方向ですので、 今回はクイックアクセスツールバーへの配置は考えておりません。 また、現在単票フォームですが、こちらはクライアントの指定ですので変更することができません。 同じく、8つのタブに関しても指定された仕様ですのでコンボボックスに変更することができません。 自分では原因が特定できず曖昧な質問になってしまい大変恐縮ですが、この状況でエラー原因及び解決方法があるようでしたらご教授いただければ幸いです。
- chayamati
- ベストアンサー率41% (260/624)
今晩は >親フォーム(連結フォーム)に「次へ」ボタンを配置し、 クリックする度に次のレコードをフォーム上に表示するプログラムで、 「スタック領域が不足しています」のエラーが発生します。 「次へ」ボタンのコードは以下の通りです。 Private Sub bt_next_Click() On Error Resume Next DoCmd.GoToRecord , , acNext End Sub ★このボタンはフォーム下辺の移動ボタンと同じ働きですね この移動ボタンをクイックアクセスツールバーに配置すれば、 親フォーム、サブホームを問わず、マウスカーソルがあるフォームに 効きます。移動ボタンはリボン内にはありませんが、用意されています クイックアクセスツールバーへの配置の流れ クイックアクセスツールバーの空白部を右クリック →クイックアクセスツールのユーザ設定 画面がACCESSのオプションに変わります。 右枠はツールの配置されている一覧です →挿入したい位置をクリック→コマンドの選択を「フォームタブ」 このリストの並びはバラバラですが 「最後のレコード」「次のレコード」「先頭のレコード」 ぐっと離れて「前のレコード」とあります 追加ボタンで配置します →最後にOK これが無いと水の泡 >ゆっくりとレコードを送る分には問題ないのですが、 ボタンを早くクリックし続けると、z3,40件あたりでエラーとなります。 ★フォームの書式で既定のビューは単票フォームですね、帳票フォームに すると右辺の縦のスクロールバーで数千件でも支障ないです ※サブフォームのあるフォームの作成時には単票ですが、 出来てしまえば切替は容易です >また、親フォームの中に8つのタブを作り、 それぞれサブフォームを作成し、 親フォームのIDとサブフォームのIDでリンクしており、 次へいくたびに該当のデータを表示しております。 ★テーブルのフィードを見なければ何とも言えませんが 親テーブルに8つのサブテーブルをルックアップ(コンボボックス)が有効かも テーブルのID(リレーショナル型)はAccessで管理してくれるもの フォーム設計に組み込めないと思うのですが
お礼
ご返信頂きありがとうございました。 早押し(クリック)することによるエラーについては、PCの性能に左右されることを教えて頂きありがとうございました。 今回その点の解消を目的としておりましたが、仕様等も考慮して、使い方の指導及び検索機能(ページ送り)を工夫して満足いただけるように進めていきます。 お付き合い頂きありがとうございました。