コントロールのイベントに変な文字が入ってしまった

このQ&Aのポイント
  • コントロールのイベントに変な文字が入ってしまったため、フォームを開く際にエラーメッセージが表示されます。
  • この問題は、マクロが存在しないか、新しいマクロが保存されていないことが原因かもしれません。
  • コントロールのイベントに「はい」という文字が入っている可能性がありますが、コントロールが多いため目視では確認できません。
回答を見る
  • ベストアンサー

コントロールのイベントに変な文字が入ってしまった

アクセスのテーブルに紐付いたフォームを開こうとすると、 「‘はい’マクロを見つけることができません。 マクロ (またはマクロ グループ) が存在しないか、 新規マクロが保存されていません。 “マクロ グループ名.マクロ名” という構文でマクロ名を指定するときは、既存のマクロ グループ名を指定しる必要があります。」 と言う表示がでます。 http://support.microsoft.com/kb/867560/jaこれと同じ内容です。 でもレプリカではありません。 多分、コントロールのどこかのイベントに 「はい」という文字が入っちゃってるのだと思うのですが コントロールが多すぎて、目で確認しても探せません。 どのコントロールがおかしいかわかる方法はありますか?

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

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.1

手っ取り早く解決する方法として 「はい」という無害のマクロを作成する ^^; 例えば、2007 までなら  条件 : 0  アクション : メッセージボックス  メッセージ : 「はい」 が呼ばれた! とか。 ほぼ確実に見つけ出すには「データベース構造の解析」 (2007の場合です。他のバージョンでは多少違った名称かもしれません) 2003以前なら、メニューバーの [「ツール] - [解析] - [データベース構造の解析] (少し異なるバージョンもあったような?)。 2007以降なら、リボンの [データベースツール]タブ、 [解析]グループ、 [データベース構造の解析] 以下、手順です。 1.「データベース構造の解析」ダイアログを開く。 2.「フォーム」タブを選択し、目的のフォームにチェック。 3.[オプション]ボタンをクリック。  ※オプションを変更すると次回からその設定がデフォルトになりますので    最初の値をメモしておいて後で元に戻すと良いでしょう。 4.「フォーム定義の印刷」ダイアログでオプション値を設定。  ・フォームの情報はすべてオフ。  ・セクション、コントロールの情報は「名前、プロパティ」を選択。  ・[プロパティ]ボタンをクリックし、「プロパティの印刷」ダイアログを開く。  ・「イベントのプロパティ」のみを選択し、OK をクリック。  ・あとは、OK、OK でプレビュが表示される。 5.「はい」 が設定されているコントロール(とイベント)が特定できます。 なお、これでは、フォームのイベントは表示されませんので、 フォームは別途、プロパティのイベントタブで確認してください。 フォームだけなら簡単ですよね?

sdfkhewrqa
質問者

お礼

ありがとうございます。

関連するQ&A

  • M_F_MAIN マクロをみつけることが出来ません

    ダウンロードソフトを開くと マクロ(またはマクログループ)が存在しないか、新規マクロが存在しません。マクログループ名マクロ名という構文でマクロを指定するときは、既存のマクログループ名を指定する必要があります。というメッセージが出ますが・・・・さっぱり何のことわかりません。わかる方どうか教えてください。よろしくお願いします。

  • access2003 コントロールの指定方法

    ACCESS2003です。 フォーム上のあるコントロールを再クエリしたいのですが、 マクロの中で指定するときそのコントロールの指定方法が分かりません。 自分のフォームの中のコントロールを指定するには、マクロの中でアクション とコントロールを次のように指定すればできるのですが、     再クエリ    コントロール これが他のフォーム上でのコントロールを指定するときマクロ上でどのように 指定すればいいでしょうか。     再クエリ    forms![フォーム1]![サブフォーム1]![コントロール1] のように指定して試したのですが、エラーになってしまいました。 よろしくお願いします。

  • 不特定多数のコントロールを発生させる方法

    VBAなんですが、最悪VBでも構いません。 コーディングにより、Access中のレコードの数だけ、ラベルやコマンドボタンをフォーム上に作成したいのですが、どうすればいいのかわかりません。 レコードの数なので多数になる可能性が高いので、配列にしようと思っているのですが、コマンドボタンも含まれているため、そのクリックイベントも作らなければならないのです。(イベント内容は同じ。違いはインデックス番号の認識のみ) しかもVBAだとコントロールの配列が作れないので困っています。どうすればいいでしょうか? コントロールの追加にcreatecontrol関数を使うとフォーム名にcreateformを使わないといけないらしく、フォームを新しく作らないといけないみたいでイベントまでは埋め込めそうにありません(既存のフォーム名でするとデザインがどうとかこうとかでエラーが出ます)

  • ファイルを開くとエラーが起こり、イベントが機能しな

    ファイルを開くとエラーが起こり、イベントが機能しないです。 オフィス2003を使っていて、mdbファイルです。 (私が作ったファイルではありません) アクセスを起動したら、画像のようなダイアログが表示されました。 ------------------------------ イベントプロパティに指定した式 クリック時 でエラーが発生しました Returnに対応するGoSubがありません。 *マクロ名、ユーザー定義関数名 {イベントプロシージャ}意外の士気が指定されています。 *関数、イベント、マクロの評価でエラーが発生しました。 このエラーは、Microsoft Office Access でイベントのロジックの場所を評価できないために イベントを実行できなかった場合に発生します。 たとえば、フォームの "OnOpen/開く時" プロパティが =[フィールド] に設定されている場合、イベントが開始されたときに Access ではマクロまたはイベントの名前が実行対象として予期されるため、このエラーが発生します。 ------------------------------ と表示されました。(1回限り) 「すべてのAccessオブジェクト」を見ると ・テーブル ・クエリ ・フォーム ・モジュール があるので、モジュールが原因だと思います。(マクロはない) フォームは一応開いたのですが、コマンドボタンやコンボボックスをクリックすると今度は違うエラーが出ました。 内容は、 ------------------------------ 「イベント プロパティに指定した式 読み込み時 でエラーが発生しました。 オブジェクトまたはクラスがこのイベントセットをサポートしていません。 *マクロ名、ユーザー定義関数名 {イベントプロシージャ}意外の士気が指定されています。 *関数、イベント、マクロの評価でエラーが発生しました。 プロパティまたはメソッドにアクセスしようとして、Visual Basic for Applications (VBA) で問題が発生しました。次のいずれかの問題である可能性があります: 参照が見つからない。 見つからない参照を復元するには、マイクロソフト サポート技術情報の記事 283806 を参照してください。 式が正しく指定されていない。 イベント プロパティで使われるすべての式が正しく指定されているかどうか確認してください。 モジュールでユーザー定義関数が sub または private 関数として宣言されている。 式でユーザー定義関数を解決できるのは、ユーザー定義関数が次のいずれかの関数として宣言されている場合のみです: モジュール内の public 関数 カレント フォームまたはレポートのコード モジュール内の public または private 関数 Access のセキュリティが "中" または "高" に設定されていて、Microsoft Jet 4.0 SP8 アップデートがインストールされていない。 セキュリティが "中" または "高" に設定されている場合、Access が正しく機能するには、最新のバージョンの Jet 4.0 がインストールされている必要があります。Windows Update で最新のバージョンの Microsoft Jet を入手してください。 ------------------------------ との事です。(添付参照) ファイルを一度閉じて開きなおしたら、最初のエラーは表示されなくなりましたが2回目のエラーは表示されます。 VBE画面を開いて、デバッグ→ファイル名のコンパイルを実行しても、何もエラーになりません。 全てのイベントを実行しようとすると(どnのコマンドボタンを押しても)同じエラーが出ます。 VBAコードにブレークポイントを設置しても、イベントが発生されないため、ブレークポイントに辿り着けません。 全てのVBAコードをコメントブロックしてもエラーになります。 どうやって治せば良いでしょうか? ご教授よろしくお願いします。

  • Access フォームOpenイベントでエラー

    いつもお世話になります。 Windows2000(サービスパック4)/Access2000で開発していますが、フォームイベントのOpen(Load時でも同様)を実行させるとエラーになり以下のようなメッセージが表示されます。 ----------------- ベントプロパティに指定した式 開く時 でエラーが発生しました:MicrosoftAccessがOLEサーバーまたはActiveXコントロールを通信しているときにエラーが発生しました。 ------------------ MSNのオンラインサポートに似たような症状に対する対処方法があったのでやってみたのですが改善されませんでした。 http://support.microsoft.com/default.aspx?scid=kb;ja;880889 どなたか同じ症状で、改善された方はいらっしゃいませんか? 教えてください、非常に困ってます。

  • なぜエラーになるのでしょう?アクティブコントロール

    ちょっと変なやり方かもしれないのですが、都合上こうやりたいので教えてください。 フォーム1の中にフォーム2を入れてサブフォームとして フォーム2の中にコマンドボタンを一つ置きました。 そのコマンドボタンを押した時に、そのコマンドボタン名を取得したいのですがうまくできません。 フォームは20個ぐらいあってこれと同じ動きをしたいので、 フォームモジュールには Private Sub コマンド0_Click() Call アクティブコントロール名を取得する End Sub として、 標準モジュールにコードは書いています。 Sub アクティブコントロール名を取得する() Dim フォーム As String フォーム = Screen.ActiveForm.Name MsgBox "アクティブコントロール名" & Forms(フォーム).ActiveControl.Caption End Sub にすると、オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)になります。 そもそも、フォーム = Screen.ActiveForm.Nameの時点で、フォーム1になっています。 実際のコマンドボタンはフォーム2にあるのに。 なので、無理矢理 MsgBox "アクティブコントロール名" & Forms("フォーム2").ActiveControl.Caption にしたら、 実行時エラー2450 マクロの式またはVisualBasicコードで参照されている'フォーム2'が見つかりません。 という違うエラーになりました。 Sub アクティブコントロール名を取得する() Dim フォーム As String フォーム = Screen.ActiveForm.Name Forms("フォーム2").SetFocus MsgBox "アクティブコントロール名" & Forms("フォーム2").ActiveControl.Caption End Sub にすればいいのかな?と思ったら Forms("フォーム2").SetFocusでアウトでした。 もともとはサブフォームのコントロールから発信したイベントなのに、 サブフォームのコントロールの値が取れないのでしょうか? 実際のmdbファイルではコマンドボタンではなくテキストです。 ご回答よろしくお願いします。

  • MSComm コントロールのエラーについて

    ACCESS2003で開発をしています。 MSCommコントロールを使用してデータの送受信をしている既存のプログラムを修正しようと、 自分のPCでプログラムを見てみると、 コントロールが空白になってしまいます。 実行しても、通信のところでエラーが出てしまいます。 コントロールを貼りなおそうと、 コントロールの選択から Microsoft Communications Control, Version6.0を貼り付けても 「Microsoft Office Access では、この ActiveX コントロールはサポートされていません。」 と出てしまいます。 ネットで調べてみたところ、KB960715, KB973346 がインストールされている場合は、 アンインストールすると書いてありましたが、 プログラムの追加と削除から調べたところ、これらはありませんでした。 また、VB6.0をインストールすると動くようですが、 インストールされていない別の端末でエラーは出ずに動いています。 他に考えられる原因は何があるのでしょうか。 ヒントになることでもよいのでご教授いただければ幸いです。

  • フォームモジュール イベントが発動しない半角→全角

    コマンドボタンのコントロール名に「カード」(←これは半角です)とつけて、クリックイベントのプロシージャーを紐づけようとしたら、 Private Sub カード_Click() End Sub になってしまい、そのコマンドボタンをクリックしてもイベントが発生しません。 Private Sub カード_Click()の部分にブレークポイントを設置しても、通過されません。 都合上全て半角でコントロール名をつけてしまったため、コントロール名を変えたくないのですが VBAのフォームモジュールで「カード」(←これは半角です)とすると、 勝手に全角になってしまうのですが、 この機能を止める方法はありますか?

  • ActiveX コントロールの初期化

    Excel2010のフォームにOCXコンポーネントを追加し、Excelを起動すると 「このアプリケーションは、安全でない可能性のある ActiveX コントロールを 初期化しようとしています。 このドキュメントの提供元が信頼できる場合は、[はい] をクリックしてください。 コントロールはドキュメントの設定を使用して初期化されます。 」 というメッセージが表示されます。 メッセージを非表示にする方法をないでしょうか? Office2003では、「Forms3 および ActiveX 初期化」で対応できました。 http://support.microsoft.com/kb/827742/ja Office2010で、同様の方法で設定しても非表示になりませんでした。 Office2010では、設定方法が変わってしまったのでしょうか?

  • ACCESSエラー「モジュールがありません」

    ACCESS2000でテーブルとフォームを作っていたら下記のエラーメッセージが出てきました。 「実行時エラー'2001';直前の操作はキャンセルされました。」 その後、 「イベントプロパティに指定した式 クリック時でエラーが発生しました:モジュールがありません。※マクロ名、ユーザー定義関数名、[イベントプロシージャ]以外の式が指定されています。※関数、イベント、マクロの評価でエラーが発生しました。」 というメッセージもでてきました。また、フォームが開かなくなり誤作動をし始めたのですが原因がわかりません。どなたか回避策をご存知ないでしょうか?

専門家に質問してみよう