こんにちは私は、すべての質問が記入されるとすべてのテーブルを更新するアクセスで継続的なアンケートフォームを作成する方法について知りたいだけです。ただし、ページの最後に到達する前に、ユーザーはフォーム間で前後に編集できるようになります。
したがって、次のようになります。
- 合計30のフォーム
- 1つのフォームは、テーブルの1〜3フィールドのみを更新します
- ユーザーが1つのフォームを終了すると、フォームは別のフォームを閉じて開きます。
- ユーザーは前のフォームに戻って編集できるようになります。
- 戻る矢印と次の矢印の2つのボタンしか使用できないボタン(データを保存して別のフォームに移動し、現在のフォームを閉じる)
- 最後のフォームはすべてのデータを保存します。
- ユーザーがすべての質問を完了すると、フォームを最初の質問から再度開くことができ、テーブルにまったく新しい行のユーザーデータが挿入されます。
私がやったことは
- ボックスとタグを使用して、テーブルに直接接続されたフォームを作成します。これにより、リアルタイムで更新されます。ユーザーが前後に編集できるようにします
- 「次へ」ボタン。マクロを使用して新しいフォームを閉じたり開いたりします。
次のVBコードを使用してテーブルを更新する最終フォーム:
Private Sub Close_Click() CurrentDb.Execute "INSERT INTO Demographics(vid, cid, dobd, gend, heght, heght2, wgt, wgt2, lschool, secschl, qualify, hqlify, army, abranch )" & _ "VALUES('" & vid1 & "','" & cid1 & "','" & dobd1 & "','" & gend1 & "','" & heght1 & "','" & heght21 & "','" & wgt1 & "','" & wgt21 & "','" & lschool & "','" & secschl1 & "','" & qualify1 & "','" & hqilfy1 & "','" & army1 & "','" & abranch1 & "')" cmdClear_Click cmdClose_Click End Sub Private Sub cmdClose_Click() DoCmd.Close End Sub Private Sub cmdClear_Click() vid1 = "" cid1 = "" dobd1 = "" gend1 = "" heght1 = "" heght21 = "" wgt1 = "" wgt21 = "" lschool1 = "" secschl = "" qualify = "" hqlify = "" army = "" abranch = "" End Sub Private Sub Form_Current() End Sub
問題:
- 上記の最終ページのスクリプトは、データをテーブルにまったく挿入しません。
- テーブルの列にインデックスを付けると、テーブルにデータを挿入できますが、多くの更新を行うと面倒になります
私の質問:
- テーブル全体を更新するのではなく、これを継続的にフォームアクティビティで実行するための正しいVBスクリプトを誰かに提案してもらえますか?
- アクセス2003のように、ユーザー専用のログインと管理者専用のデータベースへの特別なログインアクセスを使用してスイッチボードを作成できるフォームを作成するにはどうすればよいですか。(Access 2010 .accdbファイルを使用しています)
長い投稿で申し訳ありませんが、すべてが明確であることを確認したいだけです。どんな答えでも大歓迎です。前もって感謝します