Access交流中心

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

update 日期字段时出错?

wen123456  发表于:2014-06-23 14:00:08  
复制

Private Sub 追加_Click()
    Dim rsE As New ADODB.Recordset
    Dim ssql As String
    Dim i As Integer, m1 As Integer, m2 As Integer
     ssql = "SELECT * FROM 签单及收款进度导入表 AS a WHERE [id] = (select  max([id]) from 签单及收款进度导入表 b where  a.合同编号=b.合同编号)"
    rsE.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    m1 = 0: m2 = 0
    For i = 1 To rsE.RecordCount
        If DCount("合同编号", "签单及收款进度表", "合同编号='" & rsE!合同编号.Value & "'") > 0 Then
           ' If DLookup("收尾款时间", "签单及收款进度表", "合同编号='" & rsE!合同编号.Value & "'") < rsE!收尾款时间.Value Then
                ssql = "update 签单及收款进度表 set 收尾款时间=#" & rsE!收尾款时间.Value & "#,"
                ssql = ssql & "首付款=" & rsE!首付款.Value & ","
                ssql = ssql & "二期款=" & rsE!二期款.Value
                ssql = ssql & " where 合同编号='" & rsE!合同编号.Value & "'"
                CurrentDb.Execute ssql
                m1 = m1 + 1
          ' End If
        Else
            ssql = "insert into 签单及收款进度表 (合同编号,收首期款时间,收二期款时间,收三期款时间,收尾款时间,首付款) "
            ssql = ssql & "values ('" & rsE!合同编号.Value & "',#"
            ssql = ssql & rsE!收首期款时间.Value & "#,#"
            ssql = ssql & rsE!收二期款时间.Value & "#,#"
            ssql = ssql & rsE!收三期款时间.Value & "#,#"
            ssql = ssql & rsE!收尾款时间.Value & "#,"
            ssql = ssql & rsE!首付款.Value & ")"
            CurrentDb.Execute ssql
            m2 = m2 + 1
        End If
        rsE.MoveNext
    Next
    rsE.Close: Set rsE = Nothing
    Me.签单及收款进度表.Requery
    MsgBox "修改首付款记录数:" & m1 & Chr(13) & Chr(10) & "追加新纪录数:" & m2
End Sub

问题:如果加上“If DLookup("收尾款时间", "签单及收款进度表", "合同编号='" & rsE!合同编号.Value & "'") < rsE!收尾款时间.Value Then。。。endif  能运行,但取消这二行,就提示”运行错误3144 ,update语句的语法错误“,请问问题在哪?

 

Top
wen123456 发表于:2014-06-23 14:21:03
cspa 发表于:2014-06-23 22:21:02
可能是某个更新值为空作祟,还应注意在每个赋值短语的逗号后加空格, 改为:
               ssql = "update 签单及收款进度表 set 收尾款时间=#" & nz(rsE!收尾款时间.Value,"") & "#,"
                ssql = ssql & " 首付款=" & nz(rsE!首付款.Value,0) & ","
                ssql = ssql & " 二期款=" & nz(rsE!二期款.Value,0)
                ssql = ssql & " where 合同编号='" & nz(rsE!合同编号.Value,"") & "'"
试试。
经验证就是此问题,你的付款有空记录,加nz函数即可通过。


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