Microsoft Access 掲示板

VBAで抽出して登録するまでのコードをご教示ください。 / 1

4 コメント
views
4 フォロー
1
りんご 2022/01/26 (水) 23:02:31 c564b@0e907

どのようなVBAのコードを書けばよろしいのでしょうか。

 抽出するコード、登録するコード、例えば、こんな感じになるのかも。最近触ってないのでちょっと怪しいですが。
 ただし、フォームのレコードソースを設定したり、クエリの抽出条件にテキストボックスを設定したり、諸々足りていないと動かないので色々ググって下さい。

Public Sub 抽出ボタン()
    Me.Requery
End Sub
Public Sub 登録ボタン()
    DoCmd.GoToRecord acDataForm,”フォームの名前”,acNewRecord
    Me.国語 Me.テキストボックス国語の点数
    Me.数学 Me.テキストボックス数学の点数
    Me.英語 Me.テキストボックス英語の点数
    DoCmd.GoToRecord acDataForm,”フォームの名前”,acNext
End Sub

もしくは

Public Sub 登録ボタン()
    DoCmd.OpenQuery “追加クエリの名前”
End Sub

 それはさておき、データベースがちゃんとデータベースである為に、Excelの何倍も手間暇をかけて登録する事になるって知っていますか?
 取り敢えず、主キーの設定が必要です。例えば、生徒とテスト名と教科が決まると、点数が決まるから、生徒とテスト名と教科を主キーとするなど。
 Excelのような通し番号は存在しません。ケースバイケースで並び順は変わります。
 そういえば、縦横自由に登録出来るデータベースは無理です。国語、数学、英語の点数を横方向に14,15,16とするのはNGなので、縦方向に登録しましょう。

教科点数
国語14
数学15
(新規)

 国語の点数を入力したら、登録ボタンを押して登録。数学の点数を入力したら、登録ボタンを押して登録。英語の点数を入力したら、登録ボタンを押す。エラーが発生、英語が教科として事前登録されていません。英語の点数入力を破棄して、教科として事前登録する為に…
 

通報 ...
  • 2
    りんご 2022/01/26 (水) 23:24:15 c564b@0e907 >> 1

    一部修正。

    Public Sub 登録ボタン()
        DoCmd.GoToRecord acDataForm,”フォームの名前”,acNewRecord
        Me.教科 = Me.テキストボックス教科
        Me.点数 = Me.テキストボックス点数
        DoCmd.GoToRecord acDataForm,”フォームの名前”,acNext
    End Sub