Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Unionabfrage zur Erweiterung der Auswahl eines Kombinationsfeldes ???

Begonnen von joker538, Juli 05, 2010, 15:16:04

⏪ vorheriges - nächstes ⏩

joker538

Seid gegrüsst,
Ein Kombifeld, dass Daten aus einer Abfrage zum Filtern bereitstellt, soll um einen weiteren Eintrag (z.B. "alles Anzeigen") erweitert werden. Versuche mit Union- Abfrage sind gescheitert. Die Syntax aus der Hilfe bzw. dem Handbucg, waren leider nicht hilfreich. Vielleicht könnt Ihr mir weiterhelfen.

Das ist die Abfrage, mit der ich mir die Monate zum Filtern hole....

SELECT Format([Minvondatumunduhrzeit],"mmm yyyy") AS Monat
FROM Auswertung_berechnung_std
GROUP BY Format([Minvondatumunduhrzeit],"mmm yyyy")
ORDER BY First(Auswertung_berechnung_std.Minvondatumunduhrzeit);

ich möchte jetzt gern einen weiteren Eintrag generieren, der über eine Iff Klausel im Modul den Filter zurücksetzt.
vielen Dank für Eure Mühe

database

Hallo,
um die Kombiliste mit deinen Werten zu füllen und an der ersten Stelle '--Alles anzeigen--' anzuzeigen KANNST du untenstehende Prozedur verwenden.
Eventuelle Namensunterschiede bitte anpassen.


Private Sub fuellen()

   Dim db As DAO.Database
   Dim rst As DAO.Recordset
   Dim strListe As String
   Dim strSQL As String
   
   Set db = CurrentDb
   
   strSQL = "SELECT Format([Minvondatumunduhrzeit],'mmm yyyy') AS Monat " & _
            "FROM Auswertung_berechnung_std " & _
            "GROUP BY Format([Minvondatumunduhrzeit],'mmm yyyy') " & _
            "ORDER BY First(Auswertung_berechnung_std.Minvondatumunduhrzeit);"
   
   Set rst = db.OpenRecordset(strSQL)
   
   rst.MoveFirst
   'Ersten Eintrag erstellen
   strListe = "--Alles anzeigen--" & ";"
   'Liste füllen
   Do While Not rst.EOF
       strListe = strListe & rst!Monat & ";"
       rst.MoveNext
   Loop
   'Liste dem Kombi zuweisen
   With Me!DeinKombifeld
       .ColumnCount = "1"
       .ColumnWidths = "3cm"
       .RowSourceType = "Value List"
       .RowSource = strListe
   End With

   Set rst = Nothing
   Set db = Nothing
End Sub


Grüße
Peter

oma

Hallo,

man kann auch einfach in der Datensatzherkunft des Kombifeldes mit UNION eine Zeile zufügen!:

SELECT Format([Minvondatumunduhrzeit],"mmm yyyy") AS Monat, First(Auswertung_berechnung_std.Minvondatumunduhrzeit) AS ErsterWertvonMinvondatumunduhrzeit
FROM Auswertung_berechnung_std
GROUP BY Format([Minvondatumunduhrzeit],"mmm yyyy")
ORDER BY First(Auswertung_berechnung_std.Minvondatumunduhrzeit)
UNION  select "alles", 0 from Auswertung_berechnung_std


Gruß Oma


nichts ist fertig!

database

Hallo zusammen,

Zitatman kann auch einfach in der Datensatzherkunft des Kombifeldes mit UNION eine Zeile zufügen!:

ist ja mit auch ein Grund, warum ich in meiner Antwort KANN groß schreibe. ;D
Stellt nur eine Variante dar die verwendbar ist.

oma

Hallo,

jo, gibt eben oft verschiedene Möglichkeiten, wollen mal hoffen das der Joker eine nutzen kann ;D

Gruß Oma
nichts ist fertig!

joker538

Super,
vielen Dank für Eure Tipps. Bin gerade dabei mir die Prozedur anzuschauen und zu verstehen. Da ist einiges Neues, für mich, dabei. Sehr interessant. Verwenden werde ich die Variante mit der Union- Abfrage. Das wollte ich ja auch ürsprünglich so machen. Schön, das ich jetzt eine verständliche Syntax habe.
Danke noch mal für Eure Mühe
Andreas