Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Access中的条件格式设置已禁用或';只读';文本框_Vba_Ms Access - Fatal编程技术网

Vba Access中的条件格式设置已禁用或';只读';文本框

Vba Access中的条件格式设置已禁用或';只读';文本框,vba,ms-access,Vba,Ms Access,我有一个带有一些绑定文本框的Access连续表单。我想提供每个记录状态的可视指示器,因此文本框包含表中的值0、1或2。条件格式将此框变为绿色表示0,黄色表示1,红色表示2,包括文本颜色,因此该框实际上只是用户的一种颜色 我已经禁用了文本框,以防止用户能够点击文本框并看到它是一个文本框,但是将属性设置为Enabled=False似乎会禁用条件格式。然后,我在条件格式中应用了启用的框,但虽然这确实禁用了文本框,但它会关闭条件格式,如果您锁定它,它将不会更改文本颜色 是否有其他控件我最好在此处使用,或

我有一个带有一些绑定文本框的Access连续表单。我想提供每个记录状态的可视指示器,因此文本框包含表中的值0、1或2。条件格式将此框变为绿色表示0,黄色表示1,红色表示2,包括文本颜色,因此该框实际上只是用户的一种颜色

我已经禁用了文本框,以防止用户能够点击文本框并看到它是一个文本框,但是将属性设置为
Enabled=False
似乎会禁用条件格式。然后,我在条件格式中应用了
启用的
框,但虽然这确实禁用了文本框,但它会关闭条件格式,如果您锁定它,它将不会更改文本颜色


是否有其他控件我最好在此处使用,或者是否有其他控件允许文本框条件格式在用户无法点击文本框的情况下工作?

Enabled=False更改背景颜色。如果设置Locked=False,则只会阻止用户更改数据。 您的复选框必须具有

Enabled = True
Locked = True
我在这种条件下测试了它,它可以工作:


要禁止点击文本框,它必须具有

Enabled = False
Locked = True
要不使用条件格式覆盖此内容,格式条件还必须包括
Enabled=False

请注意,在“条件格式”对话框中,颜色似乎不起作用-该对话框不知道
Locked=True
。但它将在形式上起作用

我记得在对话框中设置
Enabled=False时遇到问题(这是在Access 2010中),所以我使用代码创建它:

必须在设计视图中打开myForm 公共子MyCreateCondFormat() 尺寸F为表格\我的表格 将fld设置为文本框 作为格式化条件的Dim objFrc 集合F=形式\我的形式 设置fld=F.myTextbox fld.FormatConditions.Delete 设置objFrc=fld.FormatConditions.Add(acFieldValue,acEqual,“42”) 使用objFrc
.Enabled=False“属性
锁定如何”
?感谢@FoxfireAndBurnsAndBurns-我确实提到过,不幸的是,这样做会保持
BackColor
属性的完整性,但不幸的是将
前景色
更改为默认的灰色/黑色。但是,即使无法更改值,也可以单击文本框,这可能是不可取的。在On_Enter事件中将焦点设置为其他控件。安德烈:这太棒了!我不知道FormatConditions.Add是可能的。非常感谢@Andre-这非常有效。UI非常容易误导读者,对于未来的读者来说,正如Andre在上面提到的,预览框显示了完全不同的输出,但它确实按照表单中的预期工作。再次感谢。