我在访问中有一个表单有一系列问题。每个问题都有一个带有三个单选按钮的框架,每个单选按钮指定一个不同的选项(为了方便1,2,3)。我已在此表单中添加了一个问题,并希望以某种方式将更改前的所有记录指定为免除此字段。我以为我可以将之前记录中此字段的值设置为-1,以表示它们是免税的。但现在我不知道如何在以前的记录中基本上禁用这个问题。
答案 0 :(得分:1)
我不确定我对你的描述有多了解,我的预感是表格的当前事件在这里很有用。
Private Sub Form_Current()
Me.ControlName.Enabled = Not Me.indicator_field = -1
End Sub
如果ControlName
对于新记录应为Enabled
,则可以使用Nz ()
函数来处理初始Null。
Me.ControlName.Enabled = Not Nz(Me.indicator_field, 0) = -1
除了ControlName
之外,您还可以管理Locked
的{{1}}媒体资源。这些组合以不同的方式改变了控件的外观。看看你喜欢哪个。
我可能会忽略其他细节,但希望这会为您提供一个有用的起点。
如果表单包含Text1,Text2,... Textn等序列中的文本框,则可以使用Enabled
循环对其中的每一个执行某些操作...启用/禁用等等。我会用For
,因为这对我来说很容易。
Debug.Print
您可以使用字符串变量来引用表单Dim i As Long
Dim strCtl As String
For i = 1 To 10
strCtl = "Text" & CStr(i)
Debug.Print Me.Controls(strCtl).Name
Next i
集合的特定成员。然后用它做你需要的,而不是打印它的Controls
属性。
答案 1 :(得分:0)
您可以参考NewRecord属性:
Private Sub Form_Current()
If Me.NewRecord = True
Then Me.MyControl.Enabled = True
Else
Then Me.MyControl.Enabled = False
End If
End Sub
或者使用您的新字段,您可以说:
If Me.MyField = -1
Then Me.MyControl.Enabled = False
Else
Then Me.MyControl.Enabled = True
End If
在MS Access表中包含创建的日期时间几乎总是一个好主意。