Access64bitへの移行後、特定のフォームの起動が不安定になる

このQ&Aのポイント
  • Access64bitに移行後、特定のフォームの起動が不安定になりました。エラーメッセージもなく、Accessそのものが異常終了してしまいます。
  • 問題のフォームは、コマンドボタンで開くことができますが、3-4回目にようやく開くことができます。
  • アクセス32bitでは同様の不具合はありません。原因を特定するのが困難です。
回答を見る
  • ベストアンサー

Access64bitへ移行後、フォーム起動不安定

Access64bit移行後、特定のフォームの起動が不安定になりました。 3-4回目にようやく開くことができます。 ・開くことができない時は、エラーメッセージなし、Accessそのものが、異常終了しています。 ・一旦開いてしまえば、問題なく使用できます。 ・コマンドボタンで開きます。   DoCmd.OpenForm "フォーム名", acNormal, "", "", , acNormal ・データDBは、社内ネットワーク上のサーバにあります。各自のパソコンにあるAccessから、リンクテーブルで使用しています。 ・Access32bitでは上記不具合はありません。 エラーもなく、静かに異常終了してしまうため、原因の特定ができなくて困っています。 助言等お願いします

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

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

1.PCの機種は聞いていませんでしたね 2.各自のパソコンの全てで同じ現象ですか 3.異状なく起動するフォームもあるのですね 4.リカバリーはかけてみられましたか

nifu5656
質問者

お礼

お世話になっておりながら、反応が遅くなってしまいました。申し訳ありません。 >1.PCの機種は聞いていませんでしたね ・HP製 ELITEBOOK Core(TM) i5-10310U CPU @ 1.70GHz 2.21 GHz  実装 RAM 16.0 GB  64ビットWindows 10 Enterprise 20H2 19042.1237 ・HP製 ELITEDESK Core(TM) i5-10500T CPU @ 2.30GHz 2.30 GHz  実装 RAM 16.0 GB 64ビットWindows 10 Enterprise 20H2 19042.1237 >2.各自のパソコンの全てで同じ現象ですか 上記 両機種とも、各PCともに症状は同じです。発生頻度の違いはあるようですが、明確ではありません。 >3.異状なく起動するフォームもあるのですね  9割のフォームは異常なく起動します。特定のフォームに異常が発生します(各PC同じフォーム)  感覚ですが、処理の重いクエリーのフォームに発生しているようです。クエリー単独では問題なく  起動します。 >4.リカバリーはかけてみられましたか  OSのリカバリーでしょうか?  PCは一斉更新しています。全てを調査できませんが、30台程度の更新後PCに同じ症状が発生しています。  このため、各PC固有の問題ではないと思い、OSのリカバリーは実施していません。 現在も症状は改善していません。特定フォームを開くとき、1ー10回程度エラーの発生なく静かに異常終了を 繰り返し、その後開きます。一旦開けば、そのフォームを閉じ、再度開くときは、問題なく開きます。 アクセスアプリケーションを終了後、再度立ち上げて、上記のフォームを立ち上げた場合は、異常終了を繰り返し ます。 OS、アプリのバージョンアップで直らないかなと期待してしばらく様子見て、再び、質問しようと思います。 また、宜しくお願いします。ありがとうございました。

その他の回答 (7)

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

コロナ過の中お付き合いありがとうございます >acWindowsNormalに修正しましたが、症状は改善しませんでした。他に試すことが ◎自分の体験ですが、フォームのプロパティーでイベントの処理が外れていることがあります。  言われる現象と少し違いますが一度お試し下さい 【ナビゲーションウィンドウ内のフォーム名を右クリック】→【デザインビュー】 →【イベント】  ※イベント一覧の一つに「イベントプロシジャー」と記述あればこの右端の【…】の先に  Docmd.OpenForm "フォーム名"が記述されています。 蛇足ですが、【データベースツール】→【VisualBasicl】の流れでも  デザインビューは実行はありますが、あまりお勧め出来ません

nifu5656
質問者

補足

こんにちは 回答、ありがとうございました。 >【ナビゲーションウィンドウ内のフォーム名を右クリッ>ク】→【デザインビュー】 →【イベント】 >※イベント一覧の一つに「イベントプロシジャー」と記>述あればこの右端の【…】の先に >Docmd.OpenForm "フォーム名"が記述されています。 確認しました。 フォーム クリック時 のイベントには、何も記述はありませんでした。 Docmd.OpenForm "フォーム名" を記述してみましたが、 症状は改善しませんでした。 ”フォーム名"のクリック時のイベントに同じフォームを開く。Docmd.OpenForm "フォーム名"と記述するのはどのような場面で使うのでしょうか。教えてください。 PCの機種等は確認して、報告します。 何度も、ありがとうございます。

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

おはようございます >特定のフォームの起動が不安定になりました。  ①PCは特定できますか >・データDBは、社内ネットワーク上のサーバにあります。  【外部データ】→【新しいデータソース】を試しましたが、変化はありませんでした。   1回で開くこともあれば、5-6回目で開くこともあります。  ②ネットワーク環境は安定していますか   ルータの取替の必要はありませんか > DoCmd.OpenForm "フォーム名", acNormal, "", "", , acNormal   DoCmd.OpenForm "フォーム名", acNormal, "", "", , acWindowNormal   末尾のパラメータはacWindowNormalに代っています   DoCmd.OpenForm "フォーム名"    フォーム名だけでも良い  詳しくは下記URA参照 https://docs.microsoft.com/ja-jp/office/vba/api/access.docmd.openform

nifu5656
質問者

お礼

報告が遅れました。補足は1回しかできないないのでお礼に記入します。 acWindowsNormalに修正しましたが、症状は改善しませんでした。他に試すことがあれば、教えてください。何回も、ありがとうございます。

nifu5656
質問者

補足

ありがとうございます。 >①PCは特定できますか  64bitAccessインストールPC全てに同様な症状があります。 >②ネットワーク環境は安定していますか >ルータの取替の必要はありませんか  使用していて特にネットワークの不安定は感じません。  PC内蔵記憶装置にデータDBを移動して試しましたが、  やはり同様な症状を確認しました > DoCmd.OpenForm "フォーム名", acNormal, "", "", , acNormal >DoCmd.OpenForm "フォーム名", acNormal, "", "", , >acWindowNormal  明日試して、報告します。 64bitAccess使用者には、粘り強く起動を繰り返してとお願いしています。みなさん慣れたようですが・・なんとかしたいです。お手数をおかけしますが、宜しくお願いします。

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.5

> 他に試すことがあれば、教えてください。 最適化/修復をしてみてはいかがでしょう。

nifu5656
質問者

補足

返答、ありがとうございます。 最適化/修復してみましたが、変化はありませんでした。 「DBを閉じるときに最適化する」オプションにもチェックが入っていました。 他に試すようなことがありましたら、また、教えてください。宜しくお願いします。

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

今晩は、暑い日々でしたがCPUは熱に弱いようです エアコン充分でしたか、 風通しどうでしたか、卓上扇風機も効果あります

nifu5656
質問者

補足

周囲の環境は、25-27℃  湿度60-70% そこそこ換気もあります。人間にもパソコンにとっても大丈夫な環境と思います。

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

補足有難うございました 休み明けのコメントが楽しみです 回答№2の続きです。画像を二つ添付したかったのですが より正しくご理解頂く為オブジェクトのインポート画面を添付し, ここでの操作を記述します  【テーブル】→【すべて選択】 →【クエリ】→【すべて選択】 →【フォーム】→【すべて選択】 →【レポート】→【すべて選択】 →【マクロ】→【すべて選択】 →【モジュール】→【すべて選択】 →【OK】 のようにすべてのオブジェクトを選択の後[OK]でインポートが始まります 十数秒で終了します。

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

>特定のフォームの起動が不安定になりました。 自分は「特定のフォーム」ではなくファイルが開かなくなる事が年に1度くらいありますが 空のAccessファイルにコピーします。手順は下記の通りです。 原因はわかりませんが、ダメ元でお試しあれ 【外部データ】→【新しいデータソース】→【データソースから】→【Access】 →【コピー元のAccessファイル:添付図】→【OK】 →【全てのオブジェクト選択:データ、クエリ、フォーム、レポート】→【OK】

nifu5656
質問者

お礼

ありがとうございました。こんな方法もあるのですね。知りませんでした。週明けに試して、結果を報告します。今後とも宜しくお願いします。

nifu5656
質問者

補足

分かりやすい手順を教えていただき。ありがとうございました。 【外部データ】→【新しいデータソース】を試しましたが、変化はありませんでした。 その他、以下を試しましたが、やはり効果はありませんでした。 ・ネットワーク社内共有サーバにあるデータDBも【外部データ】→【新しいデータソース】 ・上記データDBを自分のパソコンにコピーして接続 1回で開くこともあれば、5-6回目で開くこともあります。 開いてしまえば、問題なく使用できます。 他にも好転する可能性のある対策があれば、教えてください。 今後とも宜しくお願いします。ありがとうございました。

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.1

開いた時に名前を付けて保存で新しくDBを作成してみてはいかがでしょう。 該当しないとは思いますが、一応 64 ビット版または 32 ビット版の Office を選択する https://support.microsoft.com/ja-jp/office/64-%e3%83%93%e3%83%83%e3%83%88%e7%89%88%e3%81%be%e3%81%9f%e3%81%af-32-%e3%83%93%e3%83%83%e3%83%88%e7%89%88%e3%81%ae-office-%e3%82%92%e9%81%b8%e6%8a%9e%e3%81%99%e3%82%8b-2dee7807-8f95-4d0c-b5fe-6c6f49b8d261?ui=ja-jp&rs=ja-jp&ad=jp

nifu5656
質問者

お礼

ありがとうございました。 名前をつけて保存はまだ試していませんでした。試して結果を報告します。今後とも宜しくお願いします。

nifu5656
質問者

補足

名前を付けて保存してみましたが、残念ながら変化はありませんでした。 その他、以下を試しましたが、やはり効果はありませんでした。 ・共有サーバにあるデータDBも名前を付けて保存 ・上記データDBを自分のパソコンにコピーして接続 他に試すことがあれば、教えてください。 今後とも宜しくお願いします。ありがとうございました。

関連するQ&A

  • 「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 」がないからだめなのでしょうか? すいません、助けてください。 よろしくお願いします。

  • フォームから別フォームを開くには?

    こんにちは。 Access2010を使っています。 開いているフォームから別のフォームを開きたいのですが、その後ろ側のみにワイルドカード(「*」マーク)を入れたいのですが、上手くいきません。 いろいろやってみましたが、「メモリ不足です」となってしまい、上手くいきません。下記コードにどのようにしてワイルドカードを入れたらよいでしょうか? DoCmd.OpenForm "開きたいフォーム名", acNormal, "", "[キー名]=[Forms]![開いているフォーム名]![キー名]", , acNormal ご教授よろしくお願い致します。

  • Access すべてのフォームを開く

    おしえてくださいm__m AccessにてWindowを最小化した後に現在開いているフォームを開くVBAを 作成しようとしていますがうまくいきません。 現在はWindowを最小化した後一つのフォームを開くVBAは下記の通り作成しました DoCmd.RunCommand acCmdAppMinimize DoCmd.OpenForm "メインフォーム", acNormal しかしながら現在開いているすべてのフォームをAccess Windowを最小化した後に 開くVBAはどのように記載すればいいでしょうか 皆さまのお知恵をかしてくださいm__m

  • Accessでコマンドから空のフォームを開くには?(初心者です)

    Access2003を使用して顧客名簿を作成しています。 コマンドボタン「新規入力」を押すと空のフォームが 開くようにしたいのですが、どのようにしたら良いのでしょうか? 一応、初心者なりに Private Sub コマンド4_Click() Dim namae namae = "個人住所フォーム" DoCmd.OpenForm namae, acNormal End Sub まではやったのですが、開いたフォームは名簿の一番最初の方の データでした・・・。

  • Accessの検索フォーム

    以前にも似たような質問をして、その時は解決したのですが、また同じようなことでつまづいて、以前の回答をみて、 そのとおりにやってるつもりなのに、できなくて…。 テーブル1とフォーム1・フォーム2があります。 フォーム1に入力された情報をもとに、テーブル1の内容を検索して、フォーム2に表示するものを作成しています。 テーブル1には「***.***.**.☆」(情報)という形の情報が入っています。 *の部分の桁数は固定で☆は不定形です。(テキスト形式) フォーム1に入力された情報は「(***.***.)**.*」(検索1)や「(***.***.)**.**」(検索2)などです。 ※()内は入力せず テーブル1の情報の9文字目以降と、フォーム1に入力された情報を比べたくて、以下のようなものを作成しました。 (多少省略等があります) condKensaku = "(Mid(Val(テーブル1.情報),9) between " & Val(Me!検索1.Value) & " and " & Val(Me!検索2.Value) & ")" wherecond = condKensaku DoCmd.OpenForm "フォーム2", acNormal, WhereCond これを実行すると 実行時エラー '2501': OpenForm アクションの実行はキャンセルされました。 と出て、デバッグを押すと、 DoCmd.OpenForm "フォーム2", acNormal, WhereCond の行が黄色になります。

  • ACCESS非表示でフォームのみ表示して起動したい

    ACCESS2010のオプションのカレントデータベースのフォームの表示を(表示しない)にして、AutoExecマクロから以下のMain()プロシージャを呼び出して 起動時にフォーム(メイン画面)を表示しています。 ----------------------------------------------- Function Main() As Integer 'メイン画面の表示 DoCmd.OpenForm "メイン画面", acNormal Main = 1 End Function ----------------------------------------------- このままでは、ACCESSファイル(.accdb)をダブルクリックして実行するとメイン画面とその背後にACCESSアプリケーション自体が表示されてしまいます。 そこで、Form_Openイベントプロシージャに ----------------------------------------------- Dim rc As Long rc = ShowWindow(Application.hWndAccessApp, SW_SHOWMINIMIZED) ----------------------------------------------- を記述したのですが、ACCESSアプリケーションは表示されなくなったのですが、フォーム(メイン画面)も表示されなくなってしまいました。 フォーム(メイン画面)だけ表示してACCESSアプリケーションは表示されないようにしたいのですがどのようにすればよいのでしょうか。 よろしくお願いします。

  • access2000表形式フォームから単票形式フォームで開きなおす方法

    access2000でDBをつくっています 表形式フォームのNoフィールドをダブルクリックして、クリックしたレコードのみを 単票形式フォームで開く。ということをしたいのですが、 表形式フォームのほうに Private Sub   No_DblClick(Cancel As Integer) DoCmd.OpenForm "単票形式", acNormal, , [No] = Me![No].Value, , acDialog End Sub とVBAを書いているのですが、 Noの値が3のところをクリックしてもNo=1のレコードが先頭に開けてしまい、 望むような結果が得られません。 本3,4冊調べてもよくわからないので、 アドバイスお願いします。

  • [Access2000] フォーム間で値の受け渡し

    フォームから、DoCmd.OpenFormを使って、 別のフォームを子画面として開くようにしています。 そのときフォーム間で、Functionの引数と戻り値のような感覚で 値の受け渡しをしたいと思っています。 値をわたす方は、OpenFormの引数のいちばん最後にある OpenArgsを使うことでうまく解決できたのですが、 値を返す方のやり方がイマイチわかりません。   DoCmd.OpenForm "フォーム名",,,,OpenArgs     (カンマの数が間違ってるかも…とりあえずテキトーです) という記述方法の他に、   DoCmd.OpenForm("フォーム名",,,,OpenArgs) という記述もできるようなんですが、そのようにすると 「=」をつけろ、というようなエラーがその場で出ます。 MsgBoxでも同じようなことが起こりますが、 MsgBoxだと「vbOk」やら「vbCancel」やらを返してくれるので OpenFormでも似たようなことができるのかな…と思うのですが。

  • アクセスのマクロ

    友人がアクセスで作ったマクロです。3行目で止まってしまいます。どこが悪いのでしょうか。(私は全くの素人でわかりません) Private Sub 記載事項入力ボタン_Click() DoCmd.Close acForm, "初期画面", acSaveYes DoCmd.OpenForm "入力フォーム", acNormal ←ここ End Sub

  • Accessのフォームだけを表示するには?

    Accessのフォームを使って処理を行う時に、Access自身のバックグラウンドを表示しないでフォームのみ表示して処理するというようなことはできるのでしょか? たとえば、Accessのインスタンスは非表示にしてフォームだけみえるようにする。 WSHで Set accApp = CreateObject("Access.Application") accApp.Visible = False accApp.OpenCurrentDatabase "C:\業務01.mdb" accApp.DoCmd.OpenForm "F010_情報表示フォーム", , , , acFormReadOnly accApp.Forms.[F010_010_情報表示].Visible = true などとして[F010_010_情報表示]フォームのみを表示するなどということはできるのでしょか? 実際これでは、何も表示されません。

専門家に質問してみよう