メインフォームにコマンド ボタンがあり、クリックするとサブフォームの表示されたレコードのフィールドをループし、そのフィールドのすべてのデータの値を変更して、メインフォームのバインドされていないコンボボックスの値と一致させます。これは、ユーザーがサブフォームの複数のレコードを一度に更新できるようにするためです。コードは正常に動作しますが、各レコードで空白の場合にのみフィールドを更新するように変更できれば、より便利になります。つまり、各レコードにそのフィールドの空白があるかどうかを確認し、コンボ ボックスに基づいて入力し、空白または null でない場合は次のレコードにスキップします。これは、コードが現在どのように見えるかです。アクセス VBA が苦手で、"Case" と "If" のどちらを使用するべきか、または以下のコードで正確にどのように使用すればよいかわかりません。
Private Sub comm_1_Click()
Dim rs As DAO.Recordset
Set rs = Me.Skid1.Form.RecordsetClone
With rs
.MoveFirst
Do While Not .EOF
.Edit
![Release Code] = Me.code_updater.Value
.Update
.MoveNext
Loop
End With
Set rs = Nothing
End Sub
私はこれを試しましたが、空白のレコードの一部のみを更新するように見えました (非常に奇妙です)。近いと確信していますが、完全ではありません。
Private Sub comm_1_Click()
Dim rs As DAO.Recordset
Dim fld As Field
Set rs = Me.Skid1.Form.RecordsetClone
With rs
.MoveFirst
Do While Not .EOF
For Each fld In .Fields
If IsNull(fld.Value) Then
.Edit
![Release Code] = Me.code_updater.Value
.Update
End If
.MoveNext
Next
Loop
End With
Set rs = Nothing
End Sub