保存
Adodc2.Recordset.Fields("fnumber").Value = Text1(4).Text
Adodc2.Recordset.Fields("fdate").Value = DTPicker2.Value
Adodc2.Recordset.Update
新增
Adodc2.Recordset.AddNew
If Text1(4).Text <> "" Then
If rsmenu.State = adStateOpen Then rsmenu.Close
rsmenu.LockType = adLockOptimistic
    rsmenu.CursorType = adOpenKeyset
    rsmenu.Open "Select count(*) From famaintain where fnumber='" + Text1(4).Text + "'", cnnmenu
If rsmenu.Fields(0).Value = 0 Then
Text2.Text = 1
Else
Text2 = rsmenu.Fields(0).Value + 1
为什么我单步执行结果是对的,可是我直接运行结果有时对,有时不对?是不是和速度有关啊?是不是那里还要设置比如实时提交啊?

解决方案 »

  1.   

    用ado对象比较好,不要用ado控件
      

  2.   

    Adodc2.Recordset.AddNew这用的是控件If Text1(4).Text <> "" Then
    If rsmenu.State 这用的却是记录集,你到底想用什么啊!!!!不懂.看看下面的代码:
    Option Explicit'工程->引用->Microsoft ActiveX Data Objects 2.0 Library (后面为版本号)
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset'在MSHFLEXGRID表格控件中显示查询到的内容
    Private Sub Command1_Click()
        If rs.State = adStateOpen Then rs.Close
        rs.Open "SELECT * FROM USERPASSWORD", cn, adOpenDynamic, adLockOptimistic
        Set MSHFlexGrid1.DataSource = rs
    End Sub'向数据库中添加数据
    Private Sub Command2_Click()
        If rs.State = adStateOpen Then rs.Close
        rs.Open "SELECT * FROM USERPASSWORD", cn, adOpenDynamic, adLockOptimistic
        rs.AddNew
        rs!UID = txtUid.Text
        rs!PWD = txtPwd.Text
        rs!TRUENAME = txtName.Text
        rs!CREATEDATE = Format(Now, "YYYY/MM/DD")
        rs.Update
        
        Command1.Value = True
    End Sub'从数据库中删除数据
    Private Sub Command3_Click()
        cn.Execute "DELETE FROM USERPASSWORD WHERE UID = '" & txtUid.Text & "'"
        Command1.Value = True
    End SubPrivate Sub Form_Load()
        cn.ConnectionString = "DBQ=" & App.Path & "\TelePhone.mdb;DefaultDir=" & _
            App.Path & ";Driver={Microsoft Access Driver (*.mdb)};" & _
            "DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;" & _
            "MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" & _
            "Threads=3;UID=ADMIN;UserCommitSync=Yes;PWD=admind1234;"
        cn.Open
        '查询字符串可以上这里查
        'http://www.connectionstrings.com/
    End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    On Error Resume Next
        rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
    End Sub
      

  3.   

    我也遇到过用下面的API解决了
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
      

  4.   

    for i=1 to 100000
       doevents
    next 
    就ok.