Call Module1.con
Dim sql As String
sql = "select 赔金 from bookcompenstion"
rs.Open sql, conn, adOpenDynamic, adLockPessimistic
Dim t As String
Dim q As String
Dim s As String
t = Text1.Text
q = Text2.Text
s = t * q
If rs.BOF = False Then
  rs.MoveFirst
Else
  For i = 1 To rs.RecordCount
      rs.AddNew
      rs.Fields("赔金") = s
      rs.Update
  Next
End If
Text1.Text = ""
Text2.Text = ""
rs.Close
conn.Close

解决方案 »

  1.   

    在conn.open 前面加一句    conn.CursorLocation = adUseClient
    试试
      

  2.   

    在rs.Open sql, conn, adOpenDynamic, adLockPessimistic 前加
    Dim rs as adodb.recordset
    Set rs=New adodb.recordset
      

  3.   

    我是用的一个模块 Public conn As New ADODB.Connection
    Public userid As String
    Public userpow As String
    Public rs As New ADODB.Recordset
    Public sqlfind As String
    Public finddok As Boolean
    Public frmdata As Boolean
    Public Const keyenter = 13
    Sub con()
    Dim connectionstring As String
    connectionstring = "provider=Microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\main.mdb"
    conn.CursorLocation = adUseClient
    conn.Open connectionstring
    End Sub
    我在conn.open前加上一楼说得那句话了 可是还是不行 bookcompenstion表 里"赔金"一栏没有记录全是0!
      

  4.   

    声明了但还是实例化的 Set rs=New adodb.recordset这句肯定要
      

  5.   

    If rs.BOF = False Then 
      rs.MoveFirst 
    Else 
    这一句有什么用?你这样写不会走到else中去,自然记录添加不到数据库中
      

  6.   

    t = Text1.Text 
    q = Text2.Text 
    s = t * q   这里能直接相乘?
      

  7.   

    先把
    t = Text1.Text 
    q = Text2.Text 
    s = t * q
    这个改正确了
    把rs.Update 换成 rs.UpdateBatch看看。
      

  8.   

    各位大虾 有用可以写入了! 但是小弟还想做一个自动写入数据库 是这样的:
    1.首先获取赔偿记录数
    2.逐行写入一直全部写完就是把算好的钱数写到”赔金“字段里请问该怎么改?
    Call Module1.con
    Dim sql As String
    sql = "select 赔金 from bookcompenstion"
    Set rs = New ADODB.Recordset
    rs.Open sql, conn, adOpenDynamic, adLockPessimistic
    Dim t As String
    Dim q As String
    Dim s As String
    t = Val(Text1.Text)
    q = Val(Text2.Text)
    s = t * q
      For i = 1 To rs.RecordCount
          rs.AddNew
          rs.Fields("赔金") = s
          rs.Update
      Next
    Text1.Text = ""
    Text2.Text = ""
    rs.Close
    conn.Close这样写它添加记录只是在
    编号1 编号 书名 类型 姓名 学生证 解决方案 赔金 损坏程度 超期时间
    10 asdasdas adssadas 63 asdasdas0 0123456 asdasdasd 0 asdasdas 630                             0
    11 sdfsdfsd sadwqeq fsdsf fsdfsdf 0123456 0 0 sdfsdf 62
    16 qweqweqwe asdwewqe asdasda qwewqewq0 1023455 iououio 0 yuiuyiuyi 23                              0
    17 sdfsdfsd dfsdb 2342werwr sdfsfsf 0 sdfsdf 0 sfsfs 20
    18 qweqw asdw asdasda qwewqewq 1023455 0 0 yuiuyiuyi 23
    19 sdfsdfsd dfsdfsdf werwe sdfsfsf 0 sdfsdf 0 sfsfs 14
    这表的最后添加 怎么做让他从编号10开始一直输到19?
      

  9.   

    要用updata语句
    conn.Execute "update bookcompenstion set 赔金='" & s & "' where 编号1='" & (9+i) & "' "
      

  10.   

    有错误 说数据类型不匹配
    Call Module1.con
    Dim sql As String
    sql = "select 赔金 from bookcompenstion"
    Set rs = New ADODB.Recordset
    rs.Open sql, conn, adOpenDynamic, adLockPessimistic
    Dim t As String
    Dim q As String
    Dim s As String
    t = Val(Text1.Text)
    q = Val(Text2.Text)
    s = t * q
    conn.Execute "update bookcompenstion set 赔金='" & s & "' where 编号1='" & (9 + i) & "' "
    Text1.Text = ""
    Text2.Text = ""
    rs.Close
    conn.Close
      

  11.   

    晕,你的for 语句呢?
    不用for语句就
    conn.Execute "update bookcompenstion set 赔金='" & s & "' where 编号1>9 and 编号1<20 " 
    你的编号1是数字吧?错了一点,用for 语句就
    conn.Execute "update bookcompenstion set 赔金='" & s & "' where 编号1=" & (9 + i) & ""
      

  12.   

    okok 大哥可以了 我真要谢谢你啊 对了 这个论坛能不能给分啊!