Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: lissi1991 am Februar 04, 2018, 13:37:42

Titel: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 13:37:42
Hallo liebe community,

ich habe folgendes Problem:

Im Hauptformular befindet sich eine Combobox, die über eine Abfrage Werte aus einer Tabelle entnehmen soll. Diese Abfrage ist eine Select Distrinct Abfrage.
Die gefilterten Werte sollen in einem Unterformular angezeigt werden.
Leider funktioniert das mit meinem Code nicht. Es erscheint Syntaxfehler 3075 fehlender Operator. Beim Debuggen bleibt er bei .Filter = String stehen.

Private Sub cboMonat_AfterUpdate()
     Dim strFilter As String
     strFilter = Me!cboMonat
     Debug.Print strFilter
     With Me!UFOgemittelterAbsatz.Form
         .Filter = strFilter
         .FilterOn = True
     End With
End Sub


Vielen Dank für eure Hilfe.
Ich brauche schnellstmöglich eine Antwort. Abgabetermin ist sehr bald.

Liebe Grüße

Titel: Re: Syntaxfehler 3075 fehlender Operator
Beitrag von: MzKlMu am Februar 04, 2018, 14:05:51
Hallo,
der reine Feldname im Formular ist kein gültiger Filterstring.
Bei der Ausgabe über Debug.Print muss Dir das eigentlich klar sein.
Du musst ja mit etwas vergleichen.
Etwa so:
ZitatstrFilter = "FeldnameTabelle = " & Me!cboMonat
Aud welches Feld soll sich also der Monat beziehen ?
Zeige mal den SQL Text der Abfrage.

PS:
Verwende die Codetags des Forums.

Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 14:19:31
Vielen Dank MzKlMu

Das habe ich schon getan leider funktioniert das trotzdem nicht.

Die sql - Abfrage ist
SELECT DISTINCT tblsale.Monat From tblsale
als Ereignis der combobox

Leider bin ich in dem Gebiet nicht sehr bewandert. Wäre trotzdem toll, wenn mir geholfen werden kann.
Liebe Grüße
Lisa
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: DF6GL am Februar 04, 2018, 14:32:51
Hallo,

was für Werte enthält tblsale.Monat ?

Und außerdem:  reservierte Wörter vermeiden. ("Monat" ist der (deutsche) Name für die Month()-Funktion)

Zitatals Ereignis der combobox

??

Du meinst damit, der SQL-String steht in der Kombifeld-Eigenschaft "Datensatzherkunft" ?
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 14:54:18
die Werte in der Tabelle sind als kurzer Text deklariert. Meintest du das?
"01 Januar"z.B.
hab das jetzt umgeändert in xx-Monat in der Tabelle, leider funktioniert es trotzdem nicht.

Zitat:
"Du meinst damit, der SQL-String steht in der Kombifeld-Eigenschaft "Datensatzherkunft" ?"
ja genau dort hab ich es reingeschrieben.


Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: DF6GL am Februar 04, 2018, 15:45:00
Hallo,

ja, ich meinte den Datentyp des Tabellenfeldes.

Wenn Text , dann muss das Filterkriterium (-string)   so lauten:


strFilter = "[Monat] = '" & Me!cboMonat & "'"


Warum steht aber im Feld "Monat"  eine Tageszahl plus ein Monatsname drin?

Solche Konstruktionen führen in den meisten Fällen in irgendwelche chaotischen/fehlerträchtigen/undefinierte Situationen.
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 15:59:07
Ich habe eine importierte Exceldatei mit Datum und verschiedenen Bestellungen.
Diese Bestellungen sollen nach Monat chronologisch in der combobox aufgelistet werden.
Januar; Februar; März;...
Das hat nicht funktioniert, deshalb hab ich vor den Monat 01; 02;03;... gesetzt.
Somit funktioniert die Sortierung in der combobox.
Das hat zur Folge, dass es kein Datum sondern ein Text in der importierten exceltabelle  ist.

Ich komme irgendwie überhaupt nicht weiter und ich weiß nicht wie ich das hinbekommen soll.

Ziel ist es die Bestellungen nach Datum von der combobox im Unterformular anzeigen zu lassen.
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: MzKlMu am Februar 04, 2018, 17:32:51
Hallo,
wenn Du ein Datumsfeld in der Tabelle hast, ist ein extra Feld für den Monat überflüssig. Der Monat lässt aus dem Datum ableiten. Und wenn Du mit SELECT DISTINCT dann den Monat aus dem Datum ableitest, ist auch die Zahl vor dem Monat nicht notwendig, denn die Sortierung nach dem Datum sortiert auch den Monat richtig.
Ein anderes Problem ist da eher auch das Jahr, denn den Februar gibt es 2017 und die Wahrscheinlichkeit dass es den auch 2019 gibt ist relativ hoch.
Du musst daher auch noch das Jahr in den Filter einfließen lassen.

Weiterhin ermittelt man den Monat immer als Zahl, den Monatsnamen dazu gewint man über die Funktion:
MonatName: Monatsname(Monatszahl)
Ein optionaler Parameter in der Funktion steuert auch ob 3 Buchstaben (Feb) oder voller Name (Februar).

Es ergeben sich also folgende Fragen:
- Wie liegt das Datum in der imortierten Tabelle vor, ist es ein vollständiges Datum oder nur der Monat ?
- Wie ist es mit dem Jahr, denn die Monate wiederholen sich ja. ?

Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 17:41:26
Lieber Klaus,

wie leite ich denn aus dem Datum den Monat ab. Muss ich das in der Abfrage tun?

Das hab ich gestern schon den ganzen Tag versucht, bin aber leider nur auf die Notlösung mit ZahlundMonat gekommen.

Bin wirklich grad am verzweifeln.
Liebe Grüße
Lisa
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: MzKlMu am Februar 04, 2018, 17:42:52
Hallo,
beantworte mal meine obigen Fragen.
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 17:46:06
in der importierten Tabelle liegt das Datum z.B. 01.01.2017 vor

Versteh nicht ganz wo ich den Code einfügen soll. Ich bin wirklich eine Niete in dem ganzen. Sorry.
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: MzKlMu am Februar 04, 2018, 18:21:50
Hallo,
sorry, aber ich hatte 2 Fragen, die Frage wie Du das mit dem Jahr handhaben willst ist nicht beantwortet.
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 18:27:03
Hallo Klaus,
die Jahre können auch angezeigt werden.
Ist aber eigentlich erstmal egal.
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: MzKlMu am Februar 04, 2018, 18:43:30
Hallo,
ZitatIst aber eigentlich erstmal egal.
nein, es ist nicht egal.
Wenn in der Tabelle 2017 und 2018 enthalten ist, erhältst Du ja den Februar von 2017 und 2018 willst Du das wirklich haben ?
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 18:45:52
So sieht meine importierte Tabelle aus natürlcih kurz gefasst. Sind nur Daten aus dem Jahr 2017 drin.
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: MzKlMu am Februar 04, 2018, 19:21:42
Hallo,
Beispiel im Anhang.
Den Monat habe ich in der Tabelle gelöscht.
Das Kombi zeigt auch noch <Alle> an, damit man den Filter auch wieder löschen kann. Die Abfrage des Kombis musst Du in der SQL Sicht ansehen. Da siehst Du auch wie das gemacht ist mit dem Monat auslesen.
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: DF6GL am Februar 04, 2018, 19:28:37
Hallo,


PS:  Habe den Monatsnamen vergessen, Klaus hat ihn aber in seinem Beispiel... Trotzdem unten geändert..  8)

wenn Du diese xls-Datei nach Access in eine Tabelle importiert hast, keine Änderungen (Umstrukturierungen) erfolgt sind und du willst nach einem Monat filtern , den Du in einem (ungebundenen) Kombifeld auswählen kannst, dann etwa so (nicht empfohlen):

Kombifeld:
Datensatzherkunft:   select distinct [Monat] from tbl_XlsDatei order by Month([created_at])
Spaltenanzahl: 1
gebundene Spalte : 1
Spaltenbreiten: 2,5cm

und bei "AfterUpdate" des Kombis:


Private Sub cboMonat_AfterUpdate()
         Me.Filter = "[Monat] = '" & Me!cboMonat & "'"
         Me.FilterOn = True
End Sub



Wenn das weniger fehlerträchtig gehen soll, muss das Jahr mit involviert werden (empfohen):

Datensatzherkunft:   select distinct Month([created_at]), MonthName([created_at]), Year([created_at]) from tbl_XlsDatei order by Year([created_at]), Month([created_at])
Spaltenanzahl: 3
gebundene Spalte : 1
Spaltenbreiten: 0cm; 2,5cm;2,5 cm

Private Sub cboMonat_AfterUpdate()
         Me.Filter = "Month([created_at])= " & Me!cboMonat.Column(0) & " and Year([created_at])= " & Me!cboMonat.Column(2)
         Me.FilterOn = True
End Sub


Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 19:38:26
Hallo Klaus,

das sieht echt top aus. Ich muss jedoch die einzelnen Bestellungen addieren, damit ich sehe was in dem Monat wie oft verkauft worden ist.
Ich wollte das mit einem Unterformular lösen. Und die Werte dann zusammen addieren.
Kannst du mir da auch irgendwie weiterhelfen?

Ich bin echt dankbar für deine Hilfe.
Liebe Grüße
Lisa
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: MzKlMu am Februar 04, 2018, 19:40:51
Hallo,
welche Spalte soll denn da addiert werden ?
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 19:48:17
Hallo Klaus
Die qty_shipped Spalte soll nach dem Monat addierte werden
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 19:49:25
Hallo Franz,

hab es so auch ausprobiert leider, kommt dann ein Prozedurfehler. Weißt du warum? und wie ich es beheben kann?

Liebe Grüße
Lisa
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: MzKlMu am Februar 04, 2018, 19:53:22
Hallo,
da braucht es kein Unterformular. Im Formularkopf ein Feld für die Summe einfügen, fertig.
Geänderte DB anbei.

ZitatWeißt du warum? und wie ich es beheben kann?
sorry, Lisa, aber glaubst Du wirklich man könnte darauf eine vernünftige Antwort geben ?
Das mindeste wäre mal den Code zu zeigen den man wirklich verwendet und dann auch noch zu beschreiben welcher Fehler wann kommt.
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 20:11:26
Hallo Klaus,

das sieht echt super aus! Danke!
Zur besseren Übersicht wäre ein Liste natürlcih besser. Weißt du wie ich das dann mit dem addieren mache?

Liebe Grüße
Lisa
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 20:33:09
Hallo Klaus,

natürlich ist das schon eine Liste. Ich weiß, aber nicht wie du das gemacht hast.
Liebe Grüße
Lisa
Titel: Re: Werte aus der Combobox in Unterformular übertragen
Beitrag von: lissi1991 am Februar 04, 2018, 21:05:49
Herzlichen Dank! Danke Klaus! Danke Franz!
Ich bin unglaublich happy, dass ihr mir so toll weitergeholfen habt.

Mit der Ansicht hab ich glücklicherweise selbst noch rausbekommen.
Habe habe im Endlosformular alle Felder nebeneinander in dem Detailsbereich gelegt. So erscheint es dann als Tabelle. Wusste ich vorher nicht.  ::)
Es sieht jetzt so aus, wie ich es mir gewünscht habe.