Discussion:
Format-Funktion geht nicht mehr
(zu alt für eine Antwort)
Stefan
2008-08-31 07:57:45 UTC
Permalink
Hallo,

in einer etwas umfangreicheren DB funktioniert plötzlich die Format-
Funktion in einem einzigen Formular nicht mehr. Ich bekomme folgende
Fehlermeldung:

"kann das in Ihrem Ausdruck angesprochene Feld 'Format' nicht finden."

In VBA erhalte ich bei Verwendung der Format-Funktion auch nicht die
üblichen Parameter-Hinweise. Access scheint "Format" für eine Variable
zu halten. Dummerweise hatte ich in einem Endlos-Unterformular dieses
Formulars tatsächlich die Dummheit begangen, eine Spalte (Abfrage)
"Format" zu nennen. Das habe ich nun korrigiert - nur der Erfolg
bleibt aus.

Was tun???

Vielen Dank,
Stefan
Mark Doerbandt
2008-08-31 08:06:59 UTC
Permalink
Hallo,
Post by Stefan
in einer etwas umfangreicheren DB funktioniert plötzlich die Format-
Funktion in einem einzigen Formular nicht mehr. Ich bekomme folgende
"kann das in Ihrem Ausdruck angesprochene Feld 'Format' nicht finden."
In VBA erhalte ich bei Verwendung der Format-Funktion auch nicht die
üblichen Parameter-Hinweise. Access scheint "Format" für eine Variable
zu halten. Dummerweise hatte ich in einem Endlos-Unterformular dieses
Formulars tatsächlich die Dummheit begangen, eine Spalte (Abfrage)
"Format" zu nennen. Das habe ich nun korrigiert - nur der Erfolg
bleibt aus.
trotzdem: lies auch mal FAQ Punkt 7.1 (http://www.donkarl.com).

Ansonsten: wie sieht genau die Codezeile aus, in der das passiert?

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.
Stefan
2008-08-31 08:16:44 UTC
Permalink
Post by Mark Doerbandt
Ansonsten: wie sieht genau die Codezeile aus, in der das passiert?
Hallo Mark,

die FAQ hatte ich bereits gelesen, die Verweise stimmen aber - und die
Funktion ist ja in allen anderen Formularen auch da!
Die Felhermeldung bekomme ich z.B. durch diese Zeile:
MsgBox Format(Date(),"yyyy-mm-dd")
Das ist meine Test-Zeile für das Problem. Zuwischenzeitlich habe ich
alle anderen Format-Aufrufe in "enFormat" geändert und in einem Modul
eine Funktion enFormat definiert, die dort dann Format aufruft und das
Ergebnis zurückgibt. Das geht zwar, ist aber doch eine ziemliche
Flickschusterei, oder?

Gruß,
Stefan
Thomas Möller
2008-08-31 08:24:40 UTC
Permalink
Hallo Stefan,
Post by Stefan
Post by Mark Doerbandt
Ansonsten: wie sieht genau die Codezeile aus, in der das passiert?
die FAQ hatte ich bereits gelesen, die Verweise stimmen aber - und die
Funktion ist ja in allen anderen Formularen auch da!
MsgBox Format(Date(),"yyyy-mm-dd")
Das ist meine Test-Zeile für das Problem. Zuwischenzeitlich habe ich
alle anderen Format-Aufrufe in "enFormat" geändert und in einem Modul
eine Funktion enFormat definiert, die dort dann Format aufruft und das
Ergebnis zurückgibt. Das geht zwar, ist aber doch eine ziemliche
Flickschusterei, oder?
Du kannst Access bzw. VBA dazu bringen, die "richtige" Funktion zu
verwenden, in dem Du die zu verwendende Bibliothek voranstellst. In
Deinem Beispiel könnte das so aussehen:

MsgBox VBA.Format(Date(),"yyyy-mm-dd")


HTH
--
Thomas

Homepage: www.Team-Moeller.de
Stefan
2008-08-31 09:57:58 UTC
Permalink
Post by Thomas Möller
Du kannst Access bzw. VBA dazu bringen, die "richtige" Funktion zu
verwenden, in dem Du die zu verwendende Bibliothek voranstellst. In
MsgBox VBA.Format(Date(),"yyyy-mm-dd")
Hallo Thomas,

das funktioniert! Vielen Dank!

Gruß,
Stefan
Mark Doerbandt
2008-08-31 08:32:40 UTC
Permalink
Hallo,
Post by Stefan
die FAQ hatte ich bereits gelesen, die Verweise stimmen aber - und die
Funktion ist ja in allen anderen Formularen auch da!
gut.
Post by Stefan
MsgBox Format(Date(),"yyyy-mm-dd")
Hast Du mal versucht, explizit VBA.Format zu schreiben?
Post by Stefan
Das ist meine Test-Zeile für das Problem. Zuwischenzeitlich habe ich
alle anderen Format-Aufrufe in "enFormat" geändert und in einem Modul
eine Funktion enFormat definiert, die dort dann Format aufruft und das
Ergebnis zurückgibt. Das geht zwar, ist aber doch eine ziemliche
Flickschusterei, oder?
Jo, das ist Unsinn. Importiere mal zum Test alles in eine neue
Datenbank, wenn Du sicher bist, dass kein "Rest" mehr von Deinem Feld
"Format da ist..

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.
Stefan
2008-08-31 10:03:05 UTC
Permalink
Post by Mark Doerbandt
Jo, das ist Unsinn. Importiere mal zum Test alles in eine neue
Datenbank, wenn Du sicher bist, dass kein "Rest" mehr von Deinem Feld
"Format da ist..
Hallo,

auch wenn ich den Versuch nur widerwillig angetreten habe - damit
funktioniert alles wieder einwandfrei. Interessant war, daß in der
kopierten Version noch das alte (und nicht mehr existierende)
Unterformular verknüpft war!

Vielen Dank, Problem gelöst!

Stefan

Thomas Möller
2008-08-31 08:46:10 UTC
Permalink
Hallo Stefan,
Post by Stefan
in einer etwas umfangreicheren DB funktioniert plötzlich die Format-
Funktion in einem einzigen Formular nicht mehr. Ich bekomme folgende
"kann das in Ihrem Ausdruck angesprochene Feld 'Format' nicht finden."
In VBA erhalte ich bei Verwendung der Format-Funktion auch nicht die
üblichen Parameter-Hinweise. Access scheint "Format" für eine Variable
zu halten. Dummerweise hatte ich in einem Endlos-Unterformular dieses
Formulars tatsächlich die Dummheit begangen, eine Spalte (Abfrage)
"Format" zu nennen. Das habe ich nun korrigiert - nur der Erfolg
bleibt aus.
Access legt in einem Formular für jedes Feld aus der Datenquelle eine
Eigenschaft mit dessen Namen an. Dieses Vorgehen ist dafür
verantwortlich, dass Code-Teile wie dieser

Me.DeinFeld

funktionieren. In Deinem Fall wurde jetzt eine Eigenschaft mit dem Namen
"Format" angelegt.

Wenn Access den VBA-Code interpretiert, dann erfolgt die Suche nach dem
richtigen Objekt in der folgenden Reihenfolge:

- in der eigenen Funktion
- im eigenen Modul
- im eigenen Projekt (andere Module der DB)
- in den nicht eingebauten Verweisen in der Reihenfolge ihrer Priorität
- in den eingebauten Verweisen (Access und VBA)

In Deinem Fall findet Access die (verborgen angelegte) Eigenschaft
"Format" in Deinem Formular. Diese wird in der Reihenfolge an zweiter
Stelle gefunden und somit verwendet. Da Du jetzt das entsprechende Feld
in der Datenquelle umbenannt hast, kommt es zu obigem Fehler.

Wahrscheinlich geht es am einfachsten, wenn Du das Formular, basierend
auf der nun geänderten Datenquelle, erneut erstellst.

HTH
--
Thomas

Homepage: www.Team-Moeller.de
Loading...