Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

标准表达式中数据类型不匹配,如何解决 谢谢老师

飘摇王  发表于:2015-07-01 13:10:56  
复制

保存的时候 如下提示

 

Private Sub btnSave_Click()
    On Error GoTo ErrorHandler
    Dim strWhere As String
    Dim strSQL As String
    Dim cnn As Object           'ADODB.Connection
    Dim rst As Object           'ADODB.Recordset

    If Not CheckRequired(Me) Then Exit Sub
    If Not CheckTextLength(Me) Then Exit Sub

    strWhere = "[wjbm]<>" & Nz(Me![wjbm], 0) & " AND [wjbm]=" & Nz(Me![wjbm], 0)
    If DCount("*", "tblCodeYCGL", strWhere) > 0 Then
        MsgBoxEx "【文件编码】已存在,不允许重复录入。", vbCritical
        Exit Sub
    End If
  
    Set cnn = CurrentProject.Connection

    strSQL = "SELECT * FROM [tblCodeYCGL] WHERE [ID]=" & Nz(Me![ID], 0)
    Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
    If rst.EOF Then
        rst.AddNew
    End If
    rst![lb] = Me![lb]
    rst![wjbm] = Me![wjbm]
    rst![zrbm] = Me![zrbm]
    rst![fxbm] = Me![fxbm]
    rst![pm] = Me![pm]
    rst![bhgxm] = Me![bhgxm]
    rst![bhgms] = Me![bhgms]
    rst![fxrq] = Me![fxrq]
    rst![fhrq] = Me![fhrq]
    rst![sfqr] = Me![sfqr]
    rst![qrrq] = Me![qrrq]
    rst![bz] = Me![bz]
    rst![nd] = Me![nd]
    rst![fj] = Me![fj]
    rst.Update
    Me![ID] = rst![ID]
    rst.Close

    Form_frmCodeYCGL.RefreshDataList
    MsgBoxEx "保存成功!", vbInformation

    If Me.DataEntry Then
        ClearControlValues Me
    Else
        DoCmd.Close acForm, Me.Name, acSaveNo
    End If

ExitHere:
    Set rst = Nothing
    Set cnn = Nothing
    Exit Sub

ErrorHandler:
    RDPErrorHandler Me.Name & ": Sub btnSave_Click()"
    Resume ExitHere
End Sub

 

Top
缪炜 发表于:2015-07-02 08:35:54
把出错语句注释了在执行看一下是哪里错了,    strWhere = "[wjbm]<>" & Nz(Me![wjbm], 0) & " AND [wjbm]=" & Nz(Me![wjbm], 0),你这里也不对,改成:    strWhere = "[ID]<>" & Nz(Me![ID], 0) & " AND [wjbm]=" & Nz(Me![wjbm], 0)


飘摇王 发表于:2015-07-02 11:55:52

 strWhere = "[wjbm]<>" & Nz(Me![wjbm], 0) & " AND [wjbm]=" & Nz(Me![wjbm], 0)
    If DCount("*", "tblCodeYCGL", strWhere) > 0 Then
        MsgBoxEx "【文件编码】已存在,不允许重复录入。", vbCritical
        Exit Sub
    End If
就这句有问题 我就想加个【wjbm】不允许重复

按照老师改的 也是那样提示



缪炜 发表于:2015-07-02 12:46:54

你先把on error goto 语句注释了再调试一下,看一下哪里错了,才知道怎么去改



飘摇王 发表于:2015-07-02 13:17:54

老师 我错了 我的[wjbm]不小心弄成短文本格式了

我面壁去



总记录:4篇  页次:1/1 9 1 :