access 2000 VBA 运行错误“13”,类型不匹配??

xty353535 2012-01-31 10:11:46
private Sub RegistButton_Click()
Dim dbLocal As Database
Dim QryDef1 As QueryDef
Dim RecSet1 As Recordset, RecSetW As Recordset
Dim SQLSTR As String
Dim RET As Integer

Me.Refresh '不定状態のレコード確定

RET = SetConnectString()
Me![CID] = CL_ID
Me![OID] = OP_ID

Set dbLocal = DBEngine.Workspaces(0).Databases(0) 'ローカルDBオブジェクト
Set QryDef1 = dbLocal.CreateQueryDef("") '一時的なクエリーを作成


'-----------------------------------------------------------------------------------------------
'修正レコードの更新

DoCmd.Hourglass True

Set QryDef1 = dbLocal.CreateQueryDef("", "SELECT [TPR120_@@].* FROM [TPR120_@@] WHERE (([TPR120_@@].H_FLG=2));")
Set RecSet1 = QryDef1.OpenRecordset()
QryDef1.Close

Do While Not RecSet1.EOF
SQLSTR = "SELECT UPD_CNT FROM TPR120"
SQLSTR = SQLSTR + " WHERE SEI_SJ_NO = " + Str(RecSet1("SEI_SJ_NO"))
SQLSTR = SQLSTR + " AND ITEM_CD = " + Str(RecSet1("ITEM_CD"))
RET = ExecuteSQL2(SQLSTR, ConnectTPR120, True)
Select Case RET
Case Is < 0
MsgBox "成形実績登録中にエラーが発生しました。", 16, FPR100_MSG_TITLE
Case Is = 0
MsgBox "他のユーザーからデータが削除されたため、実績情報の更新ができませんでした。", 16, FPR100_MSG_TITLE
Case Is > 0
If RetRec(0) = RecSet1("UPD_CNT") Then

运行到最后一步的时候,提示错误 13 求高手解答
是数据库里面的一个时间字段,这个程序是access2.0升级到2000的,
好像是这个UPD_CNT 字段原先是16位 ,现在变成32位,所以报错,
求高手帮忙修改
...全文
293 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xty353535 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jhone99 的回复:]
If RetRec(0) = (RecSet1("UPD_CNT") & "") Then

是什么数据类型?加val或其他数据类型转换看看
[/Quote] UPD_CNT 在数据库里是 0x00000000001DBC1D 这个
这是时间数据类型吧?
xty353535 2012-01-31
  • 打赏
  • 举报
回复
怎么加val或其他数据类型转换啊 我是新手,求详细点指点,谢谢了[Quote=引用 2 楼 jhone99 的回复:]
If RetRec(0) = (RecSet1("UPD_CNT") & "") Then

是什么数据类型?加val或其他数据类型转换看看
[/Quote]
jhone99 2012-01-31
  • 打赏
  • 举报
回复
If RetRec(0) = (RecSet1("UPD_CNT") & "") Then

是什么数据类型?加val或其他数据类型转换看看
jhone99 2012-01-31
  • 打赏
  • 举报
回复
可能数据类型不匹配,看这两个数据是什么

debug.print RetRec(0)
debug.print RecSet1("UPD_CNT")
看看
xty353535 2012-01-31
  • 打赏
  • 举报
回复
那应该怎么改啊,我从access2.0升到到了2000,好像16位得变成32位的,可是不知道怎么改[Quote=引用 5 楼 chinaboyzyq 的回复:]
0x00000000001DBC1D应该是十六进制串,这个字段应该是文本型的。
[/Quote]
chinaboyzyq 2012-01-31
  • 打赏
  • 举报
回复
0x00000000001DBC1D应该是十六进制串,这个字段应该是文本型的。

2,461

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧