collapse

* Benutzer Info

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

* Wer ist Online

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

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14260
  • stats Beiträge insgesamt: 69842
  • stats Themen insgesamt: 9396
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Formate werden in Abfrage durch "wenn - dann" umgewandelt  (Gelesen 1738 mal)

Offline jagger

  • Access-Profi
  • **
  • Beiträge: 106
Formate werden in Abfrage durch "wenn - dann" umgewandelt
« am: Januar 06, 2019, 16:56:51 »
Guten Abend und allen noch ein frohes neues Jahr,

ich möchte ein Listemfeld wahlweise noch Ort, Datum oder Umsatz sortieren.
Das Listenfeld hat eine Abfrage als Datenquelle.
Wenn ich nun in der Abfrage in einer "Spalte" in der Zeile "Feld"
DatSort: Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="2";[tDate];"0")oder
UmSort: Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="3";[Umsatz];"0")eingebe, werden die Felder in der Datenblattansicht im Textformat ausgegeben.
Leider kann man dann nicht mehr sinvoll sortieren lassen.

[tDate] ist im Datumsformat
[Umsatz] ist eine Zahl (Double)

Wie kann man das Problem lösen?
Ich habe schon mit "Wert()", "Val()", "ZDouble()" usw. rumexperimentiert. Leider ohne Erfolg.

Mit Dank im Voraus

LG
jagger




 
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7734
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #1 am: Januar 06, 2019, 17:25:30 »
Hallo,
sortiere die Ursprungsfelder.
Gruß
Klaus
 

Offline Josef P.

  • Access-Profi
  • **
  • Beiträge: 274
    • Code-Bibliothek für Access-Entwickler
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #2 am: Januar 06, 2019, 17:44:39 »
Hallo!

Zitat
Ich habe schon mit "Wert()", "Val()", "ZDouble()" usw. rumexperimentiert. Leider ohne Erfolg.
Wie sahen diese Experimente aus?

Zum Problem:
Welchen Datentyp hat deiner Meinung nach der Ausdruck "0" in Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="2";[tDate];"0")
mfg
Josef

Offline jagger

  • Access-Profi
  • **
  • Beiträge: 106
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #3 am: Januar 06, 2019, 17:58:43 »
@
Hallo!

Zitat
Ich habe schon mit "Wert()", "Val()", "ZDouble()" usw. rumexperimentiert. Leider ohne Erfolg.
Wie sahen diese Experimente aus?


es wurde weiterhin als Textfeld ausgegeben oder es kam die
Fehlermeldung, dass der Ausdruck oder die Berechnung zu komplex sind.

Zitat von: Josef P.
Zum Problem:
Welchen Datentyp hat deiner Meinung nach der Ausdruck "0" in
[code
Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="2";[tDate];"0")[/code]

mfg
Josef

auch bei
DatSort: Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="2";[tDate];"")
auch bei wird es in ein Textfeld umgewandelt.
Das Gleiche passiert ja auch mit dem [Umsatz] und würde ich denken, dass "0" eine Datentyp "Zahl" bleiben könnte.

@MzKlMu,

wenn ich das mache, kann man die Sortierung des Listenfeldes nicht per "Knopfdruck" ändern.
Des wegen versuchen ich die Sortirung mit den "Zweifeldern" zu realisieren.
Oder kann man die Sortierung eine bestehenden Abfrage mit VBA beeinflussen?
Auch will ich dem Listenfeld auch keine andere (anders sortiert) Abfrage zuweisen.

Aber erst einmal Danke für die Anregungen.

LG
jagger

 

Offline Josef P.

  • Access-Profi
  • **
  • Beiträge: 274
    • Code-Bibliothek für Access-Entwickler
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #4 am: Januar 06, 2019, 18:12:12 »
Zitat
würde ich denken, dass "0" eine Datentyp "Zahl" bleiben könnte.
"0" ist ein Text, da man Text in Jet/ACE-SQL mit " oder ' kennzeichnet.

Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="2";[tDate];"0")vs.
Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="2";[tDate];0)
Auch zum Probieren:
Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="2";[tDate];Null)
mfg
Josef

Offline jagger

  • Access-Profi
  • **
  • Beiträge: 106
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #5 am: Januar 06, 2019, 18:23:51 »
@Josef,

Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="2";[tDate];0)und Wenn([Formulare]![mnu_Kunden]![Filter_DOU]="3";[Umsatz];0)
ist die Lösung. Super! Danke!
Was doch so ein paar Gänsefüsschen ausmachen.  ::)

Jetzt funktioniert das prima

LG und noch einen schönen Abend
jagger
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7734
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #6 am: Januar 06, 2019, 18:36:21 »
Hallo,
man kann auch die Datenherkunft eines Listenfeldes per Knopfdruck umsortieren.
Gruß
Klaus
 

Offline jagger

  • Access-Profi
  • **
  • Beiträge: 106
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #7 am: Januar 06, 2019, 18:43:46 »
@MzKlMu,

Zitat
Auch will ich dem Listenfeld auch keine andere (anders sortiert) Abfrage zuweisen.

Danke für den Tipp, aber das wollte ich eben nicht.
Ich finde diese Lösung besser, da es nur eine Abfrage (Datenquelle) gibt. Wenn mal was verändert werden soll,
muss man nur eine Datenqwelle anpassen.

LG
jagger
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7734
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #8 am: Januar 06, 2019, 19:08:45 »
Hallo,
von einer Abfrage habe ich auch gar nichts gesagt. Die eigentliche Datenquelle bleibt unangetastet. Das wird nur temporär geändert.
Me.ListenFeldname.RowSource = "Select Feldname1, Feldname2 From Tabellename Order By tDate Desc"sortiert das Listenfeld nach tDate absteigend.
Du hast dann immer noch nur eine Abfrage die beim 1. Anzeigen des Listenfeldes greift.
Mit einem Button kannst Du eine umsortierte Datenherkunft zuweisen.
Die Zuweisung von RowSource führt auch ein Requery aus, sodass das Ergebnis sofort zu sehen ist.

Wenn Du dann Deine Sortierwünsche in eine Optiongruppe packst, kannst Du blitzschnell ohne jeweils extra Buttons die 6 Sortierungen (3 Felder Aufsteigend/Absteigend) einstellen.
Auch ein Kombifeld wäre möglich mit 3/6 Auswahlmöglichkeiten. Platzsparenderer und einfacher als die Buttons. Und die Codepflege für Änderungen ist auch einfacher.
« Letzte Änderung: Januar 06, 2019, 19:19:44 von MzKlMu »
Gruß
Klaus
 

Offline jagger

  • Access-Profi
  • **
  • Beiträge: 106
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #9 am: Januar 06, 2019, 19:21:11 »
Hallo MzKlMu,

das geht natürlich auch, aber die Abfrage zu dem Listenfeld ist etwas umfangreicher.
SELECT tab_ex_Kunden.AGKDNR, tab_ex_Kunden.LFKDNR, Nz([Ort]) AS City, Nz([Strasse]) AS Street, tab_ex_Kunden.Suchname, tab_ex_Kunden.Einkäufer, IIf([Formulare]![mnu_Kunden]![sfKdNr]<>"*",[qry_lbx_IN_mnu_Kunden_StKoll]![Kollkürzel],[qry_lbx_IN_mnu_Kunden_Termine]![Kollkürzel]) AS Ausdr1, qry_lbx_IN_mnu_Kunden_Termine.tProgramm, qry_lbx_IN_mnu_Kunden_Termine.tCaption AS Termingrund, qry_lbx_IN_mnu_Kunden_Termine.tNotiz AS Bemerkung, Format$([tDate],"dd/mm/yy") AS Datum, qry_lbx_IN_mnu_Kunden_Termine.tUm, qry_lbx_IN_mnu_Kunden_Termine.tTimeOn, qry_lbx_IN_mnu_Kunden_Termine.tLocation, qry_lbx_IN_mnu_Kunden_Umsatz_04.Umsatz, IIf([Formulare]![mnu_Kunden]![Filter_DOU]="2",[tDate],0) AS DatSort, IIf([Formulare]![mnu_Kunden]![Filter_DOU]="3",[Umsatz],0) AS UmSort, Nz([ACC]) AS AccS, tab_ex_Kunden.Haka
FROM ((tab_ex_Kunden LEFT JOIN qry_lbx_IN_mnu_Kunden_StKoll ON tab_ex_Kunden.AGKDNR = qry_lbx_IN_mnu_Kunden_StKoll.AGKDNR) LEFT JOIN qry_lbx_IN_mnu_Kunden_Termine ON tab_ex_Kunden.AGKDNR = qry_lbx_IN_mnu_Kunden_Termine.tAGKDNR) LEFT JOIN qry_lbx_IN_mnu_Kunden_Umsatz_04 ON tab_ex_Kunden.AGKDNR = qry_lbx_IN_mnu_Kunden_Umsatz_04.AGKDNR
WHERE (((Nz([tDate])) Between [Formulare]![mnu_Kunden]![Dvon] And [Formulare]![mnu_Kunden]![Dbis]) AND ((Nz([kdnr])) Like [Formulare]![mnu_Kunden]![sfKdNr])) OR ((([Formulare]![mnu_Kunden]![Dvon]) Is Null))
GROUP BY tab_ex_Kunden.AGKDNR, tab_ex_Kunden.LFKDNR, Nz([Ort]), Nz([Strasse]), tab_ex_Kunden.Suchname, tab_ex_Kunden.Einkäufer, IIf([Formulare]![mnu_Kunden]![sfKdNr]<>"*",[qry_lbx_IN_mnu_Kunden_StKoll]![Kollkürzel],[qry_lbx_IN_mnu_Kunden_Termine]![Kollkürzel]), qry_lbx_IN_mnu_Kunden_Termine.tProgramm, qry_lbx_IN_mnu_Kunden_Termine.tCaption, qry_lbx_IN_mnu_Kunden_Termine.tNotiz, Format$([tDate],"dd/mm/yy"), qry_lbx_IN_mnu_Kunden_Termine.tUm, qry_lbx_IN_mnu_Kunden_Termine.tTimeOn, qry_lbx_IN_mnu_Kunden_Termine.tLocation, qry_lbx_IN_mnu_Kunden_Umsatz_04.Umsatz, IIf([Formulare]![mnu_Kunden]![Filter_DOU]="2",[tDate],0), IIf([Formulare]![mnu_Kunden]![Filter_DOU]="3",[Umsatz],0), Nz([ACC]), tab_ex_Kunden.Haka, tab_ex_Kunden.Datentyp, tab_ex_Kunden.Aktiv, tab_ex_Kunden.Kundenstatus, Nz([Plz]), tab_ex_Kunden.Bundesland, tab_ex_Kunden.Land, Nz([Suchname]) & Nz([Strasse]) & Nz([Ort]) & Nz([Name]) & Nz([Inhaber]) & Nz([Einkäufer]) & Nz([Vorname]), tab_ex_Kunden.Ort, tab_ex_Kunden.Suchname
HAVING (((tab_ex_Kunden.AGKDNR) Like [Formulare]![mnu_Kunden]![sfAGKDNR]) AND ((Nz([Ort])) Like [Formulare]![mnu_Kunden]![sfOrt]) AND ((Nz([Strasse])) Like [Formulare]![mnu_Kunden]![sfStrasse]) AND ((IIf([Formulare]![mnu_Kunden]![Filter_DOU]="2",[tDate],0))>=0) AND ((Nz([ACC])) Like IIf([Formulare]![mnu_Kunden]![ACC]="ü","ü","*")) AND ((tab_ex_Kunden.Datentyp) Like [Formulare]![mnu_Kunden]![afDatentyp]) AND ((tab_ex_Kunden.Aktiv) Like [Formulare]![mnu_Kunden]![afAktiv]) AND ((tab_ex_Kunden.Kundenstatus) Like [Formulare]![mnu_Kunden]![afKundenstatus]) AND ((Nz([Plz])) Like [Formulare]![mnu_Kunden]![sfPLZ]) AND ((tab_ex_Kunden.Bundesland) Like [Formulare]![mnu_Kunden]![sfBundesland]) AND ((tab_ex_Kunden.Land) Like [Formulare]![mnu_Kunden]![sfLand]) AND ((Nz([Suchname]) & Nz([Strasse]) & Nz([Ort]) & Nz([Name]) & Nz([Inhaber]) & Nz([Einkäufer]) & Nz([Vorname])) Like [Formulare]![mnu_Kunden]![sfVolltextsuche]))
ORDER BY IIf([Formulare]![mnu_Kunden]![Filter_DOU]="2",[tDate],0) DESC , IIf([Formulare]![mnu_Kunden]![Filter_DOU]="3",[Umsatz],0) DESC , tab_ex_Kunden.Ort, tab_ex_Kunden.Suchname;

Da kam mir meine Version einfacher vor. Kann aber sein, dass ich das falsch sehe.

LG
jagger

 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7734
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #10 am: Januar 06, 2019, 19:34:25 »
Hallo,
die Abfrage ist in der Tat umfangreich. Dann würde ich auch vorschlagen es so zu lassen. Allerdings, glaube ich bietet diese Abfrage noch allerhand Vereinfachungspotintial.
Wenn ich recht gezählt habe, gruppierst Du ja über alle Spalten, was ja keinen Sinn macht. Und LIKE ohne Joker (*) macht auch keinen Sinn.
Und wenn die Tabellen eindeutige Feldnamen haben (was anzustreben ist), kann auf die Tabellenamen vor den Feldnamen verzichtet werden (außer bei JOINS).
Warum verwendest Du statt des Listenfeldes nicht einfach ein Endlosformular?
Scheint mir ohnehin besser zu sein. Da wird das Umsortieren zu einem einfachen Einzeiler.
« Letzte Änderung: Januar 06, 2019, 19:46:26 von MzKlMu »
Gruß
Klaus
 

Offline jagger

  • Access-Profi
  • **
  • Beiträge: 106
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #11 am: Januar 06, 2019, 20:00:10 »
Hallo MzKlMu,

Du hast recht, die Optimierung muss ich noch angehen.
Was muss ich auswählen, um die Gruppierung nicht über alle Spalten zu machen? Ausdruck?
Mit "Und LIKE ohne Joker (*) " muss ich mich auch noch beschäftigen. Das ist noch Neuland für mich.
Habe bisher immer nur den Ausdrucksgenerator genutzt.

Das Listenfeld benutze ich, weil in dem Formular in einigen Situaionen an der gleichen Position ein optisch identisches Listenfeld mit der Möglichkeit der Mehrfachauswahl (MultiSelect simple) eingeblendet wird.

Danke und LG
jagger
 

Offline jagger

  • Access-Profi
  • **
  • Beiträge: 106
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #12 am: Januar 07, 2019, 18:56:22 »
Hallo MzKlMu,

noch einmal zu dem "LIKE ohne Joker (*)".
Das *bla* kommt bei mir vom Textfeld von dem Formular.
Das meinst Du doch, oder?

Wie kann ich die Sache mit den Gruppierungen über alle Spalten umgehen?

Wenn man das Ʃ Symbol anklickt, wird ja bei Funktion automatisch "Gruppierung" eingetragen.

LG
jagger

 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7734
Re: Formate werden in Abfrage durch "wenn - dann" umgewandelt
« Antwort #13 am: Januar 07, 2019, 19:07:34 »
Hallo,
dann musst Du das Like lassen.

Lasse doch die Gruppierungzeile weg, wenn nur Gruppierung eingestellt ist (in allen Spalten) wird doch nicht aggregiert.
Oder hast Du doch eine Aggregierung drin?
Gruß
Klaus
 

 

Neue MS Office Formate in ältere Office Versionen nutzen

Begonnen von Jürgen82Board Microsoft Word

Antworten: 1
Aufrufe: 3701
Letzter Beitrag August 31, 2010, 19:07:57
von database
Berechnung von Tagen (aber 2 Formate)

Begonnen von Dennis85Board Formular

Antworten: 23
Aufrufe: 9791
Letzter Beitrag Dezember 10, 2010, 12:55:13
von Dennis85