Office中国论坛/Access中国论坛

标题: 3464, 保存时提示 标准表达式中数据类型不匹配 [打印本页]

作者: 紫风    时间: 2011-11-3 14:43
标题: 3464, 保存时提示 标准表达式中数据类型不匹配
本帖最后由 紫风 于 2011-11-3 14:48 编辑

请先看以下代码:
Private Sub CmdSave_Click()
    Me.Refresh
    If IsNull(DLookup("维修ID", "tbl维修", "维修ID='Me.维修ID' ")) Then
    Dim Stemp As String
    Dim rs As New ADODB.Recordset
    rs.Open "tbl维修", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
        With rs
            .AddNew
            ![维修ID] = Me.维修ID
            ![日期] = Me.日期
            ![维修类型] = Me.维修类型
            。。。。。。。。。。。

报错在红色部分。
维修ID是 数字
是不是数字或文本的问题?应该怎么改呢?有劳各位帮看一下,谢谢了!

补充一下:
当录入新记录保存时,是正常的,但当窗体里有记录,我修改后再保存,就在这里报错了,代码都跑不到我修改记录那行。
我的意图是:
如果表里没有当前窗体的维修ID的记录,则添加新记录;如果表里有该ID的记录,则执行修改记录的代码。
作者: yehf    时间: 2011-11-3 15:23
  If IsNull(DLookup("维修ID", "tbl维修", "维修ID=" & Me.维修ID ))
作者: 紫风    时间: 2011-11-3 15:27
谢谢楼上!

不过还是过不去。这一行是没有问题了,但是在.update就卡住了,说是索引问题?
作者: roych    时间: 2011-11-3 17:53
有没有循环语句和MoveNext?
作者: 紫风    时间: 2011-11-4 09:30
本帖最后由 紫风 于 2011-11-4 09:32 编辑

回版主,没有MOVENEXT或循环。
我把库上传上来了,请帮我看一下如何解决,好么?谢谢!
出问题的代码在frm维修的CmdSave里。
作者: roych    时间: 2011-11-7 21:40
不好意思,之前出去玩了几天,今天才看到附件。根据提示,你的索引为空,因此更新时会弹出错误提示,加上这句:
rs(0)=Me.维修ID(我比较习惯这样写,有时候可能用For循环来处理,会节约些代码)
或者
!维修ID=Me.维修ID
再测试下看看(我的2010版本测试后,保存成功)。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3