我程序中没用ADO DATA控件,
      只是设置了4个按纽:“首记录”,“上一条记录”,“下一条记录”,“尾记录”
      并用变量X(初值0)进行统计(如按“首记录”则x=1,”,“下一条记录”x=x+1)以此来 确定当前记录的位置,在不添加记录时运行正确
而程序一运行每隔5秒自动生成记录或手动添加记录时,当前记录的位置就相差太远(甚至出现负数)
我用过RecordSet的AbsolutePosition方法,但不能定位。
是不是用了ADODC1控件,不管记录集受到多个RecordSet对象的修改或受到外部变量的影响,都能正确定位吗?
我程序中用过ADODC1控件,数据连接正确(其他设置都对),但一运行说 “在主关键字索引或其他关系之间创建重复值,此次操作取消”
请叫高手如何才能解决问题?

解决方案 »

  1.   

    新建工程,在菜单工程/引用中添加microsoft activex data object 2.6 library
    在C盘根目录下建立FCHY。MDB当中设立一个temp表,有字段如下
    流水号(自动编号)
    日期(日期时间)
    时间(日期时间)
    航班号(文本)
    票据号(文本)
    船号(文本)
    验票(数字)
    工号(文本)
    程序界面上添加1个文本框3个按钮然后COPY以下程序,
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim x As DoublePrivate Sub Command1_Click()
    If rs.BOF = False Then
        x = x - 1
        rs.MovePrevious
    End If
    Text1.Text = Str(x)
    End SubPrivate Sub Command3_Click()
    cn.Execute "insert into temp(日期,时间,航班号,船号,票据号,验票,工号) values (#2005-1-1#,#2005-1-1#,'a','a','a',1,'a')"
    rs.Close
    rs.Open "select * from temp", cn, 3, 1
    x = 1
    End SubPrivate Sub Form_Load()
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\fchy.mdb;Persist Security Info=False"
    cn.Open
    Set rs = CreateObject("adodb.recordset")
    rs.Open "select * from temp", cn, 3, 1
    x = 1
    End Sub
    Private Sub Command2_Click()
    If rs.EOF = False Then
        x = x + 1
        rs.MoveNext
    End If
    Text1.Text = Str(x)
    End Sub