Kasutage suletud töövihikut andmebaasina (ADO), kasutades Microsoft Excelis VBA -d

Anonim

Alltoodud protseduuride abil saate ADO abil suletud töövihikust kirjeid hankida ja andmeid lugeda/kirjutada.
Helistage protseduurile järgmiselt:

GetWorksheetData "C: FoldernameFilename.xls", "SELECT * FROM [SheetName $];", ThisWorkbook.Worksheets (1) .Range ("A3")
Asendage SheetName töölehe nimega, kust soovite andmeid alla laadida.

Alam GetWorksheetData (strSourceFile kui string, strSQL kui string, TargetCell kui vahemik)
Dim cn kui ADODB.ühendus, rs kui ADODB. Recordset, f Nagu täisarv, r kui pikk
Kui TargetCell pole midagi, väljuge alamist
Määra cn = Uus ADODB.ühendus
Vea korral Jätka järgmist
cn.Open "DRIVER = {Microsoft Exceli draiver (*.xls)}; DriverId = 790; ReadOnly = True;" & _
"DBQ =" & strSourceFile & ";"
"DriverId = 790: Excel 97/2000
"DriverId = 22: Excel 5/95
"DriverId = 278: Excel 4
"DriverId = 534: Excel 3
Viga GoTo 0
Kui cn pole midagi siis
MsgBox "Ei leia faili!", VbExclamation, ThisWorkbook.Name
Välju sub
Lõpp Kui

'avage kirje
Määra rs = Uus ADODB.Recordset
Vea korral Jätka järgmist
rs. Ava strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs. Avage "SELECT * FROM [SheetName $]", _
cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs. Avage "SELECT * FROM [SheetName $]", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs.Ava "SELECT * FROM [SheetName $] WHERE [Välja nimi] NAGU' A%'", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs.Ava "SELECT * FROM [SheetName $] WHERE [Välja nimi] NAGU" A%"TELLI [Välja nimi]", _
cn, adOpenStatic, adLockOptimistic, adCmdText

'valikulised viisid kirje kogumiseks
'Set rs = cn.Execute ("[A1: Z1000]")' esimene tööleht
'Määra rs = cn.Execute ("[DefinedRangeName]")' mis tahes tööleht

Viga GoTo 0
Kui rs pole siis midagi
MsgBox "Faili ei saa avada!", VbExclamation, ThisWorkbook.Name
cn. Sule
Määra cn = mitte midagi
Välju sub
Lõpp Kui

RS2WS rs, TargetCell
„TargetCell.CopyFromRecordset rs” valikuline lähenemine Excel 2000 või uuemale versioonile

Kui rs.State = adStateOpen Then
rs. Sule
Lõpp Kui
Määra rs = mitte midagi
cn. Sule
Määra cn = mitte midagi
End Sub

Makronäide eeldab, et teie VBA projekt on lisanud viite ADO objektiteekile.
Seda saate teha VBE -s, valides menüü Tööriistad, Viited ja valides Microsoft
ActiveX andmeobjektid x.x objektide kogu.