Supportnet / Forum / Datenbanken
Felder in Abfrage berechnen
Frage
Hallo alle zusammen,
habe da ein spezielles Problem (aber für Anfänger sind wohl alle Probleme sehr speziell):
In meiner Access-Tabelle gibt es drei Spalten, die Text enthalten, jeweils einen 2stelligen, einen 3stelligen und einen Freitext-Code.
Jetzt möchte ich in einer Abfrage ein Feld berechnen, das für bestimmte Codes (aus allen drei Feldern) eine 1, für allen anderen Codes eine 2 und wenn alle drei Felder leer sind eine 0 enthält.
Kann mir da jemand weiterhelfen?
Beste Grüße
Gert
Antwort 1 von El Bobbele
Hallo Gert!
Du müsstest etwas konkreter werden, wenn du eine ebenso konkrete Antwort haben möchtest. Beispiele würden sicherlich helfen.
Anhand deiner knappen Infos kann ich nicht mehr zusammenschustern als dieses Feld in einer Abfrage:
Vielleicht ist das schon Inspiration genug? :-)
Gruss
El Bobbele
Du müsstest etwas konkreter werden, wenn du eine ebenso konkrete Antwort haben möchtest. Beispiele würden sicherlich helfen.
Anhand deiner knappen Infos kann ich nicht mehr zusammenschustern als dieses Feld in einer Abfrage:
Ergebnis: Wenn(IstNull(Feld1) Und IstNull(Feld2) Und IstNull(Feld3);0;Wenn([Hier Bedingung für "bestimmte Codes" einfügen];1;2))Vielleicht ist das schon Inspiration genug? :-)
Gruss
El Bobbele
Antwort 2 von FrankieH
Vieleicht als Info vorweg:
In Abfragen, die ja intern auf SQL basieren, kann man auch Spalten zusammensetzen und auch rechnen - z.B. aus einem Datum eine Soortierspalte bzw. Gruppierungsspalte erzeugen. Aber SQL eignet sich nicht für komplexe Berechnungen mit Fallunterscheidungen o.ä.
Ich würde an Deiner Stelle für so etwas ein Formular entwickeln, das die von Dir angesprochene Spalte durch eine Funktion füllt. In der Funktion kannst Du dann auch langen Code mit Fallunterscheidungen etc. verwenden. Wenn Du es als Datenblatt ausgibst, sieht es aus wie eine normale Access-Tabelle.
Leider ist es so, dass Anfänger beim Entwurf ihrer Datenbank noch Designfehler machen. Vielleicht wäre Dein Problem mit einem anderen Tabellendesign gar nicht vorhanden und allein mit SQL lösbar.
Aber - wie Bobbele schon sagte - dazu fehlt uns hier aufgrund Deiner knappen Problembeschreiubung hier die Information.
In Abfragen, die ja intern auf SQL basieren, kann man auch Spalten zusammensetzen und auch rechnen - z.B. aus einem Datum eine Soortierspalte bzw. Gruppierungsspalte erzeugen. Aber SQL eignet sich nicht für komplexe Berechnungen mit Fallunterscheidungen o.ä.
Ich würde an Deiner Stelle für so etwas ein Formular entwickeln, das die von Dir angesprochene Spalte durch eine Funktion füllt. In der Funktion kannst Du dann auch langen Code mit Fallunterscheidungen etc. verwenden. Wenn Du es als Datenblatt ausgibst, sieht es aus wie eine normale Access-Tabelle.
Leider ist es so, dass Anfänger beim Entwurf ihrer Datenbank noch Designfehler machen. Vielleicht wäre Dein Problem mit einem anderen Tabellendesign gar nicht vorhanden und allein mit SQL lösbar.
Aber - wie Bobbele schon sagte - dazu fehlt uns hier aufgrund Deiner knappen Problembeschreiubung hier die Information.
Antwort 3 von Gert
Hallo Bobbele, hallo FrankieH!
Danke für Eure Antworten.
Habe den Vorschlag von Bobbele aufgegriffen und das Ergebnis ist eine Parameterabfrage. Das Feld soll aber ohne weitere Eingaben berechnet werden.
Die drei Felder sind werden über ein Kombinationsfeld in einem Formular ausgefüllt. Die Einträge ins Formular werden über drei Tabellen referenziert.
Im ersten Feld kommen z.B. Codes vor wie: "DE" oder "SG", etc.
Im zweiten Feld kommen Codes vor wie: "SEG" oder "LTT", etc.
Im dritten Feld kommen Codes vor wie: "Christkind" oder "Käptn Blaubär".
Das berechnete Feld soll aus "DE", "LTT", und "Christkind" eine 1, aus allen anderen eine 2 machen. Wenn alle drei Felder leer sind soll eine 0 rein.
Wenn Euch dazu noch was einfällt, wäre ich Euch echt extrem dankbar.
Grüße Gert
Danke für Eure Antworten.
Habe den Vorschlag von Bobbele aufgegriffen und das Ergebnis ist eine Parameterabfrage. Das Feld soll aber ohne weitere Eingaben berechnet werden.
Die drei Felder sind werden über ein Kombinationsfeld in einem Formular ausgefüllt. Die Einträge ins Formular werden über drei Tabellen referenziert.
Im ersten Feld kommen z.B. Codes vor wie: "DE" oder "SG", etc.
Im zweiten Feld kommen Codes vor wie: "SEG" oder "LTT", etc.
Im dritten Feld kommen Codes vor wie: "Christkind" oder "Käptn Blaubär".
Das berechnete Feld soll aus "DE", "LTT", und "Christkind" eine 1, aus allen anderen eine 2 machen. Wenn alle drei Felder leer sind soll eine 0 rein.
Wenn Euch dazu noch was einfällt, wäre ich Euch echt extrem dankbar.
Grüße Gert

