Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Arnostone am Februar 02, 2015, 14:17:09

Titel: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: Arnostone am Februar 02, 2015, 14:17:09
Hallo,

ich stehe mal wieder auf dem Schlauch, dabei könnte es so einfach sein:
Ich habe mir mittels einer Abfrage "tblAlter" das Alter aus dem Geburtsdatum der Haupttabelle "tblMitarbeiter" erechnen lassen. Nun habe ich das Alter schön ausgerechnet in der Abfrage stehen, möchte dieses aber auch direkt im Formular neben dem Geburtstag angezeigt bekommen. Über "vorhandene Felder hinzufügen" klappt dies ja nicht... Wie dann?

Hilflose Grüße
Arno
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: datekk am Februar 02, 2015, 15:00:03
Hi. Was ist denn die Datengrundlage des Formulars? Die Abfrage oder die Tabelle?
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: Arnostone am Februar 02, 2015, 15:40:28
Grundlage des Formulars ist die Tabelle.
Arno
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: datekk am Februar 02, 2015, 15:56:21
Dann musst du entweder die Abfrage zur Grundlage des Formulars machen oder Du berechnest das Alter direkt im Formular. Dazu legst Du ein neues Textfeld an und gibst als Steuerelementeinhalt

DatDiff("jjjj";[Geburtsdatum];Datum()) + (Format(Datum();"mmtt") < Format([Geburtsdatum];"mmtt"))

ein. [Geburtsdatum] ist der Name der Spalte die das Geburtsdatum enthält und muss auf Deinen Spaltennamen angepasst werden.
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: MzKlMu am Februar 02, 2015, 16:00:35
Hallo,
Du musst die Abfrage als Datenquelle für das Formular verwenden. Wie sonst, soll das mit der Anzeige des Alters auch funktionieren.

BTW:
Datengrundlage von Formularen und Berichten sollte immer eine Abfrage sein, nicht die Tabelle direkt. Nur dann ist zuverlässig die immer gleiche (sortierte) Reihenfolge der Datensätze gewährleistet.
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: Arnostone am Februar 02, 2015, 16:32:44
Sorry, ich bin blutiger Laie. Ich habe bisher Formulare immer aus Tabellen erstellt. Felder im Formular habe ich mittels "vorhandene Felder hinzufügen" eingebaut. Scheinbar war dann immer die Tabelle Datengrundlage. Nun habe ich das Erstellen eines "Abfrage"-Formulars über die den Formularassistenten vollzogen. jetzt habe ich zwar das Alter im Formular, kann aber keine Daten über das Formular mehr eingeben. Was mache ich falsch?
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: MzKlMu am Februar 02, 2015, 16:35:40
Hallo,
nimm das bisherige Formular und trage statt des Tabellennamens den Namen der Abfrage ein. Achte darauf, dass die Abfrage alle Felder der Tabelle enthält.
Du musst kein neues Formular machen, das geht alles viel einfacher.

Öffne mal die Abfrage direkt, kannst Du da Daten ändern ?
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: Arnostone am Februar 03, 2015, 12:19:43
Danke, aber das haut alles nicht hin :-[. Ist es denn nicht möglich, das Ergebnis meiner Abfrage (errechnetes Alter) in dem vorhandenen Forumar einzublenden. Kann ich dieses Abfrageergebniss nicht in eine vorhandene Tabelle integrieren/übernehmen, um damit weiterrechnen zu können?
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: MzKlMu am Februar 03, 2015, 12:26:50
Hallo,
ZitatDanke, aber das haut alles nicht hin
sorry, aber eine solche Aussage hilft Dir nicht weiter, die ist völlig wertlos.
ZitatIst es denn nicht möglich, das Ergebnis meiner Abfrage (errechnetes Alter) in dem vorhandenen Forumar einzublenden. Kann ich dieses Abfrageergebniss nicht in eine vorhandene Tabelle integrieren/übernehmen,
doch, das ist alles völlig problemlos möglich, wenn man es richtig macht. Und Hinweise dazu hast Du bekommen.

Aber um zu sehen was falsch ist, müsste man halt wissen, was Du gemacht hast, genau.

Am besten Du zeigst mal den SQL Code der Abfrage mit dem Alter.
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: datekk am Februar 04, 2015, 14:15:54
Ich habe den Eindruck das der TE mit Abfrage ggf. was anderes meint als wir... Kannst Du Arnostone mal schreiben, wie Du das Alter in der Abfrage berechnest? Übrigens hatte ich weiter oben geschrieben, wie Du das Alter direkt im Formular darstellen kannst. Ich verstehe nämlich nicht, wie man das Alter in einer Abfrage berechnen kann, man aber nicht weis, wie man ein Formular aus einer Abfrage erstellt.

Vielleicht noch eine Frage: Du meinst mit Formular nicht zufällig einen Bericht? Den kann man nämlich nicht bearbeiten. Und kannst Du bitte MzKlMu´s Frage beantworten ob Du das Abfrageergebnis selbst ändern kannst, wenn Du die Abfrage ausführst...?
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: Arnostone am Februar 04, 2015, 15:34:34
hallo,

das Alter habe ich in der Abfrage errechnet, in dem ich in der Entwurfsansicht der Abfragetabelle in das Feld folgendes eingeben habe:

Alter in Jahren: DatDiff("jjjj";[Geburtsdatum];Datum())+(Format(Datum();"mmtt")<Format([Geburtsdatum];"mmtt")).

Für mich als Laie war dabei der Tipp unten hilfreich. Damit bekomme ich in meiner Abfrage auch schön das Alter angezeigt. Nun wollte ich dieses auch im Formular angezeigt bekommen, geht aber nicht. Das einzige, was ich hier tun konnte, war mir das Alter nochmal in einem ungebundenen Textfeld anzeigen zu lassen, quasi als "doppelte Buchführung".
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: datekk am Februar 04, 2015, 15:56:18
ok das ist doch schon mal was.... jetzt fügst du einfach in diese Abfrage noch die anderen Felder der Tabelle ein. Gehe dazu in die Entwurfsansicht. Da wird Dir doch im oberen Teil die Tabelle mit allen darin verfügbaren Feldern angezeigt. Klicke einfach ganz oben auf das "*" per Doppelklick. Es wird dann unten in der Abfrage rechts neben deiner Spalte "Alter in Jahren" angezeigt. Bitte ändere mal den Namen der Spalte in "Alter_in_Jahren" ab.

Also:

Alter_in_Jahren: DatDiff("jjjj";[Geburtsdatum];Datum())+(Format(Datum();"mmtt")<Format([Geburtsdatum];"mmtt")).


Vermeide Leerzeichen. Dann ist die Abfrage fertig. Speichern klicken.

Nun öffne das Formular in der Layoutansicht (Rechtsklick auf das Formular, Layoutansicht wählen). Dann lässt Du Dir die Eigenschaften anzeigen (Menüband Entwurf - dann auf Eigenschaftsblatt). Das Eigenschaftsblatt öffnet sich am rechten Bildschirmrand. Da ist oben ein Feld mit einem kleinen schwarzen Dreieck an der Seite. Klick auf das Dreieck. Wähle dort "Formular" aus.

Gehe dann auf den Reiter "Daten". Ganz oben Steht "Datensatzquelle".. klicke hier auf das schwarze Dreieck. Wähle dort die Abfrage aus. Nicht die Tabelle!!!

Gehe dann wieder oben auf Menüband / Entwurf... Vorhandene Felder zufügen. Ziehe das Feld "Alter_in_Jahren" in Dein Formular an die gewünschte Stelle.



Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: DF6GL am Februar 04, 2015, 15:57:17
Hallo,


schreib in den Steuerelementinhalt eines Textfeldes dieses:

=Domwert("[Alter in Jahren]";"qryDeineAbfrage")

sofern die Abfrage schon den entspr. Mitarbeiter filtert.

Wenn die Abfrage alle MA mit ihrem Alter liefert, dann ist ein Kriterium (MA_ID) erforderlich:


=Domwert("[Alter in Jahren]";"qryDeineAbfrage";"MA_ID= " & [MA_ID])



wobei "MA_ID" das Primärschlüsselfeld in der Abfrage und "[MA_ID]" das enstpr. Textfeld im Formular ist.
Titel: Re: Abfrage mit erechnetem Alter im Formular anzeigen
Beitrag von: MzKlMu am Februar 04, 2015, 18:26:33
Hallo,
wenn ohnehin in einer Abfarge das Alter gerechnet wird, kann man sich das doch alles sparen.
Das Formular an die Abfrage binden und fertig.

Beispiel anbei.