Dim Conn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim j As Integer
j = 0
    Conn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _
                   "DriverId=790;" & _
                   "Dbq=C:\Documents and Settings\zheng\桌面\tomorrow\test.xls;" & _
                   "DefaultDir=C:\Documents and Settings\zheng\桌面\tomorrow;"Rst.Open "select * from [sheet1$]", Conn, adOpenKeyset, adLockOptimistic
'第一种
MsgBox (Rst.RecordCount)
'第二种
For i = 0 To 5000
If Rst.Fields(2).Value = "" Then
   Exit For
End If
j = j + 1
Rst.MoveNext
Next问题:
在第一个窗口中弹出256,但是我的excel数据库的条数为600多条,
然后马上出现提示:ODBC Excel Driver数值字段溢出Rst.Open "select * from [sheet1$]", Conn, adOpenKeyset, adLockOptimistic
当我把上面的这句话改动adopenkeyset为其他的参数时候,就会出现其他的情况,但
是结果都是不对的或则错误的。为什么??在下急等用的。

解决方案 »

  1.   

    up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!
      

  2.   

    up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!
      

  3.   

    以前用Excel当数据库,是用来读取其中的数据的。没加过数据,刚刚用你的方法加了一下,也不行。
    建议你可以先引用Excel对象(工程中引用m$ Excel X.0),然后用cell(X,y)=value 来处理数据
      

  4.   

    Private Sub Form_Load()
    On Error Resume Next
    Dim Conn As New ADODB.Connection
    Dim Rst As New ADODB.Recordset
    Dim j As Integer
    j = 0
    Dim x As String
        Conn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _
                       "DriverId=790;" & _
                       "Dbq=C:\Documents and Settings\zheng\桌面\tomorrow\test.xls;" & _
                       "DefaultDir=C:\Documents and Settings\zheng\桌面\tomorrow;"
                       
    Rst.CursorLocation = adUseClient
    Rst.CursorType = adOpenDynamic
    Rst.LockType = adLockOptimistic
    Rst.Open "select * from [sheet1$]", ConnRst.AddNew
    Rst.Fields(0).Value = Date
    Rst.Fields(2).Value = "88888888"
    Rst.Fields(3).Value = "锋"
    Rst.Fields(4).Value = "杭州大酒店"
    Rst.Fields(5).Value = "标间"
    Rst.Fields(6).Value = "ddd"
    Rst.Update
    List1.Visible = True
    Rst.MoveLast
    Text2.Text = Rst.Fields(4).Value
    Text2.Refresh
    Rst.Close
    Conn.Close
    End Sub代码如上,但是我当我执行后去看excel时,发现数据没有写入。非常奇怪!
      

  5.   

    可能有错误出现。你把这句去掉,再运行,看看有没有错误出现。
    On Error Resume Next //去掉!
      

  6.   

    Rst.Update
    后面加几个语句来探测:
    Rst.MoveLast
    MsgBox Rst.Fields(4).Value
    弹出的是刚加进去的数据:“杭州大酒店”
    好象是写入了,但是打开数据库就是没有。郁闷:(
      

  7.   

    Rst.AddNew
    Rst.Fields(0).Value = Date
    Rst.Fields(2).Value = "88888888"
    Rst.Fields(3).Value = "锋"
    Rst.Fields(4).Value = "杭州大酒店"
    Rst.Update
    Rst.MoveLast
    MsgBox Rst.Fields(4).Value            <--------------弹出“杭州大酒店”
    MsgBox Rst.RecordCount                <--------------数据的条数也加了1
      

  8.   

    我试了一下,我这里的代码没问题啊Sub ab()
    Dim db As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    'ChDir "C:\"
    'ActiveWorkbook.SaveAs Filename:="E:\WorkTemp.xls", FileFormat:=xlNormal, _
    '    Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
    '    CreateBackup:=False
    db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0 ;Extended Properties=Excel 8.0;Data Source = E:\WorkTemp.xls"
    db.Openrs.CursorLocation = adUseClient
    rs.CursorType = adOpenDynamic
    rs.LockType = adLockOptimistic
    rs.ActiveConnection = db
    If rs.State = adStateOpen Then rs.Close
    rs.Open "select * from [sheet1$]"
    'rs.AddNew
    rs.Fields(0).Value = "我好爱好爱你啊!!!"
    rs.Update
    rs.Close
    Set rs = Nothing
    End Sub
      

  9.   

    然后打开WorkTemp.xls,,,,"我好爱好爱你啊!!!"就躺在那啊