• ベストアンサー

実行時エラー7「メモリが不足しています」

アクセスで DoCmd.OpenForm Form_F1.Name, acNormal で、開こうとすると、 実行時エラー7「メモリが不足しています」がでました。 今まで一度も出なかったのですが、いきなりどうしたのでしょうか? パソコンのメモリは8Gです。 不足するほど少ないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

Accessでメモリ不足のメッセージはほとんど見かけません。 今まで無事に動いていたのなら、MDB?ACCDB?が壊れかけているのかも? 定番の、 新規MDB?ACCDB?を作成して、テーブルからモジュールまで全てインポートします。 (これはオリジナルをこれ以上壊さない為でもあります) で、その新規ファイルで DoCmd.OpenForm Form_F1.Name, acNormal → DoCmd.OpenForm "F1", acNormal に書き換えます。 VBEのメニュー→デバッグ→コンパイルでエラーが発生しない事を確認してから DoCmd.OpenForm "F1", acNormal を確かめてください。 まず、ここまで。 なぜ、 DoCmd.OpenForm Form_F1.Name, acNormal がマズイかというと (釈迦に説法でしたらご容赦を) 試しに、 フォームのイベントに Private Sub Form_Activate() MsgBox "ACTIVE中" End Sub Private Sub Form_Current() MsgBox "CURRENT中" End Sub Private Sub Form_Load() MsgBox "LOAD中" End Sub Private Sub Form_Open(Cancel As Integer) MsgBox "OPEN中" End Sub と4つ置いといて、F1フォームは閉じときます。 イミディエイトウィンドウで DoCmd.OpenForm Form_F1.Name, acNormal としてみてください。メッセージが2回繰り返されてしまいます。 また、F1フォームは開きますが、同じくイミディエイトウィンドウで docmd.Close acForm, "F1" としても閉じてはくれません。

qpixyncgdnop
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

DoCmd.OpenForm Form_F1.Name, acNormalを フォーム名を ダブルクォ―テンションで挟んで DoCmd.OpenForm "フォーム名" ではダメですか

qpixyncgdnop
質問者

お礼

ありがとうございました。

  • goold-man
  • ベストアンサー率37% (8365/22183)
回答No.1

OSは? 「スタート」「ファイル名を指定して実行」「 msconfig 」「OK」「スタートアップ」 起動時に、自動的に起動するプログラム一覧が表示 一覧の項目左側をクリックしてチェックを外すことで、プログラムを自動的に起動しないように設定可能(XPの場合) セキュリティ対策ソフトや一部のWindows プログラムを停止するとトラブルが発生する可能性あり。 >メモリー8GB メモリー不足より、同時に実行しているプログラムが多数ある場合と思われます。

qpixyncgdnop
質問者

お礼

ありがとうございました。

関連するQ&A

  • 「実行時エラー 3035メモリ不足です」

    アクセスのテーブルを開いてレコードを並び替えようとすると 「メモリ不足です」と表示されます。 VBAで、 DoCmd.RunSQL SQL のコードでも同じように 「実行時エラー 3035メモリ不足です」と言うエラーが発生します。 VBAでエラーになった場合は、 一度エラーでとまりますが、そのままF5を押すと問題なく実行できます。 メモリは4G積んでいます。win7です。 そんなにメモリが低いでしょうか? アクセスのレコード数は40000くらいです。

  • 実行時エラー 2001 直前の操作は取り消されまし

    アクセスVBAで DoCmd.OpenQuery "Qクエリ", acNormal を実行しようとしたら、 実行時エラー 2001 直前の操作は取り消されました。 と言うエラーになりました。 何が原因なのでしょうか?

  • 実行時エラー 3020の対策

    アクセス2003で次のエラーが発生します。 実行時エラー 3020 Update または CancelUpdateメソッドには、対応するAddNewまたはEditメソッドが必要です。 以下のソースは、「テスト」フォームにtestフィールドがある簡単なデータベースですが、全レコードを最初から最後までtestフィールドの先頭に"abc "を付加するというものです。 Public Sub Test() Dim form_name as String Dim frmObj As Form Dim rstObj As Recordset Dim fld_dat As String form_name = "テスト" DoCmd.OpenForm form_name Set frmObj = Application.Forms(form_name) Set rstObj = frmObj.Recordset '先頭のレコードに移動する DoCmd.GoToRecord acDataForm, form_name, acFirst Do fld_dat = rstObj.Fields("test").Value fld_dat = "abc " & fld_dat rstObj.Fields("test").Value = fld_dat '<--- *** ここでエラー *** '次のレコード DoCmd.GoToRecord acDataForm, form_name, acNext DoEvents Loop While frmObj.NewRecord = False End Sub

  • 実行時エラー7 メモリが不足しています。

    vbaでie操作をしていて、ループしているのですが strURL = objIE.Document.body.innerHTML の部分で、 「実行時エラー7 メモリが不足しています。」 と言うエラーで一時中止になりますが、 そのままF5を押すと、通過できます。 エラーではないのでしょうか? 中断すると治るエラーなのでしょうか?

  • 【Excel】【VBA】実行時エラー メモリ不足

    【Excel】【VBA】実行時エラー -'-2147467259「メモリ不足です」 win8.1 エクセル2010 メモリ8Gのスペックで VBAコードを実行しているのですが たまに 実行時エラー -'-2147467259「メモリ不足です」 となり、マクロが中断されてしまいます。 今回、実行時エラー -'-2147467259「メモリ不足です」と出たコードは rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic です。 前後のコードは省略していますが 普段は問題なく通ります。 strSQLも、中身をクエリのSQLビューに張り付けて、クエリで見てみたけど 問題なく表示されます。 なぜメモリ不足ですとなるのでしょうか? スペックが低いのですか?

  • 「DoCmd.OpenForm」が実行できない(vbaでフォームを開きたい)

    「フォーム1を開く」vbaで行ないたいのですが エラーになってしまいます。 Sub test1() DoCmd.OpenForm , acNormal, フォーム1 End Sub は「変数が定義されていません」と表示され (「変数の宣言を強制する」にチェックを入れています) Sub test2() DoCmd.OpenForm , acNormal, "フォーム1" End Sub は「引数は省略できません」となります。 Sub test1() DoCmd.OpenForm , フォーム1, acNormal End Sub Sub test2() DoCmd.OpenForm , "フォーム1", acNormal End Sub これにしても同じでした。 「OpenForm」をヘルプで調べてみたところ 「expression 」と「FormName」が「 必ず指定します。」でした。 「expression 」がないからだめなのでしょうか? すいません、助けてください。 よろしくお願いします。

  • オブジェクト(コントロール)の名前を変更したい

    諸事情があり、フォーム上のコマンドボタン40個くらいの名前を変更したいのですが まず、一つだけ変更できるか実験してみたのですがうまくできません。 Sub オブジェクト名変更() DoCmd.OpenForm Form_フォーム1.Name, acDesign Form_フォーム1.コマンド0.Name = "あああ" DoCmd.Save acForm, Form_フォーム1 End Sub を実行すると メモリが不足しています。(Error 7) と出たり、 実行時エラー 29054 指定のコントロールを追加、名前を変更、または削除することはできません。 と出たりします。 これって無理って事でしょうか? バージョンは2007です。

  • 実行時エラー3035メモリ不足が出てしまいます

    Windows7メモリ16GB Access2013環境です。 フォルダA、フォルダAのサブフォルダ内にある画像ファイルの ファイル名、パス、画像解像度を取得するプログラムを 作りました。 実行後、3000~4000件前後レコードを書き込んだ時点で、 "実行時エラー3035 メモリ不足です。"が表示され プログラムがとまってしまいます。 エラー時、 フォームからレコードを書き込むプログラムでは プロシージャ上、次のレコードへ移動のプログラムが黄表示。 レコードをDAOでテーブルに直接書き込むプログラムでは update行で黄表示でした。 タスクマネージャを見たところメモリは プログラム実行前が4.91GB使用中となっており プログラム実行中10MBずつ使用量が増加し 5.1GB程度使用中となったあたりで エラーになります。 エラー表示後、ACCESSを終了する際も、エラー番号無しで メモリ不足と表示されるようになってしまいました。 画像解像度を取得するプログラムを省くと 問題無くすべて処理が完了することは 確認済みです。 画像解像度を取得するプログラムは、 http://okwave.jp/qa/q5143538.html のベストアンサーを使わせて頂きました。 単体では、問題無く画像解像度を取得出来ることを 確認しました。 どのように対処したらよいのでしょうか。

  • コマンドボタン名を取得して変数に代入したい。

    OS:windowsXp Access Version:Xp 既出でしたらすみません。 INDEXのフォームにて複数コマンドボタンを作り、それを押すと各登録フォームや集計フォームが開くようにしています。 さて、質問なのですが、コマンドボタンで別のフォームを開く時の処理を(フォーム名が違うだけで後は同じなので)まとめて書きたいのです。 現在は次のようにやっています。 ------------------------------------------------- Private Sub F_メニュー_Click() Call close_form DoCmd.OpenForm "F_メニュー", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub F_売上伝票_Click() Call close_form DoCmd.OpenForm "F_売上伝票", acNormal, , , acFormEdit, acWindowNormal End Sub      (中略) Private Sub 事業所別集計_Click() Call close_form DoCmd.OpenForm "F_事業所別集計", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub 消費税変更_Click() Call close_form DoCmd.OpenForm "F_消費税変更", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub システム終了_Click() Call close_form DoCmd.RunCommand acCmdExit End Sub Private Sub close_form() msgbx = False DoCmd.Close acForm, "index", acSaveYes End Sub ------------------------------------------------- これを  ボタン名_Click() ではなく  frm_open() 押されたボタン名を変数に取得(ボタン名=Form名にします。) DoCmd.OpenForm 押されたボタン名変数 のように共有したいのです。 どうすれば出来ますでしょうか?ご指導よろしくお願いします。

  • アクセス2000でVBAを使ってクエリを実行したいのです

    Access2000でVBAを使っています。 Docmdでクエリを実行させたいのですが、 DoCmd.OpenQuery stDocName1, acNormal, acHidden とするとクエリの実行結果が表示されます。 クエリだけ実行されて実行結果を非表示にする方法は ありますでしょうか? Form1のコマンドボタンを押下後、クエリが実行されて 別のFormにデータ表示させたいので、なるべくクエリの実行結果を表示させたくないのです。 よろしくお願いいたします

専門家に質問してみよう