2012-05-08 56 views
1

好吧!然後直接進入代碼!從包含excel行的記錄集中刪除記錄

代碼:

Const adOpenStatic = 3 
Const adLockOptimistic = 3 
Const adCmdText = &H0001 

Set objConnection = CreateObject("ADODB.Connection") 
Set objRecordSet = CreateObject("ADODB.Recordset") 


objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
    "Data Source=C:\Users\HV\Desktop\samp.xls;" & _ 
    "Extended Properties=""Excel 8.0;HDR=Yes;"";" 

objRecordset.Open "Select * FROM [Sheet1$]", _ 
objConnection, adOpenStatic, adLockOptimistic, adCmdText 

objRecordSet.delete 1 

錯誤消息:

http://s14.postimage.org/fntmbde0x/err.jpg

XLS:

http://s7.postimage.org/4oklf867f/xls.jpg

我希望做的是剛剛刪除的記錄集的第一個記錄,只記得設置不會更新到XLS記錄。任何幫助非常感謝:)

回答

0

您需要一個斷開記錄集。

  1. 設置Recordset.CursorLocationadUseClient

  2. 打開記錄&提取行

  3. 設置Recordset.ActiveConnectionNothing

現在您可以從記錄集中刪除記錄。

Const adOpenStatic = 3 
Const adLockOptimistic = 3 
Const adCmdText = &H1 
Const adUseClient = 3 
Set objConnection = CreateObject("ADODB.Connection") 
Set objRecordSet = CreateObject("ADODB.Recordset") 


objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
    "Data Source=C:\samp.xls;" & _ 
    "Extended Properties=""Excel 8.0;HDR=Yes;"";" 
objRecordSet.CursorLocation = adUseClient 
objRecordSet.Open "Select * FROM [Sheet1$]", objConnection, adOpenStatic, adLockOptimistic 
Set objRecordSet.ActiveConnection = Nothing 
objConnection.Close 
objRecordSet.Delete 1