【发布时间】:2019-07-16 00:30:05
【问题描述】:
我有一个 Access 连续表格。我想更改特定记录字段的前景色。
我有要从 FieldModified 字段中突出显示的字段。因此,例如 FieldModified = "Converted"。转换为我的表单上的一个字段。
我想更改“已转换”字段的颜色,并为表单中的每条记录执行此操作。
我认为这段代码可以工作,但在 Me.[FieldModified].ForeColor 上出现错误。我需要为表单中的每条记录执行此操作。
代码:
Private Sub Form_Load()
Dim fldName As String
fldName = Me.FieldModified.value
If (Not IsNull(fldName)) Then
Me.[fldName].ForeColor = vbRed '<--doesn't recognize fldName value
End If
End Sub
更新了代码,但它给了我一个错误 438 说对象不支持这个属性或方法。但是表单确实突出显示了表单上的字段,但它突出显示的不仅仅是一个字段“fldName”
Private Sub Form_Load()
Dim rstForm As String
Dim fldName As String
Set rstForm = Me.ChangedData.Form.Recordset
Do While Not rstForm.EOF
fldName = Me.FieldModified.value
If (Not IsNull(fldName)) Then
Me.Controls(fldName).ForeColor = vbRed '<--doesn't recognize fldName value
End If
rstForm.MoveNext
Loop
End Sub
【问题讨论】:
-
在您的代码中,
fldName被定义为一个字符串,它没有.ForeColor属性。也许你只需要将Me.[fldName].ForeColor = vbRed更改为Me.Control(fldName).ForeColor = vbRed -
谢谢。我将如何对连续形式的每条记录执行此操作?
-
你不能
Set和String,rstForm应该声明为As Recordset。 -
我将 Dim 语句更改为 Dim rstForm As Recordset 但我仍然找不到方法或数据成员
-
实现这一点的唯一方法是使用 条件格式,参见例如stackoverflow.com/questions/39294487/… 或 stackoverflow.com/questions/13937493/…