Aha. Czyli niby 17 lipiec. Dlugo jeszcze. No i pytanie czy nie bedzie
poslizgu
W lipcu to na pewno nie będzie.
Wiadomość z 16 lutego: Microsoft Corp. today announced the lineup of its
upcoming 2007 MicrosoftR Office system products, previously code-named
Microsoft Office "12," including new and improved suites, applications,
servers and services to be available by the end of 2006
1. Idąc po części za radą z http://support.microsoft.com/kb/173334/en-us
postarałem się "ominąć" okienko z pytaniem o nazwę pliku w taki sposób.
Dzięki temu jak ktoś na "moim" okienku palnie w [anuluj] nie dostaję fatala.
Oczywiście w starszym Acc lub braku biblioteki trzeba będzie inaczej funkcję GdzieZapisac() namalowac...
2. Postarałem się, aby zawsze w momencie wykonywania acOutputTable był otwarty i widoczny jakiś formularz.
Póki co ciągle nie wiem czemu, ale mam fatala zawsze akurat wtedy kiedy outputo zachodzi w momencie jak nie mam nic
widocznego - np. odpalam przez makro; Przyczyna tego fatala chyba jednak jest troche inna niż tego zwiazanego z
okienkiem pliku.
Poniżej jedyny modulik z moich testów:
'============================
Option Compare Database
Option Explicit
Function ZapiszDoXLS()
'funkcja w autoexecu
Dim plik As String
plik = GdzieZapisac()
If plik <"" Then
DoCmd.OpenForm "Formularz1" 'mój jedyny formularz w bazie
DoCmd.OutputTo acOutputTable, "Tabela1", acFormatXLS, plik, True
DoCmd.Close acForm, "Formularz1"
End If
End Function
Function GdzieZapisac() As String
'Requires reference to Microsoft Office 12.0 Object Library.
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogSaveAs)
With fDialog
.Title = "Gdzie zapisać?"
If .Show = True Then
GdzieZapisac = Replace(LCase(.SelectedItems.Item(1) + ".xls"), ".xls.xls", ".xls")
Else
GdzieZapisac = ""
End If
End With
End Function
'===============================
Pozdrawiam
MDz
Udało się :D
Okazuje się, że jak zwykle rozwiązanie było banalne i w zasięgu ręki.
Nie była to kwestia rejestru, bibliotek itp. Poblem - przynajmniej u
mnie - tkwił po stronie sterownika ODBC dla DBF.
Standardowo ( prawdopodobnie po wgraniu aktualizacji JET ) w ODBC
sterownik odpowiadający za komunikację z bazą DBF to Microsoft Access
dBASE Driver w wersji 12.00.6211.1000 ( biblioteka ACEODBC.DLL )
Wystarczy z DSN Użytkownika usunąć ten wpis i stworzyć nowe połączenie
w oparciu o standardowy driver Microsoft (Driver do Microsoft dBASE u
mnie w wersji 6.00.6001.18000
Pozdrawiam Patryk Skupiński
U mnie nie działa!
Z moich analiz wynika, że podczas instalacji MSOffice 2007 (?), podmieniany
jest wpis do rejestru.
W HKEY_CURRENT_USER-Software-ODBC-ODBC.INI
są gałęzie:
Excel Files, Ms Access Database, ........., dBase Files
Wartość Driver zmienia się z "C:....odbcjt32.dll" na
"C:.....ACEODBC.DLL" (tak, jak napisałeś)
Wykonanie twoich czynności skutkuje tym, że w gałęzi dBaseFiles jest
ponownie wartość "C:...odbcjt32.dll"
Ale to u mnie niczego nie zmienia. Próbowałem na Viście, wieczorem spróbuję
w domu na XP SP3.
W Viście mam np wpis w rejestrze:
HKEY_LOCAL_MACHINE-Software-Microsoft-Office.12.0-UserSettings-Ace_OdbcCurrendUser-Create-ODBCINI-dBASE
Files
i tam wartościę Driver jest "ACEODBC.DLL"
ACEODBC.DLL służy do "inicjacji", natomiast dla dBASE wymagany jest ACE
XBE.DLL (dla TXT - ACETXT.DLL itp). Jak usunąłem ACEXBE.DLL,
przy imporcie mam komunikat "Nie można znaleźć instalowalnego pliku ISAM".
Żeby było śmieszniej, usunąłem ACEODBC.DLL (zmieniłem nazwę) i do importu
dBASE wystarczy ACEXBE.DLL, niezależnie od tego jaki driver jest w DNS
Użytkownika. Oczywiście cały czas import jest błędny.
Reasumując:
1. Być może mi się uda tak jak Tobie, ale będę musiał pogrzebać w
rejestrze, np. tu:
HKEY_LOCAL_MACHINE-SOFTWARE-MicrosoftOffice-12.0-Access
Connectivy Engine-Engines-Xbase
w win32 mam "C:PROGRA~1COMMON~1OFFICE12ACEXBE.DLL"
2. Ciekawi mnie co będzie na moim Windows XP
3. Twoje rozwiązanie jest proste i skuteczne i gdyby u mnie działało,
byłbym zadowolony. Ale w tej sytuacji może trzeba poszukać innych wersji
ACEXBE.DLL?
pozdrawiam
Mirek Kowalczyk
© 2009 Najlepszy miesiąc kawalerski w Polsce !!! - Ceske - Sjezdovky .cz. Design downloaded from free website templates