Pozdravljeni!
Imam cca. 30 Accessovih (*.mdb) datotek. Vem, da je v eni od njih tabela XX. Ali moram res po vrsti odpirati vse Accessove datoteke, da jo najdem?
Poskusil sem z iskanjem, ki ga ponujajo Okna, pa ni bilo uspeha.
lp Samo
Access: Iskanje tabele
Pozdravljeni,
Spodaj sem vam napisal makro, ki vam bo v Excelu izpisal VSE tabele v VSEH Accessovih datotekah v izbrani mapi. Makro lahko preprosto popravite tako, da izpiše samo tabelo, ki jo iščete, ali da išče po več mapah....
POMEMBNO: Pred zagonom makra morate ustrezno popraviti pot domape, kjer se datoteke nahajajo. Ne pozabite na znak '\' na koncu niza.
Primer:
Spodaj sem vam napisal makro, ki vam bo v Excelu izpisal VSE tabele v VSEH Accessovih datotekah v izbrani mapi. Makro lahko preprosto popravite tako, da izpiše samo tabelo, ki jo iščete, ali da išče po več mapah....
POMEMBNO: Pred zagonom makra morate ustrezno popraviti pot domape, kjer se datoteke nahajajo. Ne pozabite na znak '\' na koncu niza.
Primer:
Koda: Izberi vse
Mapa = "C:\Moji podatki\Acess" ' to je napačno!!!
Mapa = "C:\Moji podatki\Acess\" ' to JE PRAVILNO
Koda: Izberi vse
' www.matjazev.net
' 12.9.2005
Sub DobiSeznamVsehTabel()
Dim Povezava As ADODB.Connection
Dim Zapis As ADODB.Recordset
Dim PovNiz As String
Dim Mapa As String
Mapa = "C:\Test\"
Dim VsehTabel As Long
VsehTabel = 1
Dim FName
FName = Dir(Mapa & "*.mdb")
Do While FName <> ""
PovNiz = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Mapa & FName & ";"
Set Povezava = New ADODB.Connection
Povezava.CursorLocation = adUseClient
Povezava.Open PovNiz
Set Zapis = Povezava.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "Table"))
List1.Cells(VsehTabel, 1).Value = "Mapa"
List1.Cells(VsehTabel, 2).Value = "Datoteka"
List1.Cells(VsehTabel, 3).Value = "tabela"
VsehTabel = VsehTabel + 1
Zapis.MoveFirst
While (Not Zapis.EOF)
List1.Cells(VsehTabel, 1).Value = Mapa
List1.Cells(VsehTabel, 2).Value = FName
List1.Cells(VsehTabel, 3).Value = Zapis("TABLE_NAME")
VsehTabel = VsehTabel + 1
Zapis.MoveNext
Wend
Zapis.Close
Povezava.Close
FName = Dir()
Loop
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Ponovno pozdravljeni.
Za nepoznavalce, ki bi želeli uporabljati makro, je potrebno zapisati, da morate vključiti ustrezno knjižnico: V VBA urejevalniku izberete Orodja/Sklicevanje in poiščete "Microsoft ActiveX Data Objects x.x Library".
Za moj primer rešitev ni najprimernejša, saj večina Accessovih datotek vsebuje "linkane" tabele. Ker jih makro odpira, moram vnesti geslo. Rešiti pa še moram "crkovanje" makroja v primerih, ko so v Accessovi datoteki zgolj "linkane" tabele.
lp Samo
Za nepoznavalce, ki bi želeli uporabljati makro, je potrebno zapisati, da morate vključiti ustrezno knjižnico: V VBA urejevalniku izberete Orodja/Sklicevanje in poiščete "Microsoft ActiveX Data Objects x.x Library".
Za moj primer rešitev ni najprimernejša, saj večina Accessovih datotek vsebuje "linkane" tabele. Ker jih makro odpira, moram vnesti geslo. Rešiti pa še moram "crkovanje" makroja v primerih, ko so v Accessovi datoteki zgolj "linkane" tabele.
lp Samo