Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: VB

Программирование VB

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Excel выгрузить в RecordSet
 
 автор: Z_Z   (14.04.2009 в 11:54)   личное сообщение
 
 

Здравствуйте. я новичек , чильно не пинайте....
Подскажите, плиз как табличку из Excel выгрузить в Recordset ?

  Ответить  
 
 автор: osmor   (14.04.2009 в 12:17)   личное сообщение
 
 

функция вернет ADODB.Recordset по указанному имени файла и имени листа

Public Function GetRecordsetFromExcel(xlsFullFileName As String, xlsSheetName As String) As ADODB.Recordset
'xlsFullFileName - полный путь и имя файла xls с расширением
'xlsSheetName - имя листа который нужно получить
    Dim con As ADODB.Connection
    Dim rst As ADODB.Recordset
   On Error GoTo GetRecordsetFromExcel_Error
  Set con = New ADODB.Connection
  con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & xlsFullFileName & ";Extended Properties=" & Chr(34) & "Excel 8.0;HDR=Yes;IMEX=1" & Chr(34) & ";"
  con.Open
   Set rst = New ADODB.Recordset
   rst.Open "select * from [" & xlsSheetName & "$]", con
   Set GetRecordsetFromExcel = rst
    
   On Error GoTo 0
   Exit Function

GetRecordsetFromExcel_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure GetRecordsetFromExcel of VBA Document Form_Форма3"

End Function

  Ответить  
 
 автор: Z_Z   (14.04.2009 в 12:34)   личное сообщение
 
 

Спотыкается на строке
Dim con As ADODB.Connection
user-defined type not defined :(

  Ответить  
 
 автор: osmor   (14.04.2009 в 12:41)   личное сообщение
 
 

нужно подключить ADODB

  Ответить  
 
 автор: Z_Z   (14.04.2009 в 12:52)   личное сообщение
 
 

Блин! точно !!! А мучался ...:))

  Ответить  
 
 автор: Z_Z   (14.04.2009 в 12:58)   личное сообщение
 
 

Еще вопросик
Dim cnn
Dim path
Dim tablem
path = "C:\temp"
tablem = "table3"
Set cnn = CreateObject("ADODB.Connection")
cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
cnn.Properties("Extended Properties") = "dBase IV"
cnn.Properties("Data Source") = path
cnn.Open
cnn.Execute "CREATE TABLE " & tablem
И если файлик существует вывваливается ошибка, а можно его просто перезаписывать как-то?

  Ответить  
 
 автор: Z_Z   (14.04.2009 в 13:18)   личное сообщение
 
 

Нашел выход :))
Dim pDBF As String
pDBF = path & "table3.dbf"
If Len(Dir(pDBF)) > 0 Then
Kill pDBF 'Я пересоздаю dbf каждый раз ЗАНОВО -
End If

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList