2016-08-17 7 views
0

私はmsアクセスで新しいデータベースを作成しています。私はすでにすべてのフォームを作成しました。すべてのフォームが記入されたときに新しいレコードを追加する

フォームとボタンを設定して、すべてのフォームの必須フィールドに記入されている場合にのみ、それぞれのテーブルに新しいレコードが追加されるように設定するにはどうすればよいですか?

私はユーザーが各「顧客」に対して記入する8つの書式を持っています。どんな助けでも大歓迎です。

おかげ

答えて

0

フォームを送信するボタンをクリックしている場合は、次のコードを実行される、そのボタンについてOn Clickイベント持つことができます。

Private Sub button_Click() 

if ([field1].Value = "" or isnull([field1].value)) Then 
    MsgBox "Fill out all the required fields before submitting" 
    End 
else 
    'Submit record using DoCmd.RunSQL "INSERT INTO....." 
End If 

End Sub 

をif文の連鎖にを持っています記入するすべての項目をチェックします。あなたが本当にお互いを開き、最後に一緒にすべてのフォームを送信フォームのチェーンを持っているしたい場合は

、これを試してみてください。

最初のフォームでボタンのOn Clickイベントを使用して、次を開き、マクロ/コードを実行してレコードを送信します。次のフォームでも同じことをしてください。基本的にこれはスタックへの追加を維持し、最後のフォームが呼び出されてレコードを送信すると、On Clickイベントが終了し、コードは以前のフォームに戻ります。前のフォームは、レコードを送信するコードの次の行に移動し、そのコードが終了し、同じことが起こります。フォーム2、フォーム3に

Private Sub button_Click() 

DoCmd.OpenForm 'enter parameters to open next form here 
'Code to submit record 
'DoCmd.CloseForm 'form name 

End Sub 

など:フォーム1で

:ここで少し擬似コードがある

Private Sub button_Click() 

DoCmd.OpenForm 'enter parameters to open nextform here 
'Code to submit record 
'DoCmd.CloseForm 'form name 

End Sub 

てDoCmdを使用しているときに、パラメータにacDialogを使用していることを確認します.openFormを使用してコードを一時停止します。前のコードに戻るには、フォームを閉じなければなりません。上記のコードにもう少し追加しました。コードを一時停止する方法の詳細については、このリンクに従ってください。http://www.pcreview.co.uk/threads/pause-code-while-waiting-for-a-popup-form-to-close.1155074/

+0

これは素晴らしい提案ですが、このメッセージがポップアップされる前にユーザーが各フォームにアクセスしてすべての情報を一緒に送信できるようになることを願っています。フォームのすべてのフォームフィールドはバインドされています。 – New2This

+0

8種類の書式を提出する前に記入したいと思っていますか?理由を聞いてもいいですか?データにエラーがある場合や、テーブルのレコードを送信できない場合は、すべてを一度に送信するという目的を無効にします。私は間違いなくそれをしないと言うでしょう。一度に1つのフォームに固執する、あなたがしようとしていることは非常に複雑で、データ入力プロセスには不要です。 – Michael

+0

あなたはどのように設定するのですか?各顧客には、入力した顧客IDがあります。入力する顧客IDの各フォームにフィールドを入力します。 – New2This

関連する問題