请问以下代码是不是出错了?
Dim Con As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Private Sub Form_Load()
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=D:\1.xls;Extended Properties=Excel 8.0;HDR=Yes"
Rs.Open "select * from [sheet1$]", Con
Rs.MoveFirst
For i = 1 To Rs.RecordCount
For j = 0 To Rs.Fields.Count - 1
Text1(i).Text = Rs.Fields(j).Value
Next
Rs.MoveNext
Next
End Sub
代码没有出错提示!但有一个问题!
为什么它会从第二行开始读的?如果想从第一行开始读数据!那代码该怎么写呢?
因为第一行是定义字段名
Public Function Read_Excel _
(ByVal sFile _
As String) As ADODB.Recordset
On Error GoTo fix_err
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim sconn As String
rs.CursorLocation = adUseClient
这里有问题,导致rs.recordcount的值老是-1
rs.CursorType = adOpenKeyset
rs.LockType = adLockBatchOptimistic
sconn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=" & sFile
rs.Open "SELECT * FROM [sheet1$]", sconn
Set Read_Excel = rs
Set rs = Nothing
Exit Function
fix_err:
Debug.Print Err.Description + " " + _
Err.Source, vbCritical, "Import"
Err.Clear
End Function