Accessで入力フォームを作成しました。Excelのような表にレコードを入力し、確定ボタンをクリックすると、レコードがテーブルに登録される作りです。つまり、表にレコードを入力した段階では、まだ、テーブルに値は登録されません。
イメージ
商品コード | 商品名 | 数量 |
---|---|---|
A001 | りんご | |
A002 | 青りんご | |
B001 | ぶどう |
上記のような表にレコードを入力するイメージです。
実装したいのは、もう一つボタンを設定し、ボタンが押されると商品コードがAから始まるレコードの数量を「10」に設定するという処理です。
VBA
1Private Sub suryo_input_btn_Click() 2 Dim rst As Recordset 3 Dim sfrm As SubForm 4 Dim record_num As Long 5 Dim i As Long 6 Dim item_cd As String 7 8 Set sfrm = Me!商品入力サブフォーム 9 Set rst = sfrm.Form.Recordset 10 11 'サブフォームのレコード数を格納 12 record_num = rst.RecordCount 13 14 'レコードがない場合は終了 15 If record_num = 0 Then 16 Exit Sub 17 End If 18 19 '先頭レコードに移動 20 rst.MoveFirst 21 22 For i = 1 To record_num 23 item_cd = rst.Fields("商品コード") 24 If item_cd Like "A*" Then 25 rst.Fields("数量").Value = 10 26 rst.Update 27 End If 28 rst.MoveNext 29 Next i 30End Sub
上記コードで商品コードは取得できるのですが、レコード更新部分であるrst.Fields("数量").Value = 10 rst.Update
でUpdate または CancelUpdate メソッドには、対応する Addnew または Edit メソッドが必要です。
とエラーが出力されます。
どのようにすれば、入力フォームの値を修正できるでしょうか?
テーブルを更新するサンプルは見つかるのですが、テーブルを更新したいのではなく、画面に表示されている入力フォームの値を変えたいということです。
ご教授のほど、よろしくお願いいたします。