Access2002のコマンドボタンでエラー

このQ&Aのポイント
  • Access2002のフォームに配置したコマンドボタンがエラーを出して開けなくなる問題が発生しています。
  • 初心者向けのAccess参考書籍やウェブサイトを教えてください。
  • Accessの仕組みは一通り理解しているが、顧客管理などの具体的な業務を行うためのステップアップ方法を知りたいです。
回答を見る
  • ベストアンサー

Access2002 のコマンドボタンでエラー

Access2002でフォームを利用して表紙を作ろうとしているのですが、コマンドボタンを配置してフォームを開けるようにしたいと思っています。 クエリーも開けないので一度そのクエリーのフォームをつくりそれを開くためのコマンドボタンを用意しました。 ところがボタンを配置するごとの確認していくと途中でエラーが出てフォームを開けなくなります。 すると今まで開けたフォームも同様に開けなくなってしまいます。 Accessを使い始めたばかりの初心者ですが、どなたか教えて下さい。 また、Accessの仕組みは大体わかったのですが、顧客管理や商品管理など行ううえでステップアップしやすい参考書籍・webなどありましたら是非教えて下さい。 宜しくお願いします。

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

  • ベストアンサー
回答No.3

ボタン作成にコントロールウィザードを使ってますか…? フォームにボタンを置くとコマンドボタンウィザードが出てきて、 それでフォームの操作→フォームを閉じる…のような処理をしてますか? コントロールウィザードを使ってボタンを作ると、 自動的に「フォームを閉じる」VBAのプログラムを作ってくれますが、 ボタンを削除しても、このプログラムは削除されません。 "Private Sub 表紙フォームを閉じる_Click()" で始まるプログラムがいくつかあるのではないでしょうか? 1.フォームをデザインビューで表示→「表紙フォーム閉じる」ボタンのプロパティを表示。 2.先ほどと同じようにイベントプロシージャを開く。▼→[...] 3.プログラムが表示されたら "Private Sub 表紙フォーム閉じる_Click()" が   2箇所以上ないか確認してください。 4.2箇所以上あれば、1箇所を残して "Private Sub 表紙フォーム閉じる_Click()" から   "End Sub"までを削除します。 この「2箇所以上」ですが、いままでshockerさんが「表紙フォーム閉じる」という名前のボタンを作った数だけあると思います。 上から下までじっくり眺めて探してみてください。 >この後他のボタンを押しても同じエラー表示が出てしまいます。 ということですが、これも同様です。 その "エラーが出るボタン名_Click()" がいくつもありませんか…? その場合も上と同じように、1箇所を残して"Private Sub エラーが出るボタン名_Click()" から "End Sub"までを削除して下さい。

shocker
質問者

お礼

本当に何度も有難うございます。 >"Private Sub 表紙フォームを閉じる_Click()" で始まるプログラムがいくつかあるのではないでしょうか? おっしゃるとおりでした。 ご指示通りプログラムを削除してボタンを作り直したらうまくいきました! しかし、なぜはじめにエラーが出たんでしょうか? やはり無反応だったときに既に完成していたが、たまたま動かなかったとか・・・? そもそもこの「イベントプロージャー」というやつを理解するにはVBAまで勉強しないとだめということですよね? できればもう一度だけお返事をいただけるとうれしいです。 とにかくまず教えて頂いたwebでまず勉強してみます。 本当に有難うございました。

その他の回答 (3)

回答No.4

>しかし、なぜはじめにエラーが出たんでしょうか? >やはり無反応だったときに既に完成していたが、たまたま動かなかったとか・・・? 無反応、ということは… プログラムに書かれたボタンの名前と、実際のボタンの名前が違ったとか…? ウィザードでボタンを作った後、ボタンの名前だけ変えませんでしたか? そうすると、新しい名前になったボタンの名前が含まれるプログラムがないわけで、 無反応になってしまうかな…という気がします。 >そもそもこの「イベントプロージャー」というやつを理解するには >VBAまで勉強しないとだめということですよね? マクロを使う方法もあり、その方が簡単だという人もいます。 私はVBAの方が好きなのでVBAを使ってますが…。 (思いついたときにチョコチョコっと書き足せるので…^^;) まずは今回のようにボタン(開く、閉じる、検索etc.)を作るとか、 カーソルがあるところの色を変えるとか小技を楽しんでいると、 いつの間にかいろいろできるようになって楽しいですよ! ご紹介したサイトではマクロもVBAも扱ってますから、 両方使ってみてご自分にあった方を使っていけば良いかと…。 私もまだまだ勉強しなくては! それではご検討をお祈りしております。

shocker
質問者

お礼

何度もお付き合い頂き有難うございます。 無反応の原因は解らずじまいですが、同じようなトラブルに遭遇したらこの「イベントプロージャー」を確認してから削除などするようにしたいと思います。 今回の簡単な(私にとっては難しいのですが)問題が解決しただけで何だか楽しい気分です。 また、ご紹介いただいたURLも今みていますが、解りやすくますますAccessにはまりそうです。 この度は本当に有難うございました!!

回答No.2

#1です。 >ただ表紙を閉じるためのボタンを入れたのですがボタンを押しても表紙フォームが閉じません。 フォームをデザインモードで開いて、閉じるボタンを右クリック→プロパティを開きます。 イベントタブの "クリック時" にカーソルを合わせると、▼ボタンと...ボタンが出ますよね? まず、▼ボタンを押して[イベントプロシージャ]を選び、そのまま...ボタンを押します。 そうすると、 ---------------- Private Sub コマンド0_Click() End Sub ---------------- という画面が出ます。 (コマンド0の部分は違うものになっているかもしれません。) そこを、 ---------------- Private Sub コマンド0_Click() DoCmd.Close End Sub ---------------- のように書いてフォームを保存してください。 これでどうでしょうか?

shocker
質問者

お礼

何度もすいません。 ボタンを作り直したらエラーメッセージが出るようになりました。 内容は下記の通りです。 ------------------------------------------------ イベント プロパティーに指定した式 クリック時でエラーが発生しました:名前が適切ではありません:表紙フォームを閉じる_click  *マクロ名、ユーザー定義関数名、「イベントプロージャー」以外の式が指定されています。 *関数、イベント、マクロの評価でエラーが発生しました。 ------------------------------------------------ 教えていただいた「イベントプロージャー」のところは下記のとおりになっていました。 ---------------------------------------------- Private Sub 表紙フォームを閉じる_Click() On Error GoTo Err_表紙フォームを閉じる_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(-30616) & ChrW(32025) DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_表紙フォームを閉じる_Click: Exit Sub Err_表紙フォームを閉じる_Click: MsgBox Err.Description Resume Exit_表紙フォームを閉じる_Click End Sub ------------------------------------------------ この後他のボタンを押しても同じエラー表示が出てしまいます。 閉じるボタンを削除してもエラー内容は変わりません。 何度もすいませんが宜しくお願いします。

回答No.1

こんにちは。 エラーが出るとのことですが、そのエラーはどのようなものでしょうか? なにかエラーメッセージは出ませんか? > 顧客管理や商品管理など行ううえでステップアップしやすい参考書籍・webなど… ご存知かもしれませんが、「魔法使いの開発工房」はとても読みやすくわかりやすいですよ。 Access2002とのことですが、97のコーナーも2000のコーナーも役に立つと思います。

参考URL:
http://www.mahoutsukaino.com/
shocker
質問者

お礼

早速の回答有難うございます。 すいません、何度かやり直していたら動くようになりました。(原因は不明です・・・) ただ表紙を閉じるためのボタンを入れたのですがボタンを押しても表紙フォームが閉じません。 エラーメッセージも出ず、無反応の状態です。 もし解れば教えて下さい。 参考URL有難うございます。 これからじっくり見てみます。

関連するQ&A

  • ACCESS コマンドボタンが使えない・・・

    フォームに配置したコマンドボタンが「現在このアクションを実行できません」のメッセージが出て使えなくなります。 マクロを割り当てて作ったコマンドボタンも同様で、「他の作業を実行しているためにこのアクションを実行できません・・」とメッセージが出ます。 最初、フォームを開いたときは問題なく使用できます。フォーム上のコンボボックスに入る値を、クエリから拾っているのですが、その値を別フォームで新規登録しようとするときに発生するみたいです。 他の作業を実行中とありますが、何を実行中で止まってしまうのか、調べる方法はないでしょうか? 良いお知恵をお貸し下さい。お願いいたします。

  • アクセス2003 フォームのボタンをクリックしたら空白データを抽出したい

    皆様、お世話になります。 アクセス2003で講習会受講管理をしたいと考えています。 クエリには[氏名][所属][受講日]があります。 このクエリを元にフォーム(一覧表形式)を作りました。 このフォームにコマンドボタンを配置して、コマンドボタンをクリックしたら[受講日]が空白のデータのみフォームで表示したいのですが、どのようにしたらいいのでしょうか。 教えて下さい。

  • Access2000でボタンを押した際、各タブコントロールのタブを開くには・・・

    こんにちは。 アクセス2000でメニューフォームに幾つかのボタンを作っております。 また別のフォーム(顧客管理という名前)でタブコントロールを配置し(5ページ) それぞれのタブには名前を付けております。1ページ目から「顧客情報」 、「顧客当日データ」、「顧客契約内容」、「顧客履歴」、「顧客領収」の順です。 メニューフォームのボタンを押した時、この顧客管理フォームのタブ コントロールをそれぞれを開くにはどのようにインベントを書けばいい のでしょうか? イメージ的には、(1)のボタンを押した時「顧客情報」のタブを開く。 (2)のボタンを押した時「顧客当日データ」、(3)のボタンで・・・の感じです。 宜しくお願いします。 Private Sub コマンド78_Click() DoCmd.OpenForm "顧客管理"・・・??? End Sub

  • Accessの再計算ボタンについて

    Accessを使って、販売管理を行っているのですが 親フォームA・・・売上日や顧客名を入力 サブフォームB・・・売上明細を入力(親フォームA内に配置) というような作りになっています。 親フォームA内には表示しているレコードを そのまま印刷できるように、マクロにてレポートを 開くボタンを設置していますが、 たとえば、親フォームA内の売上日などを変更し レポートボタンを押したとき、このままでは直前に 行った親フォームA内の内容が反映されておらず 新たに「=Forms!親フォームA.Requery」としたボタンを 設置しました。 しかし、このボタンを押すと、レコード番号が1に戻って しまってから再クエリ(再計算)されてしまい、 思った通りに動きません。 現在表示しているレコードを表示したまま再クエリを 行う為には、どのように記述するのでしょうか? どなたか教えて頂けませんでしょうか。 宜しくお願い致します。

  • access の 閉じるボタンを無効に出来ますか

    お世話かけますがよろしくお願いします。 ACCESSファイルの「起動時の設定」をメニューフォームにしています。 メニューフォーム上にコマンドボタンを配置して、クリックイベントで 次の「次フォーム」を開くようにしています。 「次フォーム」上に閉じるコマンドボタンを配置して、この次フォームのみを閉じるようにしていますが、 右上隅にある閉じるアイコン?をクリックすると全てが終了しますので このアイコンを無効にしたいのですが

  • Accessのコマンドボタンについて

    Access97を使用しています。 Accessのレポート(単票形式)を作成したのですが、画面上のコマンドボタンをクリックしようとしてもカーソルが「虫眼鏡マーク」のままで作動しません。 超初心者なので「フォーム」と「レポート」の区別が今一つ付いていないのですが、「レポート」上ではコマンドボタンは使えないのでしょうか? やりたいことは、 (1) コマンドボタンを押すと、入力用フォームから該当するレコードの単票形式レポートが出力されるよう、設定したい(いちいち該当ページ番号を指定して印刷するのが面倒なので)。 (2) コマンドボタンを押すと、該当するレコードの入力用フォームと単票レポートとの間を行ったり来たり出来るようにしたい(修正・追記が多いので)。 現在は、入力用と出力用の2つの「フォーム」を作成してデータの行き来をしているのですが、レイアウトが違うだけでデータソース自体は全く同じなので、何となく間が抜けている気がするのです。メモリも食いそうだし。 初歩的な質問で申し訳ありませんが、宜しくお願いします。

  • アクセスのコマンドボタンについて

    アクセスについて教えて下さい。 コマンドボタンで、フォームのデータをワンクリックで開くように設定したいのですが、コマンドボタンウィザードを使って、 フォームの操作→フォームを開く→フォームを指定 という操作でボタンを作りました。 ですが、ボタンをクリックして操作しようとすると、 「イベントプロパティに指定した式 クリック時 でエラーが発生しました:名前が適切ではありません:(フォーム名)_Click   *マクロ名、ユーザー定義関数名、「イベントプロシージャ」以外の式が指定されています。   *関数、イベント、マクロの評価でエラーが発生しました。」 というメッセージが出てきて、フォームを開くことができませんでした。 ウィザードだけではフォームを開くボタンを作成することはできないのでしょうか? 何か対処があれば教えて下さい。 よろしくお願いいたします。

  • Access2002 コマンドボタンの色

    Access2002 コマンドボタンについての質問です フォームのコマンドボタンの色を自分の好みに変えたいのですが出来ますか? デザインビューで探してもそれらしきプロパティが見つからないのですが。

  • コマンドボタンがきかなくなる

    アクセスのフォーム上にコマンドボタンがいくつかあります。 たまにですが、コマンドボタンを押しても何も反応しなくなる時があります。 プロパティでクリック時に[イベント プロシージャ]と書いてあり、 VBE画面を見てみると ちゃんとイベントが記載してあります。 しかしフォームビューにしてそのコマンドボタンをクリックすると何も起きません。 新規にコマンドボタンを作って、vbe画面で同じイベントを張り付けると 新規のコマンドボタンのほうではクリックしてイベントが実行されます。 だから、その新規のコマンドボタンの名前を変えて使い続けるのですが、 しばらくするとほかのコマンドボタンがまたきかなくなる時があります。 これはアクセスのバグでしょうか? 原因がわかりません。 バージョンは2010です。

  • アクセスで条件によるコマンドボタンの使い分け。

    いつもお世話になります。 アクセス2003で納品管理を作成中ですが、商品のレコードに「不使用」のチェックボックスと「注文入力」のコマンドボタンがあります。この「不使用」のチェックボックスがOnの場合は「注文入力」のコマンドボタンをクリックできないようにしたいと考えています。 フォームの形式は帳票フォームになっていますのでそれぞれのレコードによってコマンドボタンがクリックできるものと、できないものにしたいのですが、可能でしょうか。(できたらそのレコードは色も暗くしたいのですが。。。) どなたかご教授よろしくお願いいたします。

専門家に質問してみよう