我的录入窗体放着一些文本匡和combox,下面是一排功能按钮,录入,删除,查询什么的。功能按钮下面是一个FLEXGRID。这就是界面了。
Public adors As New adodb.Recordset
Public adoconn As New adodb.Connection
Public sQsql As String
Public conn As String  conn = "FileDSN=AAA.dsn;UID=sa;PWD=111"
        adoconn.Open conn
           sQsql = "select * from 客户资料  where 客户编号='" & Trim(txtkhID) & "'"
           adors.Open sQsql, adoconn, adOpenKeyset, adLockOptimistic
      
         If adors.RecordCount > 0 Then
            MsgBox "已经存在此档案编号!", vbOKOnly + vbExclamation, "警告"
            txtkhID.SetFocus
            txtkhID.SelStart = 0
            txtkhID.SelLength = Len(txtID)
            adors.Close
            adoconn.Close
            Exit Sub
        End If
        adors.Close
 '添加新记录
     sQsql = "select * from 客户资料  "
     adors.Open sQsql, adoconn, adOpenKeyset, adLockOptimistic
    If adors.RecordCount > 0 Then
     adors.AddNew
     adors.Fields(0) = txtkhID
     adors.Fields(1) = txtkhName
     adors.Fields(2) = txtAss
     adors.Fields(3) = txtsfID
     adors.Fields(4) = txtAddr
     adors.Fields(5) = ComPay
     adors.Fields(6) = txtKnow
     adors.Fields(7) = Compro
     adors.Fields(8) = txtOper
     adors.Fields(9) = DTPicker1
     adors.Update
     MsgBox "记录添加成功!"
     txtkhID = ""
     txtkhName = ""
     txtAss = ""
     txtAddr = ""
     txtsfID = ""
     txtKonw = ""
     adors.Close
     adoconn.Close
   End If
End Sub

解决方案 »

  1.   

    sQsql = "select * from 客户资料  "
         adors.Open sQsql, adoconn, adOpenKeyset, adLockOptimistic
        If adors.RecordCount > 0 Then(如果没有纪录,,,,,会怎么样呢?)
         adors.AddNew
         adors.Fields(0) = txtkhID
         adors.Fields(1) = txtkhName
         adors.Fields(2) = txtAss
         adors.Fields(3) = txtsfID
         adors.Fields(4) = txtAddr
         adors.Fields(5) = ComPay
         adors.Fields(6) = txtKnow
         adors.Fields(7) = Compro
         adors.Fields(8) = txtOper
         adors.Fields(9) = DTPicker1
         adors.Update
         MsgBox "记录添加成功!"
         txtkhID = ""
         txtkhName = ""
         txtAss = ""
         txtAddr = ""
         txtsfID = ""
         txtKonw = ""
         adors.Close
         adoconn.Close
       End If
    End Sub
      

  2.   

    你的代码可能有问题。
    记录集rs再次打开前要先关闭,
    可以用rs.State=adStateOpen来判断,
    其次,在记录集rs插入和更新前,
    最好判断是否支持该操作,
    rs.Supports(adAddNew)
    rs.Supports(adUpdate)
    ^_^