Private Sub TestConnectDbf()
‘连接打开dabase III数据库
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
Dim w as string
Dim c as string
w = Mid$(dbname, 1, Len(dbname) - Len(Text2.Text))
iConc = "Provider=MSDASQL.1;Extended Properties= " & "DSN=dBASE Files;DBQ= " & w
db.Mode = adModeReadWrite
db.Open iConc
rs.Open Text2.Text, db
‘取得记录
Set Adodc1.Recordset = rs
C=rc()
‘进行添加记录
Adodc1.recordset.addnew
End sub
Public Function rc() As String
Text1(0).DataField = rs.Fields(0).Name
Text1(1).DataField = rs.Fields(1).Name
Text1(2).DataField = rs.Fields(2).Name
Text1(3).DataField = rs.Fields(5).Name
Text1(4).DataField = rs.Fields(3).Name
Text1(5).DataField = rs.Fields(4).Name
Text1(6).DataField = rs.Fields(7).Name
Text1(7).DataField = rs.Fields(6).Name
Text1(8).DataField = rs.Fields(44).Name
Text1(9).DataField = rs.Fields(45).Name
Text1(10).DataField = rs.Fields(46).Name
End fuction
为什么我能看到记录的显示,但不能对其进行添加和删除,同时不能向前移动一个记录,也不能移动到最后,但是向后移动一个记录和移动到第一个记录可以呢?
请各位高手帮忙,小弟再此

解决方案 »

  1.   

    记录集的游标应该是动态的,试试。
    rs.Open Text2.Text, db, adOpenDynamic, adLockOptimistic
      

  2.   

    ' 写了一个不过还没有完善,你试着改吧。要打球去了
    Option ExplicitPrivate Sub Form_Load()
    Dim connectionString As String
    Dim Sql As String
    Dim i As Integer
    Dim cn As ADODB.Connection
    Dim rs As ADODB.RecordsetconnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test;Data Source=KAN"Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordsetcn.Open connectionString  Sql = "select * from tStudent"
      rs.Open Sql, cn, 3, 3
      
      Set Adodc1.Recordset = rs
      
       For i = 0 To Adodc1.Recordset.Fields.Count - 1
          Set txtField(i).DataSource = Adodc1.Recordset
           txtField(i).DataField = Adodc1.Recordset.Fields(i).Name
       Next
       
    End Sub
    Private Sub cmdOperate_Click(Index As Integer)
    Dim i As Integer
      Select Case Index
             Case 0  '    新增
                Adodc1.Recordset.AddNew
                For i = 0 To txtField.Count - 1
                 '   Set txtField(i).DataSource = Nothing
                    txtField(i).Text = ""
                Next
             Case 1   '保存
               With Adodc1.Recordset
                  For i = 1 To .Fields.Count - 1 '0为自动增加字段
                     .Fields(i).Value = Trim(txtField(i).Text)
                  Next
                  .Update
                   
                 
                End With
               
             Case 2
             
             Case 3
      End Select
    End Sub
      

  3.   

    保存应该不用了,在TEXT中输入数据后点击ADODC中的下一条按钮