Ich verwende Access 2003 und möchte in einem Formular einen
Dateiauswahldialog öffnen. Dazu hab ich mich an einem Formular
der Beispieldatenbank "Nordwind" bzw. an
http://support.microsoft.com/kb/824272/EN orientiert (siehe
angefügten Code-Schnipsel unten).
In der Beispieldatenbank öffnet sich der Dateiauswahldialog, bei
meiner Datenbank nicht: Laufzeitfehler '438': "Objekt unterstützt
diese Eigenschaft oder Methode nicht"
Und zwar kommt die Meldung bei der Zeile
.Filters.Add "Access Databases", "*.MDB"
beim Aufruf der Methode "Add". Ich habe darauf geachtet, daß in
meiner Datenbank dieselben Verweise eingebunden sind, wie bei der
Beispieldatenbank (also v.a. "Microsoft Office 11.0 Object Library").
Wo könnte also bei mir der Fehler herkommen?
Vielen Dank im Voraus,
Franz.
***
Private Sub Befehl36_Click()
' This requires a reference to the Microsoft Office 11.0 Object
Library.
Dim fDialog As Office.FileDialog
Dim varFile As Variant
' Set up the File dialog box.
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
' Allow the user to make multiple selections in the dialog
box.
.AllowMultiSelect = True
' Set the title of the dialog box.
.Title = "Select One or More Files"
' Clear out the current filters, and then add your own.
.Filters.Clear
.Filters.Add "Access Databases", "*.MDB"
.Filters.Add "Access Projects", "*.ADP"
.Filters.Add "All Files", "*.*"
End With
End Sub
Franz Lang:
> In der Beispieldatenbank öffnet sich der Dateiauswahldialog, bei
> meiner Datenbank nicht: Laufzeitfehler '438': "Objekt unterstützt
> diese Eigenschaft oder Methode nicht"
> Und zwar kommt die Meldung bei der Zeile
> .Filters.Add "Access Databases", "*.MDB"
> beim Aufruf der Methode "Add".
bei mir läuft der Code - ich habe allerdings auch ein englisches
System. Schau mal, wie das bei Dir in den normalen Dialogen auf
deutsch heisst.
Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm
Bitte keine eMails auf Newsgroup-Beiträge senden.
>> In der Beispieldatenbank öffnet sich der Dateiauswahldialog, bei
>> meiner Datenbank nicht: Laufzeitfehler '438': "Objekt unterstützt
>> diese Eigenschaft oder Methode nicht"
>> Und zwar kommt die Meldung bei der Zeile
>> .Filters.Add "Access Databases", "*.MDB"
>> beim Aufruf der Methode "Add".
>
> bei mir läuft der Code - ich habe allerdings auch ein englisches
> System. Schau mal, wie das bei Dir in den normalen Dialogen auf
> deutsch heisst.
Was meinst Du mit "normalen Dialogen" bzw. was soll wie auf
deutsch heißen?
Franz.
PS: Verwende ein deutsches WinXP mit deutschem Access 2003.
Franz Lang:
>>> .Filters.Add "Access Databases", "*.MDB"
> Was meinst Du mit "normalen Dialogen" bzw. was soll wie auf
> deutsch heißen?
ich bezog mich auf die zitierte Zeile. Was heisst "Access Databases"
auf deutsch? Wahrscheinlich wohl "Access Datenbanken", nur ob mit oder
ohne Bindestrich siehst Du in Deinem deutschen System in einem
einfachen Access-Datenbank-Öffnen-Dialog oder auch im Datei-Explorer.
>>>> .Filters.Add "Access Databases", "*.MDB"
>
>> Was meinst Du mit "normalen Dialogen" bzw. was soll wie auf
>> deutsch heißen?
>
> ich bezog mich auf die zitierte Zeile. Was heisst "Access Databases"
> auf deutsch? Wahrscheinlich wohl "Access Datenbanken", nur ob mit oder
> ohne Bindestrich siehst Du in Deinem deutschen System in einem
> einfachen Access-Datenbank-Öffnen-Dialog oder auch im Datei-Explorer.
Bei meiner Recherche bei Google Groups, bevor ich selbst gepostet
habe, hatte ich u.a. auch gelesen, daß die Argumente der
Add-Methode den Texten des Systems entsprechen sollen.
Erstens kann ich mir das nicht vorstellen, und zweitens
funktioniert auch der Code der Beispieldatenbank, wenn ich obige
Zeile hinzufüge:
.Filters.Add "Access Databases", "*.MDB"
.Filters.Add "Alle Dateien", "*.*"
.Filters.Add "JPEGs", "*.jpg"
.Filters.Add "Bitmaps", "*.bmp"
Was ist also bei meiner Datenbank anders? (Da ich nicht der
einzige bin, der dieses Problem hat, zeigen die Suchergebnisse
bei Google Groups. Allerdings fand ich bisher keine Lösung ...)
Franz.
Franz Lang:
> hatte ich u.a. auch gelesen ...
> Erstens kann ich mir das nicht vorstellen, ...
hast Du es denn mal /probiert/?
Ja! Siehe mein vorheriges Posting:
.Filters.Add "Access Databases", "*.MDB"
.Filters.Add "Alle Dateien", "*.*"
Funktioniert! In der Beispieldatenbank! Bei meiner Datenbank
bekomme ich den Laufzeitfehler!
Franz.
Franz Lang schrieb folgendes:
Ich verzichte ganz auf den FileDialog von MS und setzte ausschließlich
die FileDialog Klasse von Karsten Pries ein http://www.kpries.de/ oder
www.dbdev.org. In meiner Toolssammmlung (auf meiner HP) findest Du
auch u.a. einen Assistenten welcher Dir den komplett benötigten Code
incl. Aufruf in Deine Datenbank kopiert.
--
Gruß
Gunter
_________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com
Franz Lang:
> Funktioniert! In der Beispieldatenbank! Bei meiner Datenbank
> bekomme ich den Laufzeitfehler!
nein, ich meine in /Deiner/ Datenbank nur mit den korrekten deutschen
Strings?
Nein, hatte ich nicht. Egal. Es funktioniert jetzt. Warum? Keine
Ahnung.
Also: ich hatte mein adp-Projekt geöffnet, zeitgleich auch die
Nordwind-Datenbank (als adp-Projekt). Hab dann mal eine neue
mdb-DB angelegt mit einem Formular, einem Button und jenem Code
für den Dateiauswahldialog -- funktioniert.
Danach ein neues adp-Projekt, welches sich zu meiner
SQL-Server-DB hinverbindet, Formular mit Button und Code angelegt
-- funktioniert nicht.
Hab ein zweites mal das NordWind-Projekt geöffnet mit der
Meldung, es werde schreibgeschützt geöffnet (es war ja bereits
offen). Jenes Formular (Employees) mit dem Dateiauswahldialog
geöffnet: funktioniert *nicht*! Projekt geschlossen, wieder
geöffnet: funktioniert!
Nochmals ein neues adp-Projekt mit meiner SQL-Server-DB angelegt
-- funktioniert nicht.
Hab daraufhin frustriert Access komplett geschlossen. Mein altes
adp-Projekt geöffnet -- funktioniert!
Heute morgen hatte ich auch nur *mein* adp-Projekt am Laufen --
und es funktionierte nicht.
Also: so wenig ich es mir erklären konnte, warum es vorher nicht
ging, so wenig kann ich es mir nun erklären, warum es geht.
Mich beschleicht nur die Angst, daß es in Zukunft aus einem
unerklärlichen Grund wieder nicht gehen wird ... :-(
Danke für eure Hinweise,
Franz.
Franz Lang:
> Also: so wenig ich es mir erklären konnte, warum es vorher nicht
> ging, so wenig kann ich es mir nun erklären, warum es geht.
;-) ist leider manchmal so - ich hatte das Problem auch schon mal und
auch da lag es an der Sprache. Warum das so ist, kann ich auch nicht
erklären - es ist jedenfalls fuer Anwendungen, die auf aprachlich
unterschiedlichen Systemen laufen sollen, aergerlich.
> Mich beschleicht nur die Angst, daß es in Zukunft aus einem
> unerklärlichen Grund wieder nicht gehen wird ... :-(
Den Ausweg hat Dir ja Gunter genannt.