Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

berechnetes Feld im Formular macht Probleme

Begonnen von dobby110, Juni 21, 2016, 07:49:02

⏪ vorheriges - nächstes ⏩

dobby110

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

DF6GL

#1
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?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

@Franz:
Was hat es mit den leeren Klammerpaaren auf sich? Das habe ich noch nie gesehen, was hat das zu bedeuten?
Freundliche Grüße
MaggieMay

dobby110

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 ;-)

DF6GL

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
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

@Franz:
Danke - aber wo findet man denn wohl so etwas?
Freundliche Grüße
MaggieMay

DF6GL

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.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

DF6GL

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.


Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor