このSELECT CASE
シナリオは私のために働いていますが、私はコードがよりフレンドリーなことができると思う...任意のアドバイスは非常に役立つだろう。このSelect Case
80回通じガイダンス、VBA - SELECT CASEをクリーンアップ
Select Case True 'select case where worker name and action is true then in each case RSworkhours.addnew
Case Me.Worker1.Value <> "" And Me.fw1a1 = 1
With RsWorkHours
.AddNew
!WorkerID = Me.Worker1
!Date = Me.TxtDate
!StandardTime = Me.w1a1s
!Overtime = Me.w1a1o
!Doubletime = Me.w1a1d
!ScaffoldID = Me.cboScaffnum
.Update
End With
Me.fw1a1 = 0
GoTo WorkerHours
Case Me.Worker1.Value <> "" And Me.fw1a2 = 1
With RsWorkHours
.AddNew
!WorkerID = Me.Worker1
!Date = Me.TxtDate
!StandardTime = Me.w1a2s
!Overtime = Me.w1a2o
!Doubletime = Me.w1a2d
!ScaffoldID = Me.cboScaffnum
.Update
End With
Me.fw1a2 = 0
GoTo WorkerHours
コード反復し、そこに16人の労働者があり、それぞれが5つのアクションを持っている場合。
私は多分のように、引数内の数を変更するループ持つ考えていた:
for each x to 16
for each y to 5
If Me.worker & x & .Value <> "" And Me.fw & x & a & y Then
With Recordset
.AddNew
'insert stuff
.Update
End With
End If
Next y
Next x
を誰もが任意の洞察力を持っていますか? ありがとうございます。
あなたのユースケースでは、これは最高のUIですか? – Tomalak
@Tomalakが述べたことに加えて、「Worker 1」に6番目のアクションがあるとどうなりますか? – FreeMan
この場合、これはデザインビューのフォームの半分だけです...これは、必要に応じてフォームを展開する各コンボボックスの '_Click'イベントです。このフォームは、今までにない一連の状況に適しています1日に最大5つのアクションがあります.... 私はいつも私のフォームとプログラムを合理化する方法の提案をしています。 –