プロが教えるわが家の防犯対策術!

教えてください。

ACCESS2010でフォームが業務STEP毎に3つあります。

やりたいことは、STEP毎に完了すると、次のSTEPのフォームが表示されるようにしたいです。
(ひとつの帳票みたいに次々とSTEP毎に表示されるように)

例えば、STEP1の業務が完了し、STEP1内の「確認月日」が入力されると、STEP2のフォームが表示されるようにしたいのです。

・出来れば、STEP1~STEP3を1つのフォームにして、STEP毎に区切りみたいなのもをいれて、
 上記みたいなことを実現することは可能でしょうか?

・1つのフォームで実現が不可能だった場合、STEP毎にフォームを作成して、上記みたいなことを実 
 現することは可能でしょうか?

よろしくお願いいたします。

A 回答 (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
    • good
    • 0
この回答へのお礼

何度もありがとうございました。

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

ありがとうございました。

お礼日時:2014/09/28 11:10

>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は検索で見つけたもので重宝しています。
    • good
    • 0
この回答へのお礼

お優しく分かりやすいご回答ありがとうございました。

完成は3月がリミットなので、アドバイスとおり、焦らず慌てず、十分吟味して作成していきたいと思います。

お願いばかりで申し訳ございませんが、お時間のある時で結構ですので、参考URLを貼り付けて頂ければ幸いです。

お礼日時:2014/09/28 10:50

>フォーム1の「確認月日」が入力されると次のフォーム2に切り替わる。


>フォーム2からフォーム1へと戻って再確認する。
>その後、フォーム3へと一気に進む。

これは、1つのフォームで割と簡単にできますよ。3つにグループ化されるデータ入力の際によく使う手です。フォーム1の入力によてフォーム2の入力項目を関連1のみ、1と2のみ、オールなどともできます。

別に、難しいことではありません。ズブの素人である私がAccess2.0なるものを知って半年後に作れたぐらいですから・・・。

[Access2010 フォーム 改ページ]で検索を!
    • good
    • 0
この回答へのお礼

お優しいアドバイスありがとうございました。

「ACCESS2010 フォーム 改ページ」で検索すると、レポートの改ページの方法ばかりヒットするのですが、「入力フォーム」でもできるんですね?

ポイントは、STEP毎の3つのフォームをそれぞれグループ化することですかね?

お礼日時:2014/09/28 07:44

VBAは大丈夫ですか

    • good
    • 0
この回答へのお礼

コメントありがとうございます。

VBAはある程度は大丈夫です。
これからデータベースを構築するのですが、手がける前に「出来るかどうか?」を
確認すたかったんです。

出来るのであれば、早速明日から取り掛かります。

お礼日時:2014/09/28 07:03

>>例えば、STEP1の業務が完了し、STEP1内の「確認月日」が入力されると、STEP2のフォームが表示されるようにしたいのです。



自分が望むようなロジックを加えれば割と簡単にできると思えます。

ただし、もしそれらの画面がウイザードによって自動作成されたものだったり、他人が作ったものであったら、どこを直せばいいのか?どういうふうに直せばいいのか?を理解するには、現状のプログラム構造理解と、ACCESS VBAの勉強をしばらくの間、行う必要があると思います。

これは、他の開発言語でも同様です。

宣伝で「○○を使えば、たった30分でデータベースを使ったWEBシステムができあがります!!」
なんてのはよく見かけたものです。その宣伝に嘘は無いのですけど、完成品を、自分の望む仕様に少しでも変更するには、お勉強が半年以上も必要になったりします。

これを「複雑さ保存則」なんていったりします。
プログラムの作成は、どうしても複雑な面があります。それをお手軽・簡単に見せるのは可能なんですけど、複雑さが消え去るわけではありません。
それは、どこかに隠されただけ。
だから、この質問のように、「この画面をちょっと修正したい」「ほんのちょっとだけ動作を変えたい」「この3つをまとめたい」などの要求が出ると、隠された複雑さを理解している必要があり、それを理解しないと修正できないのです。

がんばってください。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。

VBAを使えばできるんですね!

頑張って挑戦します。

お礼日時:2014/09/28 07:01

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