Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2016)
今まで動いていたアクセスソフトが新しいパソコンで動かず、とても困っています
投稿日時: 21/08/17 15:16:01
投稿者: kumi

初めて投稿します。
 
今まで動いていたソフトが新しいパソコンで動かず、とても困っています。
 
新しいパソコンの環境は、
・Win10 Home Ver2004(20H1) 
・AccessRuntime2016(無料のソフト)
です。
ソフトはMsAccess2016で作成したものです。
 
フォームを開くためのボタン、閉じるボタンを押すと、エラーが出ます。
 
エラー内容は、
「イベントプロパティに指定した式 読み込み時でエラーが発生しました。
 Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときに
 エラーが発生しました。
 ・マクロ名、ユーザー定義関数名、「イベントプロシージャ」以外の式が指定されています。
 ・関数、イベント、マクロの評価でエラーが発生しました。」
という長い文が出ます。
 
調べてみると、Win10のVer2004(20H1)とMsAccessについて
対応策はいくつかあり、一通り試してみましたが、エラーは消えませんでした。
 
ネット上で見つけた対応策:
・エラーの出ているフォームをコピーして作り直し、最適化。
 ・アクセスランタイムの互換性モードのトラブルシューティングの設定
 ・NLSバージョンを6.2に変更(ただし、ソフトには半角カタカナと半角ひらがなはつかっていません)
 
その他、試したみたこと:
 ・Win10のバージョンアップ: 最新の「21H1」にしてみる。
 ・Win10を21H1にバージョンアップした状態で、
   AccessRuntimeのバージョンを変えてみる(356,2013, 2010など)
   (その都度、AccessRuntime互換性トラブルシューティングを設定
 ・テーブル、テーブルの項目、フォーム名を日本語からアルファベットに変更。
 
Windows10のバージョンを旧の1909に落としたときのみ、エラーなしで動きましたが、
いつまでも旧バージョンではおいておけません。
なんとかして、Win10最新(21H1)とAccessRuntimeで動かしたいので、ご教示いただければ幸いです。

回答
投稿日時: 21/08/23 09:27:35
投稿者: Suzu

回答がつきませんね。
 
基本、ランタイム絡み の問題は 仰る様に、OSや、作成した Access のバージョンにより
再現できない事も多く、エラー内容のメッセージと原因が直結しない事もあり、回答がしづらいです。
 
 
今回のメッセージ

引用:
 ・マクロ名、ユーザー定義関数名、「イベントプロシージャ」以外の式が指定されています。
 ・関数、イベント、マクロの評価でエラーが発生しました。」

を信じるのであれば、
 
フォーム名、テーブル名、フィールド名 のみではなく
 オブジェクト名、プロシージャ名 を全て、半角アルファベット、半角数字 に変えます。
 
 
まずは、
引用:
フォームを開くためのボタン、閉じるボタンを押すと、エラーが出ます。

との事ですので、そのイベント周辺の オブジェクト名、プロシージャ名 から確認してみてください。
(と言っても、全ての オブジェクト名・プロシージャ名を 変えた方が無難でしょうけど)
 
 
それと、Windoes 板 の同じ質問は閉じておいてください。

回答
投稿日時: 21/08/23 13:03:29
投稿者: ライスマン

Microsoft Office が、32ビットアプリケーションと64ビットアプリケーションのどちらでインストールされているかを確認する必要があります。
https://access-cloud.hatenablog.com/entry/runtime

回答
投稿日時: 21/08/31 13:42:10
投稿者: joyoung

見て、集めて、楽しむ価値のあるとても良いウェブサイト。
https://www.thepornsitelists.com

投稿日時: 21/09/02 15:53:42
投稿者: kumi

Suzu様
 
Windows版の方にある同じ質問は、閉じました。
ご指摘ありがとうございました。
 
ライスマン様
 
確認したところ、オフィス、ランタイムともに64ビット版をインストールしていました。
 

回答
投稿日時: 21/09/03 16:01:42
投稿者: Suzu

kumi さんの引用:
Windows版の方にある同じ質問は、閉じました。

 
ありがとうございます。
 
 
全ての オブジェクト名 を変更した方が良いのは、その通りなのですが
 
引用:
フォームを開くためのボタン、閉じるボタンを押すと、エラーが出ます。

 
このエラーがどの段階で起きているのかの確認をしてみましょう。
特定フォームの、特定 コントロールの Ckick時イベントにて発生しているのであれば
 
そのコードの内容を
 ・動作させたいコードから 少しづつ 削除
 ・ Private Sub xxx_Click 〜〜 End Sub の状態 (〜〜は何もない状態)から コードを足してみる
 ・特定位置に、MsgBox "1"、を入れ、数ステップ後 に、MsgBox "2" の様にして
  コードの進捗が判る様にする
 ・上記 MsgBox"1" の様に直接埋め込むのではなく
  行ラベルを埋め込み、Erl 関数を使い エラーの発生する行ラベルのブロックを 表示させる
 
   ※参考
  https://excel-ubara.com/excelvba4/EXCEL_VBA_415.html
 
 
の様な方法を使い、特定して、どのコードが原因なのかを特定し対策をとります。
 
なんにしても、そのメッセージだけでは、回答者側として原因は判りませんので、
問題部分を特定しましょう

投稿日時: 21/09/03 16:31:41
投稿者: kumi

Suzu様
 
ご回答ありがとうございます。
 
最初の状況と試してみたことを、もう少し詳しく報告します。
 
・最初の状況:
 今まで動いていたプログラム:どのボタンを押しても同じエラーで動きませんでした。
 自分がプログラムを書いていない、もともとの機能として付いている「×閉じる」ボタンを押しても同じエラーが出ました。
 
・試したこと例:
 全て(オブジェクトを含む)アルファベット表記でまっさらな状態から小さいプログラム(データベース)を作ってみました。
 
 フォームが開く操作のマクロを作成しました。→エラーなしでフォームが開きました。
 
 マクロを使わず、下の簡単なコードで同じフォームを開こうとすると、
 エラーでフォームが開きませんでした。
   Private Sub cmd_Open_Click()
       DoCmd.OpenForm "F_test", acNormal
   End Sub
 
このテストのあと、あきらめてバージョンダウン(Windows10 1909)にしました。
 
 

投稿日時: 21/09/15 09:46:05
投稿者: kumi

 
問題は解決していませんが、質問を閉じようと思います。
皆様、ありがとうございました!