gpt4 book ai didi

ms-access - CDate 类型不匹配错误

转载 作者:行者123 更新时间:2023-12-02 23:10:24 26 4
gpt4 key购买 nike

我尝试在记录集中使用 CDate() 将文本字段转换为日期,但不断收到类型不匹配错误。输入文本格式为MMDDYYYY。 CDate 不识别这种格式吗?我需要一个单独的功能吗?有什么想法吗?

Text Date  -> Converted Date
--------- --------------
04122012 -> 04/12/2012


Dim db As DAO.Database
Dim rst As DAO.Recordset

Set db = CurrentDb
Set rst = db.OpenRecordset("tbl_dates", Type:=dbOpenDynaset)

Do Until rst.EOF
rst.Edit
rst![Converted Date]=CDate(rst![Text Date])
rst.Update
rst.MoveNext

Loop

Set rst = Nothing
Set db = Nothing

最佳答案

CDate() 不会接受月、日和年部分之间没有某种类型分隔符的日期字符串。此尝试因类型不匹配错误而失败。

? CDate("04122012")

如果有帮助,您可以使用 IsDate() 函数检查日期字符串是否采用 CDate() 接受的格式。

? IsDate("04122012")
False
? IsDate("04-12-2012")
True
? IsDate("04/12/2012")
True
? CDate("04-12-2012")
4/12/2012
bar = "04122012" : Debug.Print CDate(Left(bar,2) & "-" & _
Mid(bar,3,2) & "-" & Right(bar,4))
4/12/2012

编辑:如果系统的区域设置与日期字符串的格式不匹配,您可以将这些日期字符串转换为 yyyy-mm-dd 格式以避免 CDate() 出现问题。

bar = "04122012" : Debug.Print CDate(Right(bar,4) & "-" & _
Left(bar,2) & "-" & Mid(bar,3,2))
4/12/2012

关于ms-access - CDate 类型不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10502802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com