Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fehler #Name? in Formular

842 views
Skip to first unread message

Rainer Georg Blankenagel

unread,
Apr 27, 2011, 1:31:22 PM4/27/11
to
Hallo zusammen,

ich hätte da gern mal ein Problem:

In einer Datenbank (Access 2007 / Format 2002/2003) habe ich in einer
Tabelle TBL_Termindetails nachträglich die Felder [Beginn] und [Ende]
hinzugefügt, um Uhrzeiten erfassen zu können.

Eine Abfrage QRY_Termindetails zeigt alle Daten der Tabelle korrekt an.

Ein Formular FRM_Termineingabe_Details_UF zeigt nach dem Hinzufügen der
neuen Felder über die Feldliste ebenfalls alle Daten korrekt an und läßt
auch die Bearbeitung bzw. Neueingabe klaglos zu. Nur im neuen Datensatz
wird bei den beiden nachträglich hinzugefügten Feldern die Fehlermeldung
#Name? angezeigt.

1. Eigentlich[tm] sollte bei dieser Vorgehensweise ja nicht viel
schiefgehen können. Trotzdem habe ich in der Tabelle und im Formular die
Namen noch mal auf Identität geprüft - alles ok. Auch der
Steuerelementinhalt ist jeweils korrekt.

2. Das Formular an die Tabelle statt an die Abfrage zu binden bringt
ebenfalls keine Änderung.

3. Auskommentieren folgenden Programmcodes im Klassenmodul ändert ebenfalls
nichts:

Private Sub Beginn_BeforeUpdate(Cancel As Integer)
'Setzt den Standardwert auf den aktuellen Wert
Me!Beginn.DefaultValue = Me!Beginn
End Sub

Private Sub Ende_BeforeUpdate(Cancel As Integer)
'Setzt den Standardwert auf den aktuellen Wert
Me!Ende.DefaultValue = Me!Ende
End Sub

4. Import in eine neue leere Datenbank: kann man sich denken - keine
Besserung.


Ich vermute, daß ich einfach irgendeine Kleinigkeit übersehe, schubs mich
doch bitte mal jemand in die richtige Richtung ...


Grüße aus Köln,

Rainer

Karl Donaubauer

unread,
Apr 27, 2011, 2:42:36 PM4/27/11
to
Rainer Georg Blankenagel wrote:
> ...

> In einer Datenbank (Access 2007 / Format 2002/2003) habe ich in einer
> Tabelle TBL_Termindetails nachträglich die Felder [Beginn] und [Ende]
> hinzugefügt, um Uhrzeiten erfassen zu können.
>
> Ein Formular FRM_Termineingabe_Details_UF zeigt nach dem Hinzufügen
> der neuen Felder über die Feldliste ebenfalls alle Daten korrekt an
> und läßt auch die Bearbeitung bzw. Neueingabe klaglos zu. Nur im
> neuen Datensatz wird bei den beiden nachträglich hinzugefügten
> Feldern die Fehlermeldung #Name? angezeigt.
> ...

> 3. Auskommentieren folgenden Programmcodes im Klassenmodul ändert
> ebenfalls nichts:
>
> Private Sub Beginn_BeforeUpdate(Cancel As Integer)
> 'Setzt den Standardwert auf den aktuellen Wert
> Me!Beginn.DefaultValue = Me!Beginn
> End Sub
> ...

Hast du in der Tabelle oder im Formular etwas in die Eigenschaft
"Standardwert" der Felder/Steuerelemente eingetragen?
Falls ja, was genau?

Standardwert ist bei manchen Datentypen wie bei Datum/Zeit
etwas empfindlich, weil die Eigenschaft einen String verlangt.

Auch deinen Code solltest du nicht BeforeUpdate sondern AfterUpdate
veranstalten, gegen Null absichern und formatieren, z.B.

Private Sub Beginn_AfterUpdate()

If Not IsNull(Me!Beginn) Then
Me!Beginn.DefaultValue = Str(CDbl(Me!Beginn))
'oder
'Me!DatZeiti.DefaultValue = Format(Me!Beginn, "\#yyyy\-mm\-dd\ hh:nn#")
End If

End Sub

Für Erläuterungen s.
http://www.donkarl.com?FAQ4.22
http://www.donkarl.com?FAQ6.8

--
Servus
Karl
*********
Access-FAQ: http://www.donkarl.com


Karl Donaubauer

unread,
Apr 28, 2011, 3:50:47 AM4/28/11
to
Karl Donaubauer wrote:
> ...'Me!DatZeiti.DefaultValue =...

Da ist ein typisch-kindischer Vorlagen/Testname stehen geblieben. :-)
Soll natürlich heißen:

'Me!Beginn.DefaultValue = ...

Rainer Georg Blankenagel

unread,
May 2, 2011, 3:16:33 PM5/2/11
to
Hallo Karl,

sorry, daß ich erst jetzt zum antworten komme ...

Karl Donaubauer <Karl Donaubauer <NoS...@donkarl.com>>:

> Rainer Georg Blankenagel wrote:
[...]


>> Private Sub Beginn_BeforeUpdate(Cancel As Integer)
>> 'Setzt den Standardwert auf den aktuellen Wert
>> Me!Beginn.DefaultValue = Me!Beginn
>> End Sub
>> ...
>
> Hast du in der Tabelle oder im Formular etwas in die Eigenschaft
> "Standardwert" der Felder/Steuerelemente eingetragen?
> Falls ja, was genau?

Klar, nach dem ersten Durchlauf der Sub steht natürlich was drin, in dem
Fall eine Uhrzeit.



> Standardwert ist bei manchen Datentypen wie bei Datum/Zeit
> etwas empfindlich, weil die Eigenschaft einen String verlangt.

Und genau das war auch das Problem. Danke für den Hinweis, im
Eigenschaftendialog ist das ja nicht erkennbar, daß ein String erwartet
wird. Ich vermute, das gilt für alle Eigenschaften?

> Auch deinen Code solltest du nicht BeforeUpdate sondern AfterUpdate
> veranstalten, gegen Null absichern und formatieren, z.B.

AfterUpdate führte dazu, daß der Standardwert erst nach dem Speichern des
zweiten Datensatzes für den dann neuen dritten gesetzt wurde. Mit
BeforeUpdate funktioniert es wie gewünscht schon nach dem ersten
eingegebenen Datensatz.

Die anderen Ratschläge sind jetzt auch umgesetzt, der Fehler trat halt
schon bei ersten Funktionstest auf, bevor ich mich um mögliche Sonderfälle
kümmern konnte.

Jetzt läuft's, und wenn mich nicht noch jemand wegen des BeforeUpdate
nervös macht, dann bin ich auch zufrieden.

Danke nochmal und einen schönen Wochenbeginn,

Rainer

0 new messages