重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Access2002でフォームを利用して表紙を作ろうとしているのですが、コマンドボタンを配置してフォームを開けるようにしたいと思っています。
クエリーも開けないので一度そのクエリーのフォームをつくりそれを開くためのコマンドボタンを用意しました。
ところがボタンを配置するごとの確認していくと途中でエラーが出てフォームを開けなくなります。
すると今まで開けたフォームも同様に開けなくなってしまいます。
Accessを使い始めたばかりの初心者ですが、どなたか教えて下さい。

また、Accessの仕組みは大体わかったのですが、顧客管理や商品管理など行ううえでステップアップしやすい参考書籍・webなどありましたら是非教えて下さい。
宜しくお願いします。

A 回答 (4件)

ボタン作成にコントロールウィザードを使ってますか…?


フォームにボタンを置くとコマンドボタンウィザードが出てきて、
それでフォームの操作→フォームを閉じる…のような処理をしてますか?

コントロールウィザードを使ってボタンを作ると、
自動的に「フォームを閉じる」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"までを削除して下さい。
    • good
    • 0
この回答へのお礼

本当に何度も有難うございます。

>"Private Sub 表紙フォームを閉じる_Click()"
で始まるプログラムがいくつかあるのではないでしょうか?

おっしゃるとおりでした。
ご指示通りプログラムを削除してボタンを作り直したらうまくいきました!

しかし、なぜはじめにエラーが出たんでしょうか?
やはり無反応だったときに既に完成していたが、たまたま動かなかったとか・・・?
そもそもこの「イベントプロージャー」というやつを理解するにはVBAまで勉強しないとだめということですよね?
できればもう一度だけお返事をいただけるとうれしいです。

とにかくまず教えて頂いたwebでまず勉強してみます。
本当に有難うございました。

お礼日時:2005/02/17 15:57

>しかし、なぜはじめにエラーが出たんでしょうか?


>やはり無反応だったときに既に完成していたが、たまたま動かなかったとか・・・?

無反応、ということは…
プログラムに書かれたボタンの名前と、実際のボタンの名前が違ったとか…?
ウィザードでボタンを作った後、ボタンの名前だけ変えませんでしたか?
そうすると、新しい名前になったボタンの名前が含まれるプログラムがないわけで、
無反応になってしまうかな…という気がします。


>そもそもこの「イベントプロージャー」というやつを理解するには
>VBAまで勉強しないとだめということですよね?

マクロを使う方法もあり、その方が簡単だという人もいます。
私はVBAの方が好きなのでVBAを使ってますが…。
(思いついたときにチョコチョコっと書き足せるので…^^;)

まずは今回のようにボタン(開く、閉じる、検索etc.)を作るとか、
カーソルがあるところの色を変えるとか小技を楽しんでいると、
いつの間にかいろいろできるようになって楽しいですよ!

ご紹介したサイトではマクロもVBAも扱ってますから、
両方使ってみてご自分にあった方を使っていけば良いかと…。

私もまだまだ勉強しなくては!

それではご検討をお祈りしております。
    • good
    • 0
この回答へのお礼

何度もお付き合い頂き有難うございます。
無反応の原因は解らずじまいですが、同じようなトラブルに遭遇したらこの「イベントプロージャー」を確認してから削除などするようにしたいと思います。

今回の簡単な(私にとっては難しいのですが)問題が解決しただけで何だか楽しい気分です。
また、ご紹介いただいたURLも今みていますが、解りやすくますますAccessにはまりそうです。

この度は本当に有難うございました!!

お礼日時:2005/02/17 16:43

#1です。



>ただ表紙を閉じるためのボタンを入れたのですがボタンを押しても表紙フォームが閉じません。

フォームをデザインモードで開いて、閉じるボタンを右クリック→プロパティを開きます。
イベントタブの "クリック時" にカーソルを合わせると、▼ボタンと...ボタンが出ますよね?
まず、▼ボタンを押して[イベントプロシージャ]を選び、そのまま...ボタンを押します。
そうすると、
----------------
Private Sub コマンド0_Click()

End Sub
----------------
という画面が出ます。
(コマンド0の部分は違うものになっているかもしれません。)

そこを、
----------------
Private Sub コマンド0_Click()
DoCmd.Close
End Sub
----------------
のように書いてフォームを保存してください。

これでどうでしょうか?
    • good
    • 0
この回答へのお礼

何度もすいません。
ボタンを作り直したらエラーメッセージが出るようになりました。
内容は下記の通りです。

------------------------------------------------
イベント プロパティーに指定した式 クリック時でエラーが発生しました:名前が適切ではありません:表紙フォームを閉じる_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
------------------------------------------------
この後他のボタンを押しても同じエラー表示が出てしまいます。
閉じるボタンを削除してもエラー内容は変わりません。
何度もすいませんが宜しくお願いします。

お礼日時:2005/02/17 14:17

こんにちは。



エラーが出るとのことですが、そのエラーはどのようなものでしょうか?
なにかエラーメッセージは出ませんか?

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

参考URL:http://www.mahoutsukaino.com/
    • good
    • 0
この回答へのお礼

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

参考URL有難うございます。
これからじっくり見てみます。

お礼日時:2005/02/17 12:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!