Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datensätze plötzlich gesperrt

Begonnen von accessy, August 07, 2015, 18:55:22

⏪ vorheriges - nächstes ⏩

accessy

Formular KUNDEN hat als Datenherkunft die Abfrage qry_Kunden mit der Tabelle tbl_Kunden.
Jetzt wollte ich im Formular ein neues Feld einfügen.
Dieses Feld befindet sich in der Abfrage qry_Umsatz.

Also habe ich der Abfrage qry_Kunden im Entwurf die Abfrage qry_Umsatz zugefügt und das Feld lfd_Jahr mit eingebaut.
Abfrage starten...Funktioniert gut...

Formular KUNDEN im Entwurf geöffnet, und über die Felder dieses Feld lfd_Jahr eingebaut.
Prima. Alles korrekt angezeigt...kein Fehler...
Aber dafür sind jetzt alle Felder im Formular gesperrt.

Auffällig ist, dass die Beziehung des Feldes KNR zwischen der Abfrage qry_Kunden und qry_Umsatz lediglich ein Strich zu sehen ist.

Wie kann ich die denn wieder entsperren?

MzKlMu

Hallo,
mehrere Abfrage/Tabellen in einer Abfrage müssen in Beziehung stehen.
Wenn nicht entsteht ein kartesisches Produkt (=alle Datensätze aus allen Abfragen) was die Abfrage sperrt. Die kann auch nicht entsperrt werden.

Der gleich Effekt entsteht wenn zwar eine Beziehung eingerichtet ist, aber eine der Abfragen gruppiert ist. Auch dann ist die Geamtabfrage nicht aktualisierbar, was auch dann nicht geändert werden kann.

Was ist die qry_Umsatz für eine Abfrage ?
Sind die Abfragen in der Gesamtabfrage verknüpft ?
Gruß Klaus

accessy

Alles klar....Das war's dann wohl.
Die eine Abfrage hat als Grundlage eine Kreuztabellenabfrage.
Und dann geht das wohl nicht mehr.

Werde das Feld wieder raushauen....
Danke dir...

MzKlMu

Hallo,
den gewünschten Wert bekommt man sicher auch auf andere Weise zur Anzeige.

Was willst Du haben, den Umsatz eines Kunden ?
Gruß Klaus

accessy

Ich habe es mir einfacher gemacht. Ist ja eh nur ein einziges Feld.

=DomSumme("Umsatz";"Werkzeug_Artikel";"Jahr = 2015 and KNR = '" & [tfKNR] & "'")

Danke dennoch vielmals.


MaggieMay

Hallo,
ZitatJahr = 2015
und was machst du im nächsten Jahr?! :-)
Freundliche Grüße
MaggieMay

accessy

Nächstes Jahr steht dort

=DomSumme("Umsatz";"Werkzeug_Artikel";"Jahr = 2016 and KNR = '" & [tfKNR] & "'")

Die Änderung dauert nur eine Minute...


MzKlMu

Hallo,
am Schluss muss Du dann einen Zettel machen (oder eine Datenbank  ;D ) um keine Änderungen bei Jahreswechsel zu vergessen.

Daher wäre es besser so:
=DomSumme("Umsatz";"Werkzeug_Artikel";"Jahr = Jahr(Datum()) and KNR = '" & [tfKNR] & "'")
Eventuell Jahr durch Year ersetzen.
Gruß Klaus

bahasu

Hi,

und wenn man am Anfang von 2016 rückblickend auf 2015 das machen will, fängt man wieder an zu programmieren (wenn man danach bezahlt wird, ist das natürlich die beste Variante ;D ).

Warum also nicht ein ungebundenes Steuerelement anbieten, in dem man als Default-Wert das aktuelle Jahr hat, der aber durch einen beliebigen anderen ersetzt werden kann?  :)

Harald
Servus

accessy

Finde ich wirklich toll, dass ihr mir bei meinen Anliegen helfen wollt.
Aber ich muss das mal bisschen bremsen. Ich habe doch hier keine Riesen-DB mit 1000 Formularen und unendlich vielen Abfragen und Tabellen....
Meine DB hat nicht mal 10MB....

Einmal im Jahr brauche ich für 30 Sekunden lediglich aus der 2015 eine 2016 machen. Ende und gut...

Und die Änderung der Formel bringt diese Resultate mit sich


=DomSumme("Umsatz";"Werkzeug_Artikel";"Jahr = Jahr(Datum()) and KNR = '" & [tfKNR] & "'")

Anzeige im Feld #Fehler


=DomSumme("Umsatz";"Werkzeug_Artikel";"Year = Jahr(Datum()) and KNR = '" & [tfKNR] & "'")

Anzeige im Feld #Fehler


=DomSumme("Umsatz";"Werkzeug_Artikel";"Jahr = Year(Datum()) and KNR = '" & [tfKNR] & "'")

Anzeige im Feld #Fehler


=DomSumme("Umsatz";"Werkzeug_Artikel";"Year = Year(Datum()) and KNR = '" & [tfKNR] & "'")

Anzeige im Feld #Fehler


=DomSumme("Umsatz";"Werkzeug_Artikel";"Year = Year(Date()) and KNR = '" & [tfKNR] & "'")

Anzeige im Feld #Fehler



MaggieMay

Hi,

du solltest hier konsequent die englische Schreibweise im Kriterium einsetzen.
Beispiel:
=DomSumme("Umsatz";"Werkzeug_Artikel";"Jahr = Year(Date()) And KNR = '" & [tfKNR] & "'")

KNR ist vom Typ Text?
Freundliche Grüße
MaggieMay

DF6GL

Hallo,

und am Besten auch konsequent daran halten:

Auf reservierte Wörter und/oder Funktionsnamen für Tabellen-Formularfelder ganz verzichten:

....Jahr = Year(Date()) .....


"Jahr" kann hier schnell mal von Access als Aufruf der Jahr()-Funktion fehlinterpretiert werden..

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