Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: gsaccess am Januar 07, 2023, 16:43:05

Titel: Access Abfrage in vba weiterbearbeiten
Beitrag von: gsaccess am Januar 07, 2023, 16:43:05
Ich habe in meiner Datenbank eine Abfrage die mir die Auftragsnummer der letzten Schlussrechnung liefert.
SELECT auftrag.Kunden_Nr, Max(auftrag.auftrag_nr) AS letzteSR
FROM auftrag
GROUP BY auftrag.Kunden_Nr, auftrag.schlussrechnung
HAVING (((auftrag.Kunden_Nr)=[Formulare]![frmReBearbeitung]![Navigationsunterformular].[Formular]![txtKundenNr]) AND ((auftrag.schlussrechnung)=True));
Nun möchte ich diesen Wert in VBA weiterverwenden bzw. in einer zweiten Abfrage einbinden damit dort die Teilrechnungen des Kunden ab der letzten Schlussrechnung verwendet werden.
Abfrage der bisherigen Teilrechnungen des Kunden
SELECT auftrag.Kunden_Nr, auftrag.auftrag_nr, auftrag.int_auftrag_nr, Sum(auftrag.summe_netto) AS NettoResumme, Sum([summe_netto]+[summe_netto]*[Mwstsatz]/100) AS BruttoResumme, Sum(zahlungsdetail.Zahlungsbetrag) AS BisherBezahlt, zahlungsdetail.Zahlungsdatum, Sum(([summe_netto]+[summe_netto]*[Mwstsatz]/100)-[zahlungsbetrag]) AS Differenz
FROM auftrag LEFT JOIN zahlungsdetail ON auftrag.auftrag_nr = zahlungsdetail.AuftragID
WHERE (((auftrag.Teilrechnung)=True))
GROUP BY auftrag.Kunden_Nr, auftrag.auftrag_nr, auftrag.int_auftrag_nr, zahlungsdetail.Zahlungsdatum
HAVING (((auftrag.int_auftrag_nr)=[Formulare]![frmReBearbeitung]![Navigationsunterformular].[Formular]![int_auftrag_nr]));

Hat jemand eine Idee wie ich diese beiden Abfragen kombinieren kann, bzw. wie ich das Ergebnis der ersten Abfrage in ein Feld im Formuar einblenden kann.

meine Versuche in VBA sind aufgrund geringen Kenntnisse alle gescheitert:
ein Versuch
Dim rs As DAO.Recordset
Dim strsql As Variant
strsql = " SELECT Max(auftrag.auftrag_nr) AS letzteSR FROM auftrag GROUP BY auftrag.Kunden_Nr, auftrag.schlussrechnung; HAVING (((auftrag.Kunden_Nr)=[Formulare]![frmReBearbeitung]![Navigationsunterformular].[Formular]![txtKundenNr]) AND ((auftrag.schlussrechnung)=True)); "
Me.txtletzteSR = strsql
Titel: Re: Access Abfrage in vba weiterbearbeiten
Beitrag von: MzKlMu am Januar 07, 2023, 17:02:37
Hallo,
zeige bitte mal ein Bild des beziehungsfensters, damit man sich ein Bild vom Tabellenaufbau machen kann. Ohne kann ich keine Vorschläge machen.
Titel: Re: Access Abfrage in vba weiterbearbeiten
Beitrag von: gsaccess am Januar 07, 2023, 17:25:48
Wie kann ich ein Bild im forum zeigen?

Ich habe das Bild hier hochgeladen. MzKlMu
Titel: Re: Access Abfrage in vba weiterbearbeiten
Beitrag von: MzKlMu am Januar 07, 2023, 17:50:48
Hallo,
Zum Anhängen von Bildern bittte nach Scrollen (vorher Antworten klicken) und Datei hochladen.

Die Datenbankstruktur ist stark verbesserungsbedürftig. Die Rechnungsdaten gehören in eine extra Tabelle und auch die Zahlungen müssen als je ein Datensatz in eine extra Tabelle. Und wenn Du Teilrechnungen hast, ist zwischen Rechnungen und Zahlungen noch eine TAbelle für die Teilrechnungen anzulegen.
Es ist auch keine referentielle Integrität eingestellt, was für eine funktionierende Datenbank unerlässlich ist.

Mit dieser Datenbankstruktur kann ich Dir leider nicht helfen.

Du solltest Dich mit den Grundlagen zum Aufbau relationaler Datenbanken beschäftigen.

https://www.hdm-stuttgart.de/~riekert/lehre/db-kelz/

https://www.access-tutorial.de/
Titel: Re: Access Abfrage in vba weiterbearbeiten
Beitrag von: gsaccess am Januar 07, 2023, 19:29:43
Vielen Dank für die rasche Hilfe. Das mit der referentiellen Integrität ist mir klar. Ich bin dabei die gesamte Datenbank neu zu strukturieren (Übernahme von einem anderen Programmierer).
Ich habe nur versucht in der alten Datenbank einige adhoc Änderungen zu machen.

Die Rechnungen sind in einer eigenen Tabelle die aber leider auftrag heißt. In dieser Tabelle werden Teilrechnungen, Schlussrechnungen, Innergem Erwerbe, Export, Bauleistungen in jeweils einem J/N Feld gespeichert. Alle Rechnungen haben eine aufsteigende Nummerierung.
Die Zahlungen werden in der Tabelle Zahlungsdetails gespeichert. Dabei wird die jeweilige Rechnungsnummer mitgespeichert.
Ist es aus deiner Erfahrung sinnvoll alle Tabellen neu aufzubauen und dann die Daten in die neuen Tabellen zu übernehmen oder macht es Sinn die Tabellen ordentlich zu verknüpfen?
Vielen Dank im Voraus für deine fachmännisch Meinung.
Titel: Re: Access Abfrage in vba weiterbearbeiten
Beitrag von: MzKlMu am Januar 07, 2023, 19:36:41
Hallo,
wenn Du schon neu machst, tritt das bisherige in Tonne. Das ist weitgehend unbrauchbar.
Die Tabellen müssen in jedem Fall ordentliche (besser korrekte) Beziehungen haben, mit RI. Orientiere Dich an den obigen Links.
Verknüpfungen ist übrigens etwas anderes als Beziehungen. Beziehungen gibt es ausschließlich im Beziehungsfenster bzw. werden dort angelegt. Verknüpfungen werden in Abfragen angelegt. Sind oftmals gleich wie die Bezeihungen müssen aber nicht.
Titel: Re: Access Abfrage in vba weiterbearbeiten
Beitrag von: gsaccess am Januar 07, 2023, 20:45:13
Vielen Dank!!! :) Dann werd ich mal in den nächsten Wochen an die Arbeit gehen und übers Wochenende mich mit deinen Links befassen.