- ベストアンサー
Access2002:コマンドボタンがうまく設定できません
使い始めてから2週間目の初心者です。よろしくお願いします。 コマンドボタンウィザードでフォーム上にコマンドボタンを作成したのですが、クリックしても反応しません。 初めは問題なく作成できたのですが、突如としてうまく動作するボタンが作成できなくなってしまいました。 ウィザードで作成した「レコードの検索」ボタンですら無反応です。 あるフォームのイベントプロージャ(?)は以下のようになっています。 (★はコメントです) Option Compare Database Private Sub テスト15:09_Click() End Sub Private Sub 部番一覧→部番詳細フォーム_Click()★←正しく動作しているボタン★ On Error GoTo Err_部番一覧→部番詳細フォーム_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "部番詳細表示" stLinkCriteria = "[部番]=" & "'" & Me![部番] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_部番一覧→部番詳細フォーム_Click: Exit Sub Err_部番一覧→部番詳細フォーム_Click: MsgBox Err.Description Resume Exit_部番一覧→部番詳細フォーム_Click End Sub←★この下に区切り線が表示されません★ Private Sub テスト15:09_Click()★←無反応のボタン。文字色赤になっています★ On Error GoTo Err_テスト15:09_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_テスト15:09_Click: Exit Sub Err_テスト15:09_Click: MsgBox Err.Description Resume Exit_テスト15:09_Click End Sub 単純ミスだと思うのですが、原因がわかりません。 どなたかわかりやすく教えいただけないでしょうか。ちなみにVBの知識は皆無です。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> End Sub←★この下に区切り線が表示されません★ > Private Sub テスト15:09_Click()★←無反応のボタン。文字色赤になっています★ ということですと、「テスト15:09」という名前のコントロールの、名前の付け方がひっかかっているのではないでしょうか?特に「:」の部分です。 通常、コントロールの名前に記号など(%、”、$、&、!、:、。、などなど…)を使うと今回の例のように「何かの拍子に」文字色赤になって動かなくなります。 何かの拍子…というのは、mdbファイルを別のパソコンにコピーしてコピー後のmdbを開いたり、強制終了させておかしくなったり・・・などです。 直すには、いったんプロシージャを消して、mdbファイルを起動しなおし、もう一度コントロールのプロパティの該当するイベントから入りなおし、プログラムコードを書くことです。いったんmdbを起動し直せば、コードを書くのはコピペでOKです。 今回の場合ですと、「Private Sub テスト15:09_Click()」から最後の「End sub」までを全ていったん消します。で、mdbを再起動させたあとに、もう一度コントロールのプロパティからクリックイベントを開いて、 On Error GoTo Err_テスト15:09_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_テスト15:09_Click: Exit Sub Err_テスト15:09_Click: MsgBox Err.Description Resume Exit_テスト15:09_Click の部分をコピペします。 ************************************ ただ、コントロール名が同じままだと、この問題は再度繰り返し出てきます。 なので、この際、コントロールの名前を変えてから(:を使わない名前に変えてから)、コードをコピペするといいと思います。 また、このようなトラブルは、連結フォーム(連結テキストボックス)にありがちなトラブルですので、テーブルを作る時点で、フィールドの名前の付け方に注意しないといけない…ということにもなります。 まったくの見当違いでしたらごめんなさい。
その他の回答 (1)
- ryuu001
- ベストアンサー率61% (46/75)
同じ名前のSubがあるのが原因のようです。 >Option Compare Database > >Private Sub テスト15:09_Click() > >End Sub この部分のSubが呼ばれているようです。 >Private Sub テスト15:09_Click()★←無反応のボタン。文字色赤になって>います★ そのため、ここがエラーを表示する 文字色赤になっているのでしょう。
お礼
上記の箇所も削除し、#1のかたのアドバイスに従い作成しなおしたらうまく動作するようになりました。どうもありがとうございました。
お礼
やはり文字の種類に制限があったのですね。 とりあえず無反応のプロシージャを消して、特殊文字が入らないコントロール名で設定しなおしたらちゃんと動作するようになりました。 どうもありがとうございました。