首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含日期的TextBox为空时运行时错误13

包含日期的TextBox为空时运行时错误13
EN

Stack Overflow用户
提问于 2020-03-06 09:42:49
回答 1查看 222关注 0票数 1

尽管我检查了许多与错误13有关的问题,但我找不到问题的答案,所以我在这里尝试:

我正在构建代码以保存用户表单中的信息,但首先我要测试是否强制文本框为空。因为我使用的是64位的机器,所以我使用了特雷弗·艾尔的CalendarForm。

但是,在测试代码时,我遇到了从CalendarForms接收日期的空文本框的问题:

在这一行:

代码语言:javascript
复制
Dim dteCompraDataOps As Date: dteCompraDataOps = Me.txtTesouro_Compra_DataOps.value

此部分突出显示并返回运行时错误13:

代码语言:javascript
复制
dteCompraDataOps = Me.txtTesouro_Compra_DataOps.value 

当我检查来自空TextBoxes的值时,我得到:

代码语言:javascript
复制
dteCompraDataOps = "00:00:00"` 

这是正确的,因为它应该被视为日期,但如下:

代码语言:javascript
复制
Me.txtTesouro_Compra_DataOps.value = ""

就像一根绳子一样。

我做了一些搜索,并注意到日期数据类型是棘手的,当来自文本框是空的。

我可以找到一个解决方案:在声明变量之前创建一个Select来测试强制字段,但是我想学习如何处理本应为空的空文本框。

你能帮我解释一下我的谜团吗?

提前谢谢。Cub4_RJ

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-06 11:25:23

有两种方法来处理这个问题。

( a)检查Null:

代码语言:javascript
复制
With Me.txtTesouro_Compra_DataOps
    If Not IsNull(.Value) Then
        If IsDate(.Value) Then dteCompraDataOps = . Value
    End if
End With

引入一个Variant类型的新变量,它接受一切(包括空值)并检查它的值。

代码语言:javascript
复制
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将捕获它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60561359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档