Supportnet / Forum / Datenbanken
Abfragen in ACCESS
Frage
Hallo zusammen,
meine Access Erfahrungen befinden sich noch in den Kinderschuhen. Daher wahrscheinlich eine einfach zu lösende Aufgabe: Ich habe eine Grundtabelle mit Namen, Vornamen, Geb. Datum, Hochzeitsdatum, etc.in Access importiert. Nun möchte ich auf diese Tabelle eine Abfrage erstellen:
Ziel der Abfrage soll es sein, dass ich die Personen herausfiltere,welche im Jahr 2005 Silber- bzw. Goldene Hochzeit haben.
Ich müße also rechnen:
Jahr 2005 abzüglich 25 Jahre = Silberhochzeit
Jahr 2005 abzüglich 50 Jahre = Goldene Hochzeit.
Wie kann ich das entsprechend eingeben ?
Vielen Dank
s018152 !
Antwort 1 von Knubbel
Hi sO,
der Reihe nach:
Übernimm in deine Abfrage die Felder Name, Vorname und Hochzeitsdatum.
Nun erstellst du ein berechnetes Steuerelement
Hochzeits-J:Jahf([Hochzeitsdatum]
Ein weiteres berechnetes Steuerelement
AktJahr:Jahr(Datum()) Hierdurch gilt die Abrage auch noch im nächsten Jahr.
Ein 3. berechnetes Steuerelement
Silberhochzeit:[Aktjahr]-[Hochzeits-J]
Bei diesem Steuerelement gibst du als Bedingung ein: =25
Für die Goldene Hochzeit erstellst du eine gleiche Abfrage mit der Bedingung =50
mfg Knubbel
der Reihe nach:
Übernimm in deine Abfrage die Felder Name, Vorname und Hochzeitsdatum.
Nun erstellst du ein berechnetes Steuerelement
Hochzeits-J:Jahf([Hochzeitsdatum]
Ein weiteres berechnetes Steuerelement
AktJahr:Jahr(Datum()) Hierdurch gilt die Abrage auch noch im nächsten Jahr.
Ein 3. berechnetes Steuerelement
Silberhochzeit:[Aktjahr]-[Hochzeits-J]
Bei diesem Steuerelement gibst du als Bedingung ein: =25
Für die Goldene Hochzeit erstellst du eine gleiche Abfrage mit der Bedingung =50
mfg Knubbel
Antwort 2 von oliverV
Hallo,
meine etwas komprimierte Variante:
Erweitere deine Abfrage um das Feld:
[Code]
Hochzeitsjahr: Format([Hochzeitsdatum];"jjjj")
[/Code]
und als Kriterium in diesem Feld verwende:
[Code]
=(Format(Datum();"jjjj")-25) Oder (Format(Datum();"jjjj")-50)
Gruß
Oliver
meine etwas komprimierte Variante:
Erweitere deine Abfrage um das Feld:
[Code]
Hochzeitsjahr: Format([Hochzeitsdatum];"jjjj")
[/Code]
und als Kriterium in diesem Feld verwende:
[Code]
=(Format(Datum();"jjjj")-25) Oder (Format(Datum();"jjjj")-50)
Gruß
Oliver
Antwort 3 von Knubbel
Hi Oliver,
deine komprimierte Lösung ist m.E. für einen Anfänger etwas komplex, aber gut. Da hierbei aber alle beiden Jubiläen in einer Tabelle erscheinen, sollte dann das Jubiläum auch noch angezeigt werden.
in einem weiteren Feld:
=Jubiläum: wenn((Format(Datum();"jjjj")-Format(Hochzeitsdatum;"jjjj")=25;"Silberhochzeit";wenn(Format(Datum();"jjjj")-Format(Hochzeitsdatum;"jjjj")=50;"Goldene Hochzeit";""))
mfg Knubbel
deine komprimierte Lösung ist m.E. für einen Anfänger etwas komplex, aber gut. Da hierbei aber alle beiden Jubiläen in einer Tabelle erscheinen, sollte dann das Jubiläum auch noch angezeigt werden.
in einem weiteren Feld:
=Jubiläum: wenn((Format(Datum();"jjjj")-Format(Hochzeitsdatum;"jjjj")=25;"Silberhochzeit";wenn(Format(Datum();"jjjj")-Format(Hochzeitsdatum;"jjjj")=50;"Goldene Hochzeit";""))
mfg Knubbel
Antwort 4 von Knubbel
Hi,
bei der Formel ist mir ein Gleichheitszeichen zuviel entwischt. Die Formel muss lauten
Jubiläum: wenn......
sorry, Knubbel
bei der Formel ist mir ein Gleichheitszeichen zuviel entwischt. Die Formel muss lauten
Jubiläum: wenn......
sorry, Knubbel
Antwort 5 von s018152
Hallo Knubbel,
Du bist wirklich fit ! Aer wie erstelle ich denn dieses berechnende Steuerelement. Ich bin jetzt auf "Neu" gegangen. Danach habe ich die Tabelle ausgewahlt und die Felder Name, Vorname und Hochzeitsdatum gewählt. Nun wollte ich das berechnende Steuerelemt erstellen. Was muss ich da tun, ich habe mir die Toolbox anzeigen lassen, diese ist aber nicht aktiv ! Wo muß ich was eingeben ! Sorry, ich bin wirklich blutiger Anfänger !
Vielen Dank !
s018152
Du bist wirklich fit ! Aer wie erstelle ich denn dieses berechnende Steuerelement. Ich bin jetzt auf "Neu" gegangen. Danach habe ich die Tabelle ausgewahlt und die Felder Name, Vorname und Hochzeitsdatum gewählt. Nun wollte ich das berechnende Steuerelemt erstellen. Was muss ich da tun, ich habe mir die Toolbox anzeigen lassen, diese ist aber nicht aktiv ! Wo muß ich was eingeben ! Sorry, ich bin wirklich blutiger Anfänger !
Vielen Dank !
s018152
Antwort 6 von Knubbel
Hi Jens,
ich bin nicht so fit, wie viele Andere hier im Forum. Aber dennoch versuche ich Hilfe zu leisten.
Zunächst erstellst du eine Abfrage mit den Feldern, die du auswählen möchtest.
Die "berechneten" Felder legst du einfach an, in dem du in dem nächsten Feld der Abfrage in der Zeile "Feld" die entspechende Formel eingibst.
Zur Erklärung:
Ein berechnetes Feld ergibt ein neues "Steuerelement".
Dieses wird erzeugt durch eine Bezeichung mit anhängendem Doppelpunkt
also z.B.
Jubiläum:
Danach wird dann die Formel /Beziehun eingegeben.
Wenn du nun die Formeln aus den obigen Antworten einsetzt wirst du ein brauchbares Ergenis erhalten.
Wenn weitere Fragen offen sind, bitte melden.
mfg Knubbel
ich bin nicht so fit, wie viele Andere hier im Forum. Aber dennoch versuche ich Hilfe zu leisten.
Zunächst erstellst du eine Abfrage mit den Feldern, die du auswählen möchtest.
Die "berechneten" Felder legst du einfach an, in dem du in dem nächsten Feld der Abfrage in der Zeile "Feld" die entspechende Formel eingibst.
Zur Erklärung:
Ein berechnetes Feld ergibt ein neues "Steuerelement".
Dieses wird erzeugt durch eine Bezeichung mit anhängendem Doppelpunkt
also z.B.
Jubiläum:
Danach wird dann die Formel /Beziehun eingegeben.
Wenn du nun die Formeln aus den obigen Antworten einsetzt wirst du ein brauchbares Ergenis erhalten.
Wenn weitere Fragen offen sind, bitte melden.
mfg Knubbel
Antwort 7 von s018152
Hallo Knubbel,
danke für die bisherige Hilfe.
Ich habe mich für Deine erste Variante entschieden, da ich das am besten verstanden habe.Soweit hat alles funktioniert !
Ich habe jetzt in der Abfrage das Hochzeitsdatum,sowie die Berechnung Hochzeitsdatum abzüglich aktuelles Jahr. Soweit ist alles ok. Jezt möchte ich mir die Bedingung 25 bzw 50 anzeigen lassen. Hier habe ich noch ein paar Probleme. Wie funktioniert das ?
Ich kann in meiner Abfrage jetzt sehen, wann die Personen geheiratet haben und wieviel Jahre diese verheiratet sind. Ich habe =25 bzw = 50 im Feld "Kriterien" eingegeben. Aber leider ohne Erfolg !
Was mache ich falsch ?
Vielen Dank !
Jens
danke für die bisherige Hilfe.
Ich habe mich für Deine erste Variante entschieden, da ich das am besten verstanden habe.Soweit hat alles funktioniert !
Ich habe jetzt in der Abfrage das Hochzeitsdatum,sowie die Berechnung Hochzeitsdatum abzüglich aktuelles Jahr. Soweit ist alles ok. Jezt möchte ich mir die Bedingung 25 bzw 50 anzeigen lassen. Hier habe ich noch ein paar Probleme. Wie funktioniert das ?
Ich kann in meiner Abfrage jetzt sehen, wann die Personen geheiratet haben und wieviel Jahre diese verheiratet sind. Ich habe =25 bzw = 50 im Feld "Kriterien" eingegeben. Aber leider ohne Erfolg !
Was mache ich falsch ?
Vielen Dank !
Jens
Antwort 8 von oliverV
Hallo Jens,
wenn ich dich richtig verstehe hast du bisher wie in Antwort 1 diese 3 zusätzlichen Felder angelegt. Das Problem ist jetzt das Einschränken auf die 25- bzw. 50-jährigen.
Mit diesem Ansatz wird du Probleme bekommen, denn wie Knubbel geschrieben hat solltest du in dem 3. Feld (Silberhochzeit) als Bedingung =25 eingeben.
Das funktioniert nicht, denn das Feld [Silberhochzeit] setzt sich ja aus den Feldern [Hochzeits-J] und [AktJahr] zusammen; diese sind aber noch nicht berechnet, also kannst du sie nicht einschränken (Der Effekt ist, das du beim Ausführen der Abfrage aufgefordert wirst [Hochzeits-J] und [AktJahr] als Parameter einzugeben, um das Feld [Silberhochzeit] berechnen zu können).
Als Lösung für diesen Ansatz:
Variante 1) Abfrage speichern.
Dann erstelle eine neue Abfrage, basierend auf der eben gespeicherten (nicht auf der Tabelle); hier kannst du dann das Feld [Silberhochzeit] mit der 25 einschränken.
Variante 2) Nimm deine vorhandene Abfrage und schränke das [Hochzeits-J] ein,
verwende dort als Kriterium:
=Jahr(Datum())-25
[/Code]
Bei beiden Varianten musst du noch mal das ganz Spiel mit der 50 durchspielen, dann hast du 2 getrennte Abfrageergebnisse.
Sicherlich führen viele Wege nach Rom (besonders beim Thema Access), aber das erscheint mir doch ein bisschen wie mit der rechten Hand hinter dem Kopf entlang, am linken Ohr gekratzt.
Der direkte Weg: Antwort 2
Ein zusätzliches Abfragefeld - für dieses Feld ein Kriterium - fertig.
Versuchs einfach mal.
Gruß
Oliver
wenn ich dich richtig verstehe hast du bisher wie in Antwort 1 diese 3 zusätzlichen Felder angelegt. Das Problem ist jetzt das Einschränken auf die 25- bzw. 50-jährigen.
Mit diesem Ansatz wird du Probleme bekommen, denn wie Knubbel geschrieben hat solltest du in dem 3. Feld (Silberhochzeit) als Bedingung =25 eingeben.
Das funktioniert nicht, denn das Feld [Silberhochzeit] setzt sich ja aus den Feldern [Hochzeits-J] und [AktJahr] zusammen; diese sind aber noch nicht berechnet, also kannst du sie nicht einschränken (Der Effekt ist, das du beim Ausführen der Abfrage aufgefordert wirst [Hochzeits-J] und [AktJahr] als Parameter einzugeben, um das Feld [Silberhochzeit] berechnen zu können).
Als Lösung für diesen Ansatz:
Variante 1) Abfrage speichern.
Dann erstelle eine neue Abfrage, basierend auf der eben gespeicherten (nicht auf der Tabelle); hier kannst du dann das Feld [Silberhochzeit] mit der 25 einschränken.
Variante 2) Nimm deine vorhandene Abfrage und schränke das [Hochzeits-J] ein,
verwende dort als Kriterium:
=Jahr(Datum())-25
[/Code]
Bei beiden Varianten musst du noch mal das ganz Spiel mit der 50 durchspielen, dann hast du 2 getrennte Abfrageergebnisse.
Sicherlich führen viele Wege nach Rom (besonders beim Thema Access), aber das erscheint mir doch ein bisschen wie mit der rechten Hand hinter dem Kopf entlang, am linken Ohr gekratzt.
Der direkte Weg: Antwort 2
Ein zusätzliches Abfragefeld - für dieses Feld ein Kriterium - fertig.
Versuchs einfach mal.
Gruß
Oliver
Antwort 9 von s018152
Hallo Oliver,
ja, es hat endlich geklappt ! Ich habe mich für Deine Variante entschieden. Langsam macht Acces ja richtig Spaß. Nochmals vielen Dank für Deine Hilfe.
Eine Frage noch, wo hast Du denn Deine fundierten Access Kenntnisse gelernt.
Kannst Du mir ein Buch empfehlen, welches für Anfänger geeignet ist.
Vielen Dank !!!
Jens
ja, es hat endlich geklappt ! Ich habe mich für Deine Variante entschieden. Langsam macht Acces ja richtig Spaß. Nochmals vielen Dank für Deine Hilfe.
Eine Frage noch, wo hast Du denn Deine fundierten Access Kenntnisse gelernt.
Kannst Du mir ein Buch empfehlen, welches für Anfänger geeignet ist.
Vielen Dank !!!
Jens
Antwort 10 von oliverV
Hallo Jens,
meine "Kenntnisse" habe ich mir im Laufe von ca. 3 ½ Jahren angeeignet, basiert also größtenteils auf Erfahrung. Man kann viel lesen, sowohl in Buchform wie auch Online, z.B. in Foren; man merkt sich einen Lösungsweg aber meisten nur, wenn man einen konkreten Fall hat, bei dem man die Geschichte umsetzt.
Mein Einsteigerbuch war "Access 2000" aus dem Markt+Technik-Verlag. Ich kann dir empfehlen in eine Buchhandlung zu gehen und einfach mal in verschieden Büchern ein Kapitel kurz anzulesen; nimm das Buch was für dich am verständlichsten geschrieben ist (Inhaltlich wirst du keine großen Unterschiede feststellen).
Das ist dann allerdings nur das Basiswissen, für "weiterführende" Probleme findest du unter Punkt 5 einige Online-Quellen.
Gruß
Oliver
meine "Kenntnisse" habe ich mir im Laufe von ca. 3 ½ Jahren angeeignet, basiert also größtenteils auf Erfahrung. Man kann viel lesen, sowohl in Buchform wie auch Online, z.B. in Foren; man merkt sich einen Lösungsweg aber meisten nur, wenn man einen konkreten Fall hat, bei dem man die Geschichte umsetzt.
Mein Einsteigerbuch war "Access 2000" aus dem Markt+Technik-Verlag. Ich kann dir empfehlen in eine Buchhandlung zu gehen und einfach mal in verschieden Büchern ein Kapitel kurz anzulesen; nimm das Buch was für dich am verständlichsten geschrieben ist (Inhaltlich wirst du keine großen Unterschiede feststellen).
Das ist dann allerdings nur das Basiswissen, für "weiterführende" Probleme findest du unter Punkt 5 einige Online-Quellen.
Gruß
Oliver
Antwort 11 von Knubbel
@ Jens,
sorry, dass ich meinen Lösungsvorschlag nicht getestet habe. Oliver hat natürlich recht (Antwort 8). Habe diesen Effekt ganz übersehen.
@ Oliver,
danke für den Hinweis auf meinen Fehler.
Haupsächlich, Jens hat eine funktionierende DB.
mfg Knubbel
sorry, dass ich meinen Lösungsvorschlag nicht getestet habe. Oliver hat natürlich recht (Antwort 8). Habe diesen Effekt ganz übersehen.
@ Oliver,
danke für den Hinweis auf meinen Fehler.
Haupsächlich, Jens hat eine funktionierende DB.
mfg Knubbel
Antwort 12 von oliverV
Dieser Beitrag ist meiner Meinung nach ein gutes Beispiel für die Lösung eines Problems in einem Forum.
- Klare Fragestellung
- Verschieden Lösungsvarianten
- Vor- und Nachteile der Lösungsvorschläge "ausdiskutieren"
- Zusätzliche Hintergrundinfos von beiden "Vorschlagenden"
- und vor allem Feedback
Wenn doch nur jeder Beitrag so wäre....
Gruß
Oliver
- Klare Fragestellung
- Verschieden Lösungsvarianten
- Vor- und Nachteile der Lösungsvorschläge "ausdiskutieren"
- Zusätzliche Hintergrundinfos von beiden "Vorschlagenden"
- und vor allem Feedback
Wenn doch nur jeder Beitrag so wäre....
Gruß
Oliver

