2012-05-08 1 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

Что я ожидаю, чтобы сделать, это просто удалить 1-й записи из набора записей, помните только рекорд не обновляют в XLS. Любая помощь очень ценится :)

ответ

0

Вам нужен отключенный набор записей.

  1. Установить Recordset.CursorLocation для adUseClient

  2. Открыть набор записей & выборку строк

  3. Набор Recordset.ActiveConnection к Nothing.

Теперь вы можете удалить записи из набора записей.

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 
Смежные вопросы