Access交流中心

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

代码执行显示类型不匹配,请帮我找一下原因,万分感谢!

流星  发表于:2015-02-05 15:57:09  
复制

请帮我看一下代码哪里有问题,结果显示类型不匹配

Private Sub Command3_Click()

    On Error Resume Next
    Dim db As DAO.Database
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim fd1 As DAO.Field
    Dim fd2 As DAO.Field
    Dim fd3 As DAO.Field
    Dim fd4 As DAO.Field
    Dim fd5 As DAO.Field
    Dim fd6 As DAO.Field
    Dim fd7 As DAO.Field
    Dim str1 As String
    Dim str2 As String
    Dim dt1 As Date
    Dim dt2 As Date
    Dim dt3 As Date
    Dim dt4 As Date
    Dim dt5 As Date
    Dim lg1 As Boolean
    
    Set db = CurrentDb()
    Set rs1 = db.OpenRecordset("select * form [报关单信息表] where [完成情况]=false")
    rs1.MoveFirst
    Set fd1 = rs1.Fields(2)  '提取【报关单信息表】中的发票号
    str1 = fd1.Value
    Set fd3 = rs1.Fields(9)  '提取【报关单信息表】中的报账日期
    dt1 = fd3.Value
    Set fd4 = rs1.Fields(10)  '提取【报关单信息表】中的需报告字段
    lg1 = fd4.Value
    Set fd5 = rs1.Fields(11)  '提取【报关单信息表】中的报告付款日期
    dt3 = fd5.Value
    Set fd6 = rs1.Fields(12)  '提取【报关单信息表】中的报告进口日期
    dt4 = fd6.Value
    Set fd7 = rs1.Fields(7)  '提取【报关单信息表】中的进口日期
    dt5 = fd7.Value
    
    Do Until rs.EOF
       Set rs2 = db.OpenRecordset("select * from [发票信息表] where [发票号]=" & sqltext(str1))
       Set fd2 = rs2.Fields(0)  '提取【发票信息表】中的赎单编号
       str2 = fd2.Value
       Set rs2 = db.OpenRecordset("select * from [赎单信息表] where [赎单编号]=" & sqltext(str2))
       Set fd2 = rs2.Fields(1)   '提取【赎单信息表】中的实际付款日期
       dt2 = fd2.Value
       
       If dt1 Is Not Null And dt2 Is Not Null Then  '付款日期及报账日期不为空
          If lg1 = True Then            '是否需要报告
             If dt2 = dt3 Or dt5 = dt4 Then   '报告付款日期=实际付款日期 或 报告进口日期=进口日期
                rs1.Edit
                lg1.Value = True
                rs1.Update
             End If
          Else
             rs1.Edit
             lg1.Value = True
             rs1.Update
          End If
       End If
       rs.MoveNext
    Loop
    
    rs1.Close
    rs2.Close
    db.Close
    Set rs1 = Nothing
    Set rs2 = Nothing
    Set db = Nothing
End Sub

 

Top
流星 发表于:2015-02-05 16:25:35

下面是表格样式



cspa 发表于:2015-02-05 21:22:20
       Set rs2 = db.OpenRecordset("select * from [赎单信息表] where [赎单编号]='" & sqltext(str2)) & "'"

流星 发表于:2015-02-05 22:06:03
不是selcet的问题,是日期/时间类型的问题

cspa 发表于:2015-02-06 08:13:25
搞复杂了,写得像绕口令。

麥田 发表于:2015-02-07 11:10:58
发出错行代码

流星 发表于:2015-02-20 08:46:57
我是把日期改成文本来处理的,而且成功了

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