Supportnet Computer
Planet of Tech

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

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

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

Antwort 4 von Knubbel

Hi,

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

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

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

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

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

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

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

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