我有一个有效的代码,需要以连续的形式将其应用于我的所有记录。
Private Sub Befehl104_Click()
While Me.CurrentRecord < Me.Recordset.RecordCount
Me.WreckBreiteDD.Value = Round(WechselnD(Me.WreckBreiteDMS.Value), 7)
Me.WreckLängeDD.Value = Round(WechselnD(Me.WreckLängeDMS.Value), 7)
DoCmd.GoToRecord Record:=acNext
Wend
End Sub
有时“ WreckBreiteDMS”为空,因此代码停止,因为无法执行功能“ WechselnD”。
如何跳过那些空的文本框?
已经在所有可能的位置尝试过“ Nz()”,没有任何帮助。
我认为我需要做类似的事情:
If Me.WreckBreiteDD.Value = Round(WechselnD(Me.WreckBreiteDMS.Value), 7) = 0, DoCmd.GoToRecord:=acNext
但是我在snytax上遇到了一些问题。
谢谢!
答案 0 :(得分:2)
示例
WreckLängeDMS
是字符串,并且
WreckBreiteDMS
是数字
Private Sub Befehl104_Click()
While Me.CurrentRecord < Me.Recordset.RecordCount
if not isnull(Me.WreckBreiteDMS.Value) then
Me.WreckBreiteDD.Value = Round(WechselnD(Me.WreckBreiteDMS.Value), 7)
end if
if nz(Me.WreckLängeDMS.Value,"")<>"" then
Me.WreckLängeDD.Value = Round(WechselnD(Me.WreckLängeDMS.Value), 7)
end if
DoCmd.GoToRecord Record:=acNext
Wend
End Sub
答案 1 :(得分:1)
在if语句中的字符串(在您的情况下为Me.WreckBreiteDMS.Value)上使用len
。从if语句中删除其余部分。
If Len(Nz(Me.WreckBreiteDMS.Value)) > 0 Then
Me.WreckBreiteDD.Value = Round(WechselnD(Me.WreckBreiteDMS.Value), 7)
End If