小弟初学数据库,现在遇到点问题还请各位高手帮忙!!
以下是程序:caN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:database password=11119;Data Source=" & App.Path & "\Powergy.mdb"   Rrs.CursorLocation = adUseClient   SQLstr = "SELECT 手牌号,状态 FROM Temp WHERE [手牌号]='" & JieZhangCC
   Rrs.Open SQLstr, caN, 3, 3
    If Rrs.RecordCount > 0 Then
        Rrs.MoveFirst
        Do Until Rrs.EOF
 
            If Rrs![状态] = "未结" Then
                Rrs![状态] = CStr(Date) + "|" + CStr(time)
            End If
        Rrs.MoveNext
        Loop
End IfRrs.Close
caN.Close我发现,当返回值是一个的时候没有问题,当值大于3个的时候就出现提示“实时错误 -2147414259 键列信息不足或不正确。更新影响到多行。”
请问该如何解决呀!!!

解决方案 »

  1.   

    你select的数据必须有主键或者唯一索引,比如
    SQLstr = "SELECT id,手牌号,状态 FROM Temp WHERE [手牌号]='" & JieZhangCC
      

  2.   

    1、SQLstr = "SELECT 手牌号,状态 FROM Temp WHERE [手牌号]='" & JieZhangCC
    后面应加“ & "'" ”
    2、如果需要修改数据应如下:
    ..........................
            If Rrs![状态] = "未结" Then
                    Rrs![状态] = CStr(Date) + "|" + CStr(time)
                    Rrs.Update
                End If
            Rrs.MoveNext
    ................................
      

  3.   

    SQLstr = "SELECT * FROM Temp WHERE [手牌号]='" & JieZhangCC
    问题解决!!