Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: dobby110 am Juni 21, 2016, 07:49:02

Titel: berechnetes Feld im Formular macht Probleme
Beitrag von: dobby110 am Juni 21, 2016, 07:49:02
Hallo zusammen,

ich habe ein geteiltes Formular, welches sich auf eine Abfrage als Wiedervorlage bezieht und mir den entsprechenden Datensatz dazu anzeigt.
In diesem Datensatz habe ich berechnete Felder eingebaut.

Einmal wird der Bestand gezogen


=DomWert("[Summe von Umsatz]";"[abf_Bestand_je_Investment]";"[Kombi ID] = " & [Kombi ID])


und einmal wird der Bestand * Kurswert berechnet.


=[Bestand]*[Wert je Aktie]


Die Formeln sind ok und funktionieren. Daran liegt es nicht.
Aber jedes Mal nachdem ich die Datenbank schließe und neu öffne, werden die Werte nicht mehr berechnet und es erscheint in den beiden Feldern lediglich "#Name?"

Ich öffne dann immer die Entwurfsansicht und füge an eine x-beliebige Stelle ein Textfeld und lösche es direkt wieder.
Wenn ich dann wieder in die Formularansicht wechsele funktioniert wieder alles. So lange bis ich die Datenbank wieder schließe und neu starte. Dann beginnt das Spiel von vorne.

Kann mir jemand sagen was das Problem verursachen könnte?
Ich habe eigentlich nichts verändert. Lediglich in dem Teil wo die Werte aus der Abfrage abgerufen werden, zwei Felder in der Position vertauscht. Dies funktioniert per Drag and Drop ... also eigentlich keine große Veränderung. Seitdem werden die Felder nicht mehr berechnet. Und auch die Tatsache, dass ich nur ein Textfeld einfügen muss und dieses sofort wieder lösche, ist ja auch sehr komisch, dass es danach wieder funktioniert.

Screenshot habe ich beigefügt. Damit man eine Vorstellung hat. In dem jetziges Screenshot funktioniert es.
Wenn ich die Datenbank aber schließe, bekomme ich in den beiden markierten Feldern den Fehler angezeigt.

Edit: Anbei auch noch ein zweiter Screenshot des Fehlers. Habe die Datenbank jetzt wieder geschlossen und neu geöffnet und der Fehler ist wieder da
Titel: Re: berechnetes Feld im Formular macht Probleme
Beitrag von: DF6GL am Juni 21, 2016, 10:14:50
Hallo,


führe folgende Maßnahmen aus, dabei zwischendurch testen:



1) komprimiere/repariere die DB

2) kompiliere die DB, dabei beachten, dass "Option Explicit" in jedem Modulkopf steht.

3) alle Sonder- und Leerzeichen aus allen Namen entfernen(!)

4) Neue leere DB erstellen und alles dort aus der alten importieren.

5) Ausdrücke so schreiben: 
=DomWert("[Summe von Umsatz]";"abf_Bestand_je_Investment";"[Kombi ID] = " & []![Kombi ID])

=[]!Bestand * []![Wert je Aktie]



Welchen Datentyp hat "[Kombi ID]" in der Tabelle?
Titel: Re: berechnetes Feld im Formular macht Probleme
Beitrag von: MaggieMay am Juni 21, 2016, 11:22:59
@Franz:
Was hat es mit den leeren Klammerpaaren auf sich? Das habe ich noch nie gesehen, was hat das zu bedeuten?
Titel: Re: berechnetes Feld im Formular macht Probleme
Beitrag von: dobby110 am Juni 21, 2016, 11:42:59
Problem gelöst . vielen Dank.

Habe über den Punkt Leistung wird analysiert die Datenbank analysieren lassen und die Optimierungsvorschläge akzeptiert und durchführen lassen.
Danach war das Problem behoben.

Danke ;-)
Titel: Re: berechnetes Feld im Formular macht Probleme
Beitrag von: DF6GL am Juni 21, 2016, 11:45:18
Hallo,

habe (empirisch) festgestellt, dass bei manchen (nicht näher von mir erklärbaren) Situationen die Qualifizierung der Feldnamen hilft.


[] ist das aktuelle Form-Objekt
Titel: Re: berechnetes Feld im Formular macht Probleme
Beitrag von: MaggieMay am Juni 21, 2016, 13:04:53
@Franz:
Danke - aber wo findet man denn wohl so etwas?
Titel: Re: berechnetes Feld im Formular macht Probleme
Beitrag von: DF6GL am Juni 21, 2016, 15:36:33
Hallo,

in einem meiner Projekte...   ;) ;D ;D ;D

Im Ernst:  habe das selber, wie gesagt, empirisch herausgefunden.   Das Ganze trat auf, als ich eine Anwendung von A2010 auf A2013 "portiert" hatte.  Dort lief eine übliche Referenz ("[FormFeld]") auf ein Formularfeld nicht...Die Ecklammern sind hier ja auch erforderlich.)

Mit Formular-Qualifizierung  ([Forms]![MeinForm]![Formfeld]) hat es funktioniert, mit Kurzschreibweise "![Formfeld]" gab es Fehler. Daher lag es nahe, mit "[]!Formfeld"  Access zum richtigen Referenzieren zu verleiten.
Titel: Re: berechnetes Feld im Formular macht Probleme
Beitrag von: PhilS am Juni 21, 2016, 16:18:58
Zitat von: DF6GL am Juni 21, 2016, 15:36:33
Das Ganze trat auf, als ich eine Anwendung von A2010 auf A2013 "portiert" hatte.  Dort lief eine übliche Referenz ("[FormFeld]") auf ein Formularfeld nicht...
Ich habe dieses Problem schon viele Male gesehen. In allen Fällen lag es daran, dass bei der Benennung nicht zwischen Formular-Steuerelementen und den Feldern in der Datenherkunft des Formulars unterschieden wurde.
Daher ist meine Empfehlung immer eindeutige Namen zu verwenden. Wenn es Feldname in der Datenherkunft gibt, heißt das Formular-Steuerlement dazu z.B. txtFeldname.

Das Problem tritt vermehrt auf nach einen Wechsel der Access-Version, nach einen Decompile, wenn die Recordsource des Formular manuell geändert wurde oder wenn die Recordsource dynamisch per Code gesetzt wird.
Titel: Re: berechnetes Feld im Formular macht Probleme
Beitrag von: DF6GL am Juni 21, 2016, 16:36:04
Hallo,

nun, bei mir ist dies nur einmal aufgetreten... und ich benutze immer (im Gegensatz zu Deiner Gepflogenheit) für den Steuerelementnamen den selben wie in der Tabelle.

Bei ungebundenen Textfeldern stelle ich dann den Prefix "txt" voran.


Titel: Re: berechnetes Feld im Formular macht Probleme
Beitrag von: PhilS am Juni 21, 2016, 19:51:11
Zitat von: DF6GL am Juni 21, 2016, 16:36:04nun, bei mir ist dies nur einmal aufgetreten... und ich benutze immer (im Gegensatz zu Deiner Gepflogenheit) für den Steuerelementnamen den selben wie in der Tabelle.
Das überrascht mich. - Ich vermute, dass es weitere Faktoren gibt, die das Auftreten dieses Fehlers beeinflussen.
Über die tatsächliche Häufigkeit des Auftretens kann ich wenig sagen, da es in meinem Code mit der besagten Regel, nicht passiert.