Hallo,
ich habe seit kurzem die Aufgabe auf der Arbeit eine Termindatenbank zu pflegen, diese Datenbank wurde von meiner Vorgängerin erstellt und wie das so ist kommen durch einen neuen Mitarbeiter neue Ideen weil einem auffällt, das manches sehr umständlich ist.
Ich bin absoluter Access Neuling, aber habe viel Erfahrung in Excel und VBA, die mir natürlich auch bei Access vom Vorteil sind. Deswegen konnte ich mir schon sehr viel selber beibringen und auch diverse Verbesserungen in der Datenbank machen.
Nun habe ich aber ein Problem, dass ich selber nicht gelöst bekomme, obwohl ich von der Logik her schon etwa weiß, was ich machen müsste, es fehlt mir dann aber doch an Erfahrung um es selber zu lösen.
Ich habe eine Übersicht mit den aktuellen Aufträgen, welche teilweise vielen Positionen bestehen, ich möchte in der Abfrage sehen können, ob ein bestimmtes Teil/Produkt dabei ist, welches noch zu einer externen Bearbeitung muss (in der Beispieldatei müssen Rohre zum Verzinken). Das ,,ja" oder ,,nein" ermittele ich einfach über ein berechnetes Feld mit ,,Wenn". Das heißt aber auch, dass in der Positionsübersicht zu den Aufträgen in einem Auftrag mehrere ,,ja" und ,,nein" sein können. Und genau das ist mein Problem, wenn in einem Auftrag ein ,,ja" und ,,nein" drin ist, habe ich den in der Übersicht dann einmal mit ,,ja und das andere Mal mit ,,nein".
Wie bekomme ich es nun hin, wenn ich ein ,,ja" im Auftrag ist, den Auftrag nur mit ,,ja" und die Zeile mit ,,nein" wegzulassen", falls aber kein ,,ja" vorhanden ist, den Auftrag trotzdem mit ,,nein" aufzuführen?
Es könnte auch das berechnete Feld geändert werden. Das Feld wird nur in der Abfrage verwendet. Oder halt die Abfrage mit SQL-Befehlen anders gestalten.
Von meiner Excel-Denkweise würde ich das berechnete Feld praktisch mit einem ,,Wenn" und ,,Zählenwenns" ausstatten. Auftragsnummer und ,,Rohr" als Kriterien und wenn das Ergebnis von ,,Zählenwenns" größer 0 ist kommt ein ,,ja" hin.
Das muss man doch in die Abfrage oder das berechnete Feld bekommen oder?
Ich danke euch vorab schon mal vielmals!
Eingangsfrage: Gibt es mehr zu verzinken als das Produkt Rohr?
Eine Hardcodierung wäre dann sehr schlecht, das Datenmodell müsste erweitert werden.
Zu berechneten Feldern in Tabellen hat Philipp Stiefel einen Beitrag (http://codekabinett.com/rdumps.php?Lang=1&targetDoc=berechnetes-feld-access-tabelle-datum-quartal-ermitteln) geschrieben. Ich stimme vor allem den genannten Problemen zu und würde Berechnungen in Abfragen verlegen.
Nein es geht nur um die Rohre. Habe noch eine andere Abfrage wofür ich das vielleicht auch gebrauchen könnte aber auch hier ist nur eine Kriterium und nicht mehrere Sachen oder so.
SELECT
A.Auftragsnummer,
A.Kundennummer,
A.Termin,
P.verz
FROM
Aufträge AS A
INNER JOIN
(
SELECT
Auftragsnummer,
MIN(IIF(Produkt = 'Rohr', 'ja', 'nein')) AS verz
FROM
[PSP-Elemente]
GROUP BY
Auftragsnummer
) AS P
ON A.Auftragsnummer = P.Auftragsnummer
ORDER BY
A.Auftragsnummer
Besten Dank!
Dann werde ich jetzt auch versuchen den Code zu verstehen :D