< návrat zpět
MS Excel
Téma: Import dat ze zaheslované MDB do XLS pomocí VBA
Zaslal/a PetrF 25.2.2013 15:23
Ahoj všem,
již nějaký čas se snažím přijít na to, jak provést import dat ze zaheslované db accessu(1997) do excelu(2002,2003,2007). Pokud DB 'odhesluji', tak import proběhne jak má. Pokud přístup do DB zahesluji(musí tak být), tak se mi kód zastaví na řádku snažící se otevřít DB viz.níže
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBFullName & ";"
a zahlásí Run-time error '-2147217843 (80040e4d)':
Heslo není platné.
Pokud toto heslo vložím do kódu viz. dále
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBFullName & ";", Password="heslo"
číslo chyby se opakuje jen popis se změní na
'Nelze spustit aplikaci. Informační soubor pracovní skupiny nebyl nalezen nebo je jiným uživatelem otevřen ve výhradním režimu.'
Už jsem z toho malinko zoufalý. Pokud budete někdo vědět kudy z toho ven, dejte prosím vědět.
Děkuji.
Zkoušeno ve WinXP, Win7 s plným admin přístupem.
Pro úplnost vkládám funkční kód pro import z nechráněné databáze.
Sub Import_Access_Excel
Const TblName As String = "Table"
Dim TargetRange As Range
Dim DBFullName As String
Dim cn As ADODB.Connection, rs As ADODB.Recordset, intColIndex As Integer
DBFullName = ThisWorkbook.Path & "\database.mdb"
Set TargetRg = Range("A1")
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBFullName & ";"
Set rs = New ADODB.Recordset
With rs
.Open "SELECT * FROM " & TblName, _
cn, , , adCmdText
TargetRg .CopyFromRecordset rs
End With
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
Milan-D(6.3.2013 18:16)#012103 Neco jsem googlil a zda se, ze je potreba vytvorit ten Informační soubor pracovní skupiny (workgroup information file). Ten vytvoris v accessu podobne jak password, tedy Tools - Security - Workgroup administrator.
Akorat jenom toto nestaci, je potreba tu cestu k tomuto souboru nejak zaintegrovat do connection stringu.
Tady se o tom neco mluvi, ale moc se nechytam:
http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvb/thread/3b0bd93e-65a5-475d-bbdf-0419b4a18e4e/
Pokud se Ti podari pokrocit, dej vedet jak na to.
Dik,
Milan
citovat