我在Access中有一个表单,我尝试制作一个清除整个表单的按钮。 它可以工作但不适用于1个字段,因为在数据库中该字段给出了NOT NULL。
这是我的表格:http://i.stack.imgur.com/j7EOI.png
当我按下按钮时[Leeg Velden] 然后这个vba代码将运行:
Private Sub btnLeegVelden_Click()
Dim object As Object
For Each object In Screen.ActiveForm
If Name(object) = "ibvoorraad" Then
Me.ibvoorraad.Value = "0"
Else
If TypeName(object) = "TextBox" Then object.Value = ""
End If
Next object
btnArtikelToevoegen.Enabled = True
End Sub
我如何添加一些清除所有字段但在字段中的代码" Voorraad"它需要将其设置为0而不是空。
答案 0 :(得分:0)
您需要在if语句中访问对象的.Name
属性,而不是使用函数Name()
。
请改为尝试:
Private Sub btnLeegVelden_Click()
Dim object As Object
For Each object In Screen.ActiveForm
If object.Name = "ibvoorraad" Then
Me.ibvoorraad.Value = "0"
Else
If TypeName(object) = "TextBox" Then object.Value = ""
End If
Next object
btnArtikelToevoegen.Enabled = True
End Sub
答案 1 :(得分:0)
以下是我要做的事:参考作为控件:
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.Name = "ibvoorraad" Then
Me.ibvoorraad.Value = "0"
Else
If ctl.ControlType = acTextBox Then
ctl = ""
End If
End If
Next ctl
btnArtikelToevoegen.Enabled = True
答案 2 :(得分:0)
我会为任何不能为null的控件设置默认值,然后使用以下代码
Dim ctL As Access.Control
For Each ctL In Me.Controls
If ctL.ControlType = acTextBox Then
ctL= ctL.DefaultValue
End If
Next