collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 56
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13994
  • stats Beiträge insgesamt: 66727
  • stats Themen insgesamt: 8995
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: einem Filter ein zusätzliches Argument hinzufügen  (Gelesen 1434 mal)

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
einem Filter ein zusätzliches Argument hinzufügen
« am: Januar 25, 2018, 13:53:29 »
Ich habe mal eine Frage zum Filtern.

(1) In der db funktioniert alles. Es geht um eine Verbesserung eines Formulars.
(2) HF mit UFOendlos
(3) Im HF habe ich ein Listenfeld, das die Datensätze im UFO wie folgt filtert:

     With Me!frmTeilnehmerzuordnungUFO2.Form
         .Filter = "massnahmeDurchgang = " & Me!Kombinationsfeld82 & ""
         .FilterOn = True
     End With

Jetzt sollen
(a) zusätzlich zu den gefilterten DS im UFO alle DS angezeigt werden, die im Feld [massnahmeDurchgang] den Zahlenwert 58 haben. Also Filter beibehalten und zusätzlich alle mit rein nehmen wo massnahmeDurchgang=58

(b) diese DS mit massnahmeDurchgang=58 immer am Ende, d.h. nach dem letzten gefilterten DS, der nicht 58 hat

Geht sowas?

Carl


 

Offline Joss

  • Access-User
  • *
  • Beiträge: 80
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #1 am: Januar 25, 2018, 14:08:16 »
Hallo Carl,

zu a:
.Filter = "massnahmeDurchgang = " & Me!Kombinationsfeld82 & _
           " Or massnahmeDurchgang = 58"

zu b:
Da wirst du ein zusätzliches Ja/Nein-Feld einfügen müssen, über das du die Sortierung ändern kannst.

Gruß
Josef
Meine Suchmaschine: www.fireball.de | Access-Wiki: www.dbwiki.de
 
Folgende Mitglieder bedankten sich: Carl

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1254
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #2 am: Januar 25, 2018, 14:12:20 »
Wer sich SQL-Grundkenntnisse erworben hat, würde solch banale Fragen kaum stellen. Du bist ist doch nicht mehr ganz neu in der Materie - oder?
Private Sub Kombinationsfeld82_AfterUpdate()
   With Me!frmTeilnehmerzuordnungUFO2.Form
      .Filter = "massnahmeDurchgang = " & Me.Kombinationsfeld82 & " OR " & _
                "massnahmeDurchgang = 58"
      .FilterOn = True
      .OrderBy = "massnahmeDurchgang = 58 DESC"
      .OrderByOn = True
   End With
End Sub
« Letzte Änderung: Januar 25, 2018, 14:46:40 von Lachtaube »
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #3 am: Januar 25, 2018, 15:27:23 »
Ja, aber es ist nicht einfach.

er meckert an:

.OrderBy = "massnahmeDurchgang = 58 DESC"

auch .OrderBy = "massnahmeDurchgang = " 58 DESC

geht nicht. Access fragt nach dem Parameterwert für "massnahmeDurchgang = 58".

Wie muss es richtig heißen? Danke für Deine Geduld.

Carl
« Letzte Änderung: Januar 25, 2018, 15:42:53 von Carl »
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #4 am: Januar 25, 2018, 15:39:09 »
Hallo Carl,

zu b:
Da wirst du ein zusätzliches Ja/Nein-Feld einfügen müssen, über das du die Sortierung ändern kannst.

Hallo Josef,

kannst Du mir mal den Code zeigen, wenn ich ein extra Feld [janein58] hätte? Ich glaube nämlich, so ein Feld wäre auch für andere Zwecke nützlich. Vielleicht sollte ich es in der Abfrage berechnen lassen?

Carl
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1254
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #5 am: Januar 25, 2018, 15:51:47 »
Versuche es mit .OrderBy = "[massnahmeDurchgang] = 58 DESC"
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: Carl

Offline Joss

  • Access-User
  • *
  • Beiträge: 80
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #6 am: Januar 25, 2018, 16:01:29 »
.OrderBy = "massnahmeDurchgang DESC"

Ob das den gewünschten Erfolg bringt?

Gruß
Josef
Meine Suchmaschine: www.fireball.de | Access-Wiki: www.dbwiki.de
 
Folgende Mitglieder bedankten sich: Carl

Offline Joss

  • Access-User
  • *
  • Beiträge: 80
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #7 am: Januar 25, 2018, 16:18:36 »
Hallo Carl,

Zitat
massnahmeDurchgang=58 immer am Ende

• füge ein Ja/Nein-Feld (vielleicht mit dem Namen "Sortierfeld"?) in die Tabelle ein, die dem UF zugrunde liegt.
• Dann setzt du im Datensatz 58 einen Haken,
• ziehst das Sortierfeld mit in die Abfrage,
• und sortierst es absteigend.
Dadurch steht es immer am Ende der Liste.

Außer ich habe dich falsch verstanden?

Gruß
Josef
Meine Suchmaschine: www.fireball.de | Access-Wiki: www.dbwiki.de
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #8 am: Januar 25, 2018, 19:58:05 »
Doch, genau richtig verstanden. Ich habe jetzt den Code von Lachtaube flott gekriegt. Dadurch erscheinen zuerst die DS mit dem gewählten Maßnahmedurchgang und darunter die mit dem immer gleichen Maßnahmedurchgang Nr. 58.

   With Me!frmTeilnehmerzuordnungUFO2.Form
      .Filter = "massnahmeDurchgang = " & Me.Kombinationsfeld82 & " OR " & _
                "massnahmeDurchgang = 58"
            .FilterOn = True
      .OrderBy = "[massnahmeDurchgang] = 58 DESC"
      .OrderByOn = True
   End With

Und jetzt werden aber die Einträge mit dem gewählten Maßnahmedurchgang nicht mehr alphabetisch angezeigt.

Muss man dazu wohl doch die Variante mit dem zweiten Sortierfeld und der Abfrage wählen?

Carl
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1254
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #9 am: Januar 26, 2018, 06:49:49 »
Weitere Sortierangaben kannst Du anhängen (Ausdruck gehört in eine Zeile):
.OrderBy = "[massnahmeDurchgang] = 58 DESC, FeldnameNachDemAlphabetischSortiertWerdenSoll"
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #10 am: Januar 26, 2018, 09:11:16 »
Ah vielen Dank!

Ich habe jetzt versucht, das Ganze auf eine Öffnungsprozedur anzuwenden, die auch die DMax-Funktion enthält. Leider funktioniert der String von unten da nicht mehr:

Private Sub Form_Load()
   With Me.frmTeilnehmerzuordnungUFO2.Form
      .Filter = "massnahmeDurchgang = " & DMax("ID", "abfmassnahmedurchgaenge") OR " & _
                "[massnahmeDurchgang] = 58 DESC"
      .FilterOn = True
   End With
End Sub

Ziel ist, dass im UFO zuerst die DS mit der maximal höchsten ID in [massnahmeDurchgang] angezeigt werden und danach die mit der 58.

Was bedeutet denn das Zeichen & mit dem Unterstrich? "& _"?

Und spielen die Zeilenumbrüche eine Rolle oder ist das nur eine optische Unterscheidung für Menschen?

Carl
« Letzte Änderung: Januar 26, 2018, 09:25:33 von Carl »
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1254
Grüße von der (⌒▽⌒)
 

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 346
    • Tipps zu Access, VBA, SQL und Co.
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #12 am: Januar 26, 2018, 11:38:54 »
Was bedeutet denn das Zeichen & mit dem Unterstrich? "& _"?

Und spielen die Zeilenumbrüche eine Rolle oder ist das nur eine optische Unterscheidung für Menschen?
Ich glaube mein VBA-SQL-String-Tutorial wäre eine gute Lektüre für dich.
Neues Access 2019 Feature angekündigt: Modern Charts
 

Offline Joss

  • Access-User
  • *
  • Beiträge: 80
Re: einem Filter ein zusätzliches Argument hinzufügen
« Antwort #13 am: Januar 26, 2018, 12:28:01 »
Hallo Carl,

Zitat
Ich habe jetzt versucht, das Ganze auf eine Öffnungsprozedur anzuwenden, die auch die DMax-Funktion enthält. Leider funktioniert der String von unten da nicht mehr:
... "[massnahmeDurchgang] = 58 DESC"
DESC gehört nicht in den Filter.
... "[massnahmeDurchgang] = 58"
Gruß
Josef
Meine Suchmaschine: www.fireball.de | Access-Wiki: www.dbwiki.de
 
Folgende Mitglieder bedankten sich: PhilS, Carl