Selamat siang,

saya mencoba untuk membuat subform (continous form) dimana data yang tidak
bisa diupdate warnanya akan berubah menjadi gray. Dari sisi funsionalitas,
subform ini sudah berjalan dengan baik dimana data yang tidak memenuhi
syarat, tidak bisa diupdate. Problem yang saya hadapi adalah bagaimana
memberikan informasi visual kepada user, data mana saja yang tidak bisa
diupdate.

Sebagai ilustrasi, saya menggunakan fungsi sederhana untuk menentukan apakah
suatu data boleh diupdate atau tidak (berdasarkan tanggal) sbb:

Public Function updateAble(pCurrentDate As Date)
If Not IsNull(pCurrentDate) Then
    If CDate(Format(pCurrentDate, "MMM YYYY")) >= CDate(Format("03/01/2010",
"MMM YYYY")) Then
        updateAble = True
    Else
        updateAble = False
    End If
Else
    updateAble = True
End If
End Function

Sedangkan untuk memberikan warna gray pada textbox, saya menggunakan
Conditional Formatting sbb:

Private Sub Form_Current() '--> Subform (continous form)
Dim ctl As Control
Dim objFrc As FormatCondition
Dim lngGray As Long
lngGray = RGB(201, 201, 201)

For Each ctl In Me.Controls
    If ctl.Tag = "?" Then
        ctl.FormatConditions.Delete

        If Not IsNull(Me.DATE_STAMP) Then
            With ctl.FormatConditions _
                .Add(acExpression, , Not (updateAble(Me.DATE_STAMP)))
                .BackColor = lngGray
                .ForeColor = -2147483640
            End With
        End If
    End If
Next

End Sub

Namun ternyata, conditional formatting ini hanya akan membaca record pertama
dari hasil query dan akan meng-aplikasi-kan ke semua record. Jadi seandainya
record pertama mengembalikan nilai fungsi updateAble = false, maka semua
text box di continous form akan menjadi gray (meskipun record kedua dan
seterusnya seharusnya mengembalikan nilai = true).

Mohon pencerahan dimana saya melakukan kesalahan? Saya juga sudah mencoba
menggunakan event Load dan Open di form, namun masih belum berhasil.

terima kasih sebelumnya
andre

Kirim email ke