尽管我检查了许多与错误13有关的问题,但我找不到问题的答案,所以我在这里尝试:
我正在构建代码以保存用户表单中的信息,但首先我要测试是否强制文本框为空。因为我使用的是64位的机器,所以我使用了特雷弗·艾尔的CalendarForm。
但是,在测试代码时,我遇到了从CalendarForms接收日期的空文本框的问题:
在这一行:
Dim dteCompraDataOps As Date: dteCompraDataOps = Me.txtTesouro_Compra_DataOps.value此部分突出显示并返回运行时错误13:
dteCompraDataOps = Me.txtTesouro_Compra_DataOps.value 当我检查来自空TextBoxes的值时,我得到:
dteCompraDataOps = "00:00:00"` 这是正确的,因为它应该被视为日期,但如下:
Me.txtTesouro_Compra_DataOps.value = ""就像一根绳子一样。
我做了一些搜索,并注意到日期数据类型是棘手的,当来自文本框是空的。
我可以找到一个解决方案:在声明变量之前创建一个Select来测试强制字段,但是我想学习如何处理本应为空的空文本框。
你能帮我解释一下我的谜团吗?
提前谢谢。Cub4_RJ
发布于 2020-03-06 11:25:23
有两种方法来处理这个问题。
( a)检查Null:
With Me.txtTesouro_Compra_DataOps
If Not IsNull(.Value) Then
If IsDate(.Value) Then dteCompraDataOps = . Value
End if
End With引入一个Variant类型的新变量,它接受一切(包括空值)并检查它的值。
Dim rawData As variant
rawData = Me.txtTesouro_Compra_DataOps.Value
If Not IsNull(rawData) Then
If IsDate(rawData) Then dteCompraDataOps = rawData
End If方法A的问题是,值123被视为日期,但是选项B将捕获它。
https://stackoverflow.com/questions/60561359
复制相似问题