Hallo liebe Experten,
ich habe ein Problem mit der SQL Programmierung in Access.
Zuerst das Problem:
Ich habe in Access eine Tabelle (Firma) die sieht etwa so aus
Monat Abteilung Wert
Januar A 2,5
Januar T 4,3
Februar D 5
Februar E 1,1
März H 3
März B 2,0
Usw.
Dann habe ich dazu ein Formular (Firma), welches ein Kombinationsfeld (Monat), ein Button und ein Listenfeld (Abteilung) beinhaltet.
In dem Kombinationsfeld sind die Monate aufgelistet, woraus man einen Monat auswählen kann. In dem darunterliegenden Listenfeld sollen dann die Daten aufgezeigt werden. D.h. wenn ich den Monat „Januar“ auswähle soll unten im Listenfeld es so aussehen:
Abteilung Wert
A 2,5
T 4,3
Die Tabelle hat zwar mehrere Einträge für jeden Monat, aber das ist ja trivial.
Ich habe auch schon einen Code gefunden, der dies filtert und in eine Tabelle (Zwischenwerte_Firma) ablegt. Das untere Listenfeld übernimmt dann die Daten aus dieser Tabelle. Der Button ist nur dazu da, um das Formular zu schließen und wieder zu öffnen, damit die Daten aktualisiert werden. Dadurch ist zwar der Eintrag des ausgewählten Monats „Januar“ im Kombinationsfeld nicht mehr da, aber das ich ein kleineres Problem. Mein Problem ist es, dass wenn ich einen Zeitpunkt ausgewählt habe, dass dann eine Massage-Box mich auffordert, noch einmal den Monat einzugeben, und dies soll nicht vorkommen.
Hier erst mal der Code:
Private Sub Monat_AfterUpdate()
DoCmd.SetWarnings (0)
Dim SQL_löschen As String
Dim SQL_anfügen As String
SQL_löschen = „DELETE*FROM Zwischenwerte_Firma;“
SQL_anfügen = „INSERT INTO Zwischenwerte_Firma (Abteilung, Wert )SELECT Firma.Abteilung, Firma.Wert FROM Firma WHERE(((Firma.Monat)=[Formular]![Firma].[Monat]));“
DoCmd.RunSQL SQL_löschen
DoCmd.RunSQL SQL_anfügen
Monat.Requery
DoCmd.SetWarnings (-1)
End Sub
Weil in der Massage-Box folgendes angezeigt wird “ Formular!Firma.Monat“ gehe ich davon aus, dass der Fehler bzw. die Ursache an der WHERE Bedingung liegen muss.
Aber ich kenne mich mit SQL nicht aus, und ich habe es nicht hinbekommen den Code so zu verändern, dass die Box weg ist und, dass die Funktion auch noch funktioniert.
Falls jemand eine Antwort oder Hilfestellung hat, wäre ich sehr dankbar. Ich suche schon lange und verzweifele langsam.
Danke im voraus.