如何解决为什么我看到运行时错误3421-访问VBA?
我一直在使用vba代码来简化我的工作,但是由于某种原因,它按预期停止了工作。它所做的是从我的数据库获得一个编号,然后去网站查找分配给该编号(公司)的相关证书,然后读取要记录在同一数据库中的等级和有效期。现在的问题是何时去
rs.fields(“ Expiry”)。Value = Split(sResult,“ |”)(1)
它抛出运行时错误3421,我认为是由于列被格式化为日期数据类型,但它可以正常工作数月。当将数据类型更改为文本时,它可以工作,但是当我稍后在查询和报告中使用它并将其作为日期时,它将使其混乱。
请问为什么要更改它以及如何对其进行修复? 谢谢 MD
Sub Get_BRCDirectory_Data()
Dim sCode,rs As DAO.Recordset,dic As Object,sResult As String,i As Long
Set dic = CreateObject("Scripting.Dictionary")
dic.CompareMode = 1
Set rs = CurrentDb.OpenRecordset("Approved")
If Not (rs.BOF And rs.EOF) Then
rs.MoveFirst
Do
sCode = rs.fields("SupplierCode").Value
If sCode <> "" Then
If Not dic.Exists(sCode) Then
sResult = GetGradeExpiryDate(CStr(sCode))
rs.Edit
rs.fields("Grade").Value = Trim(Split(sResult,"|")(0))
rs.fields("Expiry").Value = Split(sResult,"|")(1)
rs.UPDATE
dic(sCode) = Array(rs.fields("Grade").Value,rs.fields("Expiry").Value)
Else
rs.Edit
rs.fields("Grade").Value = dic(sCode)(0)
rs.fields("Expiry").Value = dic(sCode)(1)
rs.UPDATE
End If
End If
rs.MoveNext
Loop Until rs.EOF
End If
MsgBox "Done",64
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。