• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS2010 条件によりフォームを表示)

ACCESS2010で条件によりフォームを表示する方法

このQ&Aのポイント
  • ACCESS2010でSTEP毎にフォームを表示する方法を教えてください。例えば、STEP1の業務が完了し、「確認月日」が入力されると、STEP2のフォームが表示されるようにしたいです。
  • STEP1~STEP3を1つのフォームにして、各STEPごとに区切りを設け、上記のような表示を実現することは可能でしょうか?もし1つのフォームでは実現できない場合、各STEPごとにフォームを作成する方法はありますか?
  • ACCESS2010で条件によりフォームを表示する方法について教えてください。業務のSTEPごとにフォームを表示し、前のSTEPが完了したら次のSTEPのフォームを表示させたいです。具体的には、STEP1の業務が完了し、「確認月日」が入力されると、STEP2のフォームが表示されるようにしたいです。1つのフォームで実現できる場合と、各STEPごとにフォームを作成する場合について教えてください。

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (260/625)
回答No.5

>VBAはある程度は大丈夫です。 はいわかりました。 VBAスタートはイベント(出来事と言っておきましょう)から始まります。 ・イベントはフォームを開いたとき ・あるボックスをクリックしたとき ・あるボックスをダブルクリックした時 ・マウスカーソルがあるボックスから他へ移動したとき 等沢山のイベントがあります。 今回は【確認日付】からマウスカーソルが他へ移動したときにしましょう 以下の手順を【】⇒で示しますがカッコ内をクリックで進めます。 【最初のフォームを右クリック】⇒【デザインビュー】⇒【確認日付】 ⇒【イベントタブ】⇒【フォーカス喪失時の…】⇒【コードビルダ】⇒【OK】 これでVBA編集画面になり Private Sub 確認日付_Exit(Cancel As Integer) End Sub これに Private Sub 確認日付_Exit(Cancel As Integer) DoCmd.OpenForm "次のフォーム名" End Sub 以上ですが、 Private Sub text1_Exit(Cancel As Integer) になるときはボックス名がtext1となっているからです ボックス名はプロパティーのその他タグにあります。 また、第1のフォームは開いたままですので第二のフォームが 開いたときのイベントで第1のフォームを閉じる処理が必要かも >出来るのであれば、早速明日から取り掛かります。 エクセルファイルからインポートしたり、直接データを入力したりで簡単にテーブルを作成出来ますが、 テーブル設計の良否でシステム全体の良否が決まってしまいます。テーブルのプロパティの一つ一つを十分吟味して下さい。 尚、参考URLは検索で見つけたもので重宝しています。

参考URL:
http://www.geocities.jp/cbc_vbnet/top/nyumon.html
m8779045
質問者

お礼

何度もありがとうございました。 分かりやすいご回答を頂きましたので早速、明日から作成にとりかかります。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • chayamati
  • ベストアンサー率41% (260/625)
回答No.4

>VBAはある程度は大丈夫です。 はいわかりました。 VBAスタートはイベント(出来事と言っておきましょう)から始まります。 ・イベントはフォームを開いたとき ・あるボックスをクリックしたとき ・あるボックスをダブルクリックした時 ・マウスカーソルがあるボックスから他へ移動したとき 等沢山のイベントがあります。 今回は【確認日付】からマウスカーソルが他へ移動したときにしましょう 以下の手順を【】⇒で示しますがカッコ内をクリックで進めます。 【最初のフォームを右クリック】⇒【デザインビュー】⇒【確認日付】 ⇒【イベントタブ】⇒【フォーカス喪失時の…】⇒【コードビルダ】⇒【OK】 これでVBA編集画面になり Private Sub 確認日付_Exit(Cancel As Integer) End Sub これに「 DoCmd.OpenForm "次のフォーム名"」追記して Private Sub 確認日付_Exit(Cancel As Integer) DoCmd.OpenForm "次のフォーム名" End Sub 以上ですが、 Private Sub text1_Exit(Cancel As Integer) になるときはボックス名がtext1となっているからです ボックス名はプロパティーのその他タグにあります。 また、第1のフォームは開いたままですので第二のフォームが 開いたときのイベントで第1のフォームを閉じる処理が必要かも >出来るのであれば、早速明日から取り掛かります。 エクセルファイルからインポートしたり、直接データを入力したりで簡単にテーブルを作成出来ますが、 テーブル設計の良否でシステム全体の良否が決まってしまいます。テーブルのプロパティの一つ一つを十分吟味して下さい。 尚、参考URLは検索で見つけたもので重宝しています。

m8779045
質問者

お礼

お優しく分かりやすいご回答ありがとうございました。 完成は3月がリミットなので、アドバイスとおり、焦らず慌てず、十分吟味して作成していきたいと思います。 お願いばかりで申し訳ございませんが、お時間のある時で結構ですので、参考URLを貼り付けて頂ければ幸いです。

すると、全ての回答が全文表示されます。
回答No.3

>フォーム1の「確認月日」が入力されると次のフォーム2に切り替わる。 >フォーム2からフォーム1へと戻って再確認する。 >その後、フォーム3へと一気に進む。 これは、1つのフォームで割と簡単にできますよ。3つにグループ化されるデータ入力の際によく使う手です。フォーム1の入力によてフォーム2の入力項目を関連1のみ、1と2のみ、オールなどともできます。 別に、難しいことではありません。ズブの素人である私がAccess2.0なるものを知って半年後に作れたぐらいですから・・・。 [Access2010 フォーム 改ページ]で検索を!

m8779045
質問者

お礼

お優しいアドバイスありがとうございました。 「ACCESS2010 フォーム 改ページ」で検索すると、レポートの改ページの方法ばかりヒットするのですが、「入力フォーム」でもできるんですね? ポイントは、STEP毎の3つのフォームをそれぞれグループ化することですかね?

すると、全ての回答が全文表示されます。
  • chayamati
  • ベストアンサー率41% (260/625)
回答No.2

VBAは大丈夫ですか

m8779045
質問者

お礼

コメントありがとうございます。 VBAはある程度は大丈夫です。 これからデータベースを構築するのですが、手がける前に「出来るかどうか?」を 確認すたかったんです。 出来るのであれば、早速明日から取り掛かります。

すると、全ての回答が全文表示されます。
  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>例えば、STEP1の業務が完了し、STEP1内の「確認月日」が入力されると、STEP2のフォームが表示されるようにしたいのです。 自分が望むようなロジックを加えれば割と簡単にできると思えます。 ただし、もしそれらの画面がウイザードによって自動作成されたものだったり、他人が作ったものであったら、どこを直せばいいのか?どういうふうに直せばいいのか?を理解するには、現状のプログラム構造理解と、ACCESS VBAの勉強をしばらくの間、行う必要があると思います。 これは、他の開発言語でも同様です。 宣伝で「○○を使えば、たった30分でデータベースを使ったWEBシステムができあがります!!」 なんてのはよく見かけたものです。その宣伝に嘘は無いのですけど、完成品を、自分の望む仕様に少しでも変更するには、お勉強が半年以上も必要になったりします。 これを「複雑さ保存則」なんていったりします。 プログラムの作成は、どうしても複雑な面があります。それをお手軽・簡単に見せるのは可能なんですけど、複雑さが消え去るわけではありません。 それは、どこかに隠されただけ。 だから、この質問のように、「この画面をちょっと修正したい」「ほんのちょっとだけ動作を変えたい」「この3つをまとめたい」などの要求が出ると、隠された複雑さを理解している必要があり、それを理解しないと修正できないのです。 がんばってください。

m8779045
質問者

お礼

アドバイスありがとうございました。 VBAを使えばできるんですね! 頑張って挑戦します。

すると、全ての回答が全文表示されます。

関連するQ&A