Private Sub CmdDeal_Click()
    If rs.RecordCount > 0 Then
        msg = MsgBox("您确实要还书吗?", vbYesNo)
        If msg = vbYes Then
            rs.Fields("dateBack") = Format(Now, "yyyy-mm-dd") '更新借还信息的"还书日期"
            rs.Update                        '更新数据
            '图书的存储数量加1
            SQL = " update 图书信息表 set volume=volume+1 where bookID='"
            SQL = SQL & Trim(Me.txtBookNo.Text) & "'"
            Call ExecuteSQL(SQL, msg)
            
            If CDbl(Me.LblPenalty.Caption) > 0 Then
                MsgBox ("还书成功," & "罚款金额为:" & Me.LblPenalty.Caption)
                '将罚款金额添加到读者信息表中
                SQL = "update 读者信息表 set fineR=fineR+" & CDbl(Me.LblPenalty.Caption)
                SQL = SQL & " where readerID = '" & Trim(txtQuery.Text) & "'"
                Call ExecuteSQL(SQL, msg)
            Else
                MsgBox ("还书成功!")
            End If
            Call LoadData                    '装载数据
            Call ShowData                    '显示数据
        Else
            Exit Sub
        End If
    Else
        MsgBox ("没有可以处理的续借信息")
    End If
End Sub我这段代码到底是哪里出现问题了
          rs.Update                        '更新数据
这句出现这个错误
紧急求助,毕设临近啊~~~~

解决方案 »

  1.   

    rs打开时的sql语句是不是没选dateBack列,换成select *   from  ......   试试
      

  2.   

    Private Sub LoadData()
    '装载数据
        '得到查询条件
        Set rs = Nothing
        '查询图书信息,构建SQL语句
        SQL = "SELECT a.bookID,b.title,b.author,b.publishTime,a.dateBorrow,a.dateBorrow2,a.dateBack "
        SQL = SQL & " FROM 借还信息表 a INNER JOIN  图书信息表 b ON a.bookID = b.bookID "
        SQL = SQL & " WHERE (a.dateBack IS NULL)  AND (a.readerID = '"
        SQL = SQL & Trim(txtQuery.Text) & "')"
        Set rs = SelectSQL(SQL, msg)
        Set Me.DataGrid1.DataSource = rs
        DataGrid1.Refresh
    End Sub
      

  3.   

    貌似join语句返回的记录集不能用update方法吧?
    你可以用你上述的join语句返回借还信息表中的一个主键,然后根据这个主键,用update语句更新借还信息表的对应信息
      

  4.   


    完全正确,另外,你得到的字段并没有dateBack的别名列~