Neuigkeiten:

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

Mobiles Hauptmenü

Datensätze über kombinierte Kriterien in mehreren Spalten filtern

Begonnen von Churian, Mai 26, 2015, 13:14:13

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

eher so beim ISO-Format:

CDateSQL = Format(CDate(vardatum), "\#yyyy-mm-dd\#")
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Churian


MaggieMay

#47
Wo soll er schon hin, in die von dir gezeigte Funktion vermutlich.

Fragt sich eher, wie er bzw. die Funktion zum Einsatz kommt.

Nachtrag:
Diesen Satz hast du wohl überlesen, oder?
ZitatEin Musterbericht sollte dabei schon vorhanden sein.
Das Layout des Berichts, also welche Daten in welcher Art dargestellt werden sollen und was woraus zu berechnen ist, sollte schon bekannt sein, wenn wir eine Lösung finden sollen.
Freundliche Grüße
MaggieMay

MzKlMu

Hallo,
ZitatAnschließend im Bericht wird dann für einen Einsatz der meinetwegen 40 Euro gekostet hat, aber 4 Ausfälle hat 160€ verbucht dar ich ja diese Mehrfachnennung habe.
nein, ganz sicher nicht. Einen Bericht würde man gruppieren und dann rechnet er richtig. Den Bericht über den Einsatz gruppiert zeigt dann für jeden Einsatz die korrekte Summierung. Dann kann man den Bericht auch noch für einen Einsatz filtern.
Du solltest Dich mal mit den Funktionalitäten eines Berichts beschäftigen.

Leider ist in Deinem Beispiel keinen Bericht zu finden. Erstelle mal einen sochen egal wie falsch er ist, damit man eine Vorstellung hat wie dieser aussehen könnte. Und/oder beschreibe bitte mal wie das Formular zu filtern ist und was Du auf dem Bericht sehen willst.
Gruß Klaus

Churian

Hallo,

hier nochmal die Datenbank mit Bericht.
Wegen dem Code: Ich möchte in einem Textfeld ein Datum eingeben und die Ergebnise in meinem Suchfrom werden dann ausgefiltert. Ich bekomme aber nur die Fehlermeldung.
In meinem Beispiel ist die Suchmaske ja drin.
Bei dem Bericht dachte ich ich könnte über die Suchfunktion den Bericht steuern und weil die Ja alles mehrfach anzeigt tut das auch der Bericht.

Euch noch einen Schönen Feiertag

Churian

MzKlMu

Hallo,
und was ist an dem Bericht jetzt falsch ?
Der Techniker "Gammel" hat 2 Datensätze zu je 10.-€, zusammen 20.-€. das ist doch richtig. Du kannst für die Ausfälle noch eine weitere Gruppierungsebene hinzufügen.
Gruß Klaus

MaggieMay

#51
Hi,

wenn die "Gesamtkosten" tatsächlich bereits die Gesamtkosten sind, so sollten sie nicht im Detailbereich aufgeführt und auch nicht summiert werden, sondern lediglich im Gruppenfuß auftauchen.

Was das betrifft:
ZitatIch möchte in einem Textfeld ein Datum eingeben und die Ergebnise in meinem Suchfrom werden dann ausgefiltert.
Du musst die Datentypen beachten. Nur Texte werden in Hochkommata gesetzt, bei Zahlen werden sie weggelassen. Und ein Datum wird halt speziell formatiert, so wie es bereits erwähnt wurde. Dazu brauchst du nicht unbedingt eine separate Funktion, das kann auch direkt im Code eingesetzt werden.

Beispiel:
    If Nz(Me![txt_SucheDat], "") <> "" Then
        sKrit = sKrit & " AND [Datum]=" & Format(Me![txt_SucheDat], "\#yyyy\/mm\/dd\#")
    End If
Freundliche Grüße
MaggieMay

Churian

#52
Hallo,

an dem Bericht ist Falsch das der Herr Gammel eigentlich nur einen Einsatz gefahren ist dort aber 2 Ausfälle hatte.
Die Summe aus Fahrtkosten und Arbeitskosten (Stundensatz mal Arbeitszeit) sind dann die Gesamtkosten für den Einsatz. In diesem Fall angenommene 10€.
Im Bericht wird das aufsummiert.
Was dann im Bericht aufsummiert wird sind die Kosten die ein Techniker durch seine Einsätze verursacht hat.
Das mit den Gruppierungen und dem Datum schaue ich mir mal an.

Edit: Kann ich nicht die Suche erstmal so hinbauen mit den Listenfeldern um dann das Problem mit dem Bericht quasi von alleine zu lösen? Immerhin würden dann ja Servicefälle nur noch einmal gelistet und der Bericht würde auch alles korrekt addieren.


Grüße

Churian

MaggieMay

Hi,

mit meinem letzten Beitrag dachte ich eigentlich, das Problem mit den falschen Summen erklärt zu haben.
Wenn es dazu noch Fragen gibt, solltest du dich wohl noch einmal melden.

Es wäre auch hilfreich, wenn du auf alle Fragen, Vermutungen etc., die unsererseits geäußert werden, eingehen würdest.
Freundliche Grüße
MaggieMay

Churian

#54
Guten Morgen,

nochmal vielen Dank für den Datums-Code das hat es endlich zum laufen gebracht.

Zitatwenn die "Gesamtkosten" tatsächlich bereits die Gesamtkosten sind, so sollten sie nicht im Detailbereich aufgeführt und auch nicht summiert werden, sondern lediglich im Gruppenfuß auftauchen.

Ich würde die Gesamtkosten pro Einsatz gerne trotzdem aufsummieren um am Ende die Kosten für eine bestimmte Periode zusammengerechnet zu bekommen.
Die Gesamtkosten sind ja wirklich nur die Gesamtkosten für einen Einsatz.
Ich hoffe das war der Punkt den Maggie meinte wenn nicht könntest du das nochmal wiederholen? Dann habe ich das wohl überlesen.
Um den Bericht kann ich mich allerdings auch später. Wichtiger wäre erstmal das die Suche funktioniert.
Ich habe da jetzt die Abfrage so geändert das Artikelnummer und Ausfall nicht mehr in der Hauptabfrage auftauchen.
Ich habe in dem Suchformular 2 Listenfelder erstellt und ich die Datenherkunft z.B. der Artikelliste, folgende Abfrage programmiert:

SELECT tbl_Artikelnummer.Artikelnummer, tbl_Artikelnummer.Menge
FROM tbl_Artikelnummer
WHERE [Service_ID] = [txt_ID];


Hierzu sei gesagt das in tbl_Artikelnummer alle Artikelnummern für die Einsätze hinterlegt sind und das txt_ID ein Textfeld im Endlosfrom ist das mir die jeweiliger ID des Serviceeinsatzes anzeigt.
Jetzt zeigt mir die Liste für alle Einträge die Artikel für den ERSTEN Servicefall an und ändert sich nicht für anderen Einsatz im Endlosformular.

Grüße

MaggieMay

Hallo,
ZitatIch würde die Gesamtkosten pro Einsatz gerne trotzdem aufsummieren
Natürlich kannst du im Berichtsfuß oder einem weiteren Gruppenfuß die Gesamtkosten der Einsätze summieren, nicht aber im Gruppenfuß des Einsatzes, dort werden lediglich die Gesamtkosten angezeigt.

Was das Formular betrifft, so sehe ich keine Lösung. Das mit den Listenfeldern funktioniert im Endlosformular nicht, Unterformulare sind auch nicht einsetzbar und Gruppierung ist ebenfalls nicht möglich. Die Darstellung der Datenauswahl im Bericht scheint mir die beste Lösung zu sein.
Freundliche Grüße
MaggieMay

Churian

Hey,

gibt's da gar keine Möglichkeit?
Denn klar ist der Bericht wichtig aber eine übersichtliche und funktionale Suche ist noch wichtiger.
Kann man eigentlich auch nach einem Gewissen Zeitraum filtern im Formular? Quasi das ich in ein Textfeld ein Startdatum ein gebe und in ein zweites das Enddatum ein und zusammen mit anderen Kriterien die Suche filtere?

Grüße

MaggieMay

Hi,
Zitatgibt's da gar keine Möglichkeit?
ich hätte da vielleicht noch eine Idee, du könntest die Datensätze pro Service-ID in der Abfrage mit einer lfd. Nummer versehen und die Duplikate im Formular per bedingter Formatierung über die Schriftfarbe ausblenden.
Zeig doch mal an einem Beispiel, wie du dir die Optik der Formularausgabe vorstellst.
Zitataber eine übersichtliche und funktionale Suche ist noch wichtiger
Was spricht dagegen, das Suchergebnis in einem Bericht anzuzeigen?
ZitatKann man eigentlich auch nach einem Gewissen Zeitraum filtern
Natürlich kann man das, muss man nur den Abfragecode entsprechend anpassen, entweder mit BETWEEN ... AND ... oder mit >= ... AND <= ....
Freundliche Grüße
MaggieMay

Churian

Hey,

die Bilder sind im Anhang. Einmal wie ich mir das optimalerweise Vorgestellt habe über die Listenfelder und einmal wie ich auch damit Leben könnte.
Was ist eine Ifd-Nummer? bzw. was wir funktioniert die bedingte Formatierung?
ZitatWas spricht dagegen, das Suchergebnis in einem Bericht anzuzeigen?
Eigentlich spricht da nichts gegen ausser meine eigene Unfähigkeit und mein Unwissen ob das dann noch gut zu bedienen ist.
Müsste ich dann alle Daten aus tbl_Serviceverzeichnis, den Ausfällen und Artikeln übergeordnet gruppieren damit ich einigermaßen die Darstellung erhalte die ich anstrebe?
ZitatNatürlich kann man das, muss man nur den Abfragecode entsprechend anpassen, entweder mit BETWEEN ... AND ... oder mit >= ... AND <= ....
Wenn ich die Abfrage so programmiere würde ich beim öffnen der Suche gefragt wie das Start- und Enddatum lautet. Die Abfrage wird gefiltert.
Das ist grundsätzlich ok!
Aber wenn ich dann den Bericht aus der Suche erzeuge werde ich wieder nach Start- und Enddatum gefragt. Ich hätte das ganz gerne über Textfelder in der Suche gelöst die dann ihr Kriterium mit den anderen kombinieren.

Grüße

Churian

MaggieMay

Hallo,
Zitat von: Churian am Juni 09, 2015, 14:18:22die Bilder sind im Anhang. Einmal wie ich mir das optimalerweise Vorgestellt habe über die Listenfelder und einmal wie ich auch damit Leben könnte.
beides ist machbar, wobei zu bedenken ist, dass die Listenfelder im Formular nicht vergrößerbar sind (bzw. erst wenn du in die Seitenvorschau gehst) was ich als Beeinträchtigung sehen würde.
ZitatWas ist eine Ifd-Nummer?
Damit meinte ich eine laufende Nummerierung innerhalb der Mitarbeiter-ID.
Zitatwir funktioniert die bedingte Formatierung?
Die bedingte Formatierung kann über das Menü Format eingerichtet werden. Damit kannst du eine Bedingung definieren und einige Formatierungen der Steuerelemente anstoßen, bspw. Schriftfarbe, Hintergrundfarbe, Fettdruck, etc. Da das Ausblenden nicht möglich ist, kann man die Schriftfarbe auf weiß (bzw. auf die Hintergrundfarbe) einstellen, um es unsichtbar zu machen.

Was den Bericht betrifft, so kannst du ihn nach Mitarbeiter gruppieren, die Mitarbeiterdaten im Gruppenkopf anzeigen und die abhängigen Daten (Ausfall und Artikelnummern) im Detailbereich.
Aber auch hier empfiehlt sich möglicherweise (wie im Formular) der Einsatz der Funktion SQLListe und die Ausgabe der Daten in einem vergrößerbaren Textfeld, dann kann auf die Gruppierung verzichtet werden.

ZitatWenn ich die Abfrage so programmiere würde ich beim öffnen der Suche gefragt wie das Start- und Enddatum lautet.
Die Parameter solltest du ebenfalls aus dem Formular holen, dann musst du sie nicht beim Öffnen des Berichts noch einmal eingeben.
ZitatIch hätte das ganz gerne über Textfelder in der Suche gelöst die dann ihr Kriterium mit den anderen kombinieren.
So hatte auch ich mir das vorgestellt.

Ich hatte das schon mal ausprobiert und kann dir morgen eine Beispiel-DB mit allen Varianten hochladen.
Melde dich bitte nochmal, wenn du Interesse daran hast.
Freundliche Grüße
MaggieMay