Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abf Datum

Begonnen von Icemann1970, Juli 23, 2017, 10:00:21

⏪ vorheriges - nächstes ⏩

Icemann1970

Hallo zusammen.
Ich brauche wieder mal Eure Hilfe.
Ich habe in meiner DB zu jedem Datensatz ein Datum wann die Arbeit angefangen wurde (jjjj.mm.tt) nun möchte ich durch eine Abfrage als Kombinationsfeld die Auswahl angezeigt bekommen (jjjj), aber das nur einmal je Jahr. Mein Problem ist nicht das Format (jjjj) sondern es zeigt mir zur Auswahl im Kombifeld alle vorhandenen Jahreszahlen ( beispiel: 10 mal 2016 und 15 mal 2017 ) an. Ergebnis der Abfrage ist richtig, möchte aber im Kombifeld nur 1 mal 2016 und 1 mal 2017 usw. angezeigt bekommen.
Habe viel ausprobiert und im Netz gesucht.  :-X
Freue mich schon auf die bestimmt sowas von einfache Lösung  ;D
Mfg. Udo

MzKlMu

Hallo,
ergänze die Abfrage wie folgt:
Select Distinct....
Oder gruppiere über das Feld.

Ich würde mir es aber einfacher machen, ich würde mir eine Tabelle anlegen mit einem Feld für die Jahreszahl, dann braucht es diese Klimmzüge nicht.
Gruß Klaus

Icemann1970

Hallo Klaus.
Mir wäre es auch lieber mit der Tabelle. Hatte ich auch schon angelegt und div. Jahreszahlen eingegeben, die auch in dem Kombifeld angezeigt werden, aber keine Selektierung erhalten.
Im Abfragegenerator habe ich für die zu suchenden Mitarbeiter Wie [Formulare]![FormStatistikTechniker]![cbxTechnikerauswahl] eingegeben. Das funktioniert ja auch. Wenn ich nun noch dann die gesuchte Jahreszahl suche kommt nichts.
Ich habe wie gesagt eine Tabelle die sich "StatistikJahreszahl" nennt angelegt mit den Feldern "Jahr"
in  der gleichen Abfrage habe ich im zu suchenden Feld als Kriterium Wie [Formulare]![FormStatistikTechniker]![cbxJahresauswahl]eingegeben. Im Auswahlkombifeld erscheinen auch die Jahre aus der "neuen" Tabelle StatistikJahreszahl.
in den jeweiligen Kombifelderen habe ich vba nach Aktualisierung Option Compare Database
Option Explicit

Private Sub cbxTechnikerauswahl_AfterUpdate()
Me.Requery
End Sub

Private Sub cbxJahresauswahl_AfterUpdate()
Me.Requery
End Sub

eingegeben.
Mfg. Udo

Icemann1970

Gruppieren hatte auch keinen Erfolg.
Mfg. Udo

MzKlMu

Hallo,
erstelle ein Minmalbeispiel mit Spieldaten, das das Verhalten zeigt und lade es komprimiert (Access Dienstprogramm) und gezippt hier hoch.
Gruß Klaus

Icemann1970

Habe was zum spielen hochgeladen  ;D
Mfg. Udo

Lachtaube

Dein Versuch ist natürlich nicht im Beispiel hinterlegt. :(
Grüße von der (⌒▽⌒)

Icemann1970

Hallo Lachtaube,
bewusst. So kann man mein Wunsch sehen, wenn ich das Kriterium Wie [Forms]![FormStatistikTechniker]![cbxJahr] in dem Feld "AuftragErledigt"  eingebe funktioniert die Abfrage nicht.
Sorry für die verwirrung  ;D
Mfg. Udo

Icemann1970

Hmmmm, habe ich da was sooo dumm falsch gemacht dass mir keiner hilft  ;D ;D ;D
Mfg. Udo

MzKlMu

Hallo,
wieso hilft Dir keiner ?
In der Antwort von Lachtaube in #6 ist doch die Lösung.
Gruß Klaus

Icemann1970

Ohhhhh wie peinlich ist dass denn  :D
Jetzt wünsche ich mir eine Zeitmaschine um meine Frage zu löschen  ;D. Vielen Dank für die Lösung und den Hinweis  ;D
Mfg. Udo

Icemann1970

Hallöchen, bin wieder da  ;D
Habe da ein kleines Problem. Ich habe die Lösung von Lachtaube übernommen. Mein problem ist folgendes.
Die Namen der Techniker laufen über die Personal Nummer (ID). Wenn ich jetzt die Abfrage laufen lasse funktioniert alles nur wie bekomme ich den Namen in dem cbxTechniker und nicht die Personal Nummer angezeigt? Da ich mich überhaupt nicht mit SQL auskenne würde ich mich freuen, wenn ihr mir dabei behilflich sein könntet.

SELECT Objekt.[GeräteNummer],Objekt.[Aufbereitetvon],Objekt.[Aufbereitetam],Objekt.Hersteller, Objekt.Fabrikat, Objekt.SN, Objekt.Bj FROM Objekt WHERE (((Objekt.[Aufbereitetvon])=Forms!FormStatistikTechniker!cbxTechniker) And ((Year(Objekt.[Aufbereitetam]))=Forms!FormStatistikTechniker!cbxJahr)) Or (((Year(Objekt.[Aufbereitetam]))=Forms!FormStatistikTechniker!cbxJahr) And ((Forms!FormStatistikTechniker!cbxTechniker)='(Alle)')) Or (((Objekt.[Aufbereitetvon])=Forms!FormStatistikTechniker!cbxTechniker) And ((Forms!FormStatistikTechniker!cbxJahr)='(Alle)')) Or (((Objekt.[Aufbereitetam])=True) And ((Forms!FormStatistikTechniker!cbxTechniker)='(Alle)') And ((Forms!FormStatistikTechniker!cbxJahr)='(Alle)'));


Die Angezeigten Techniker (als Ergebnis) sind richtig, diese hole ich mir aus der Datensatzherkunft, wo die Techniker ID,Vorname,Nachname,(Berechneter Vor+Nachname) haben (aus der Abfrage der Mitarbeiter)
Und in dem Kombifeld erscheint nur die ID Nummer. Sieh Bild im Anhang.
Danke.
Mfg. Udo

MzKlMu

Hallo,
die Datenherkunft des Kombis sollte 2 Spalten haben, die Personalnummer und den Namen (in dieser Reihenfolge).
Die Spaltenzahl des Kombis stellst Du auf 2 und die Spaltenbreiten auf 0cm;5cm.
Durch die 0cm für Spalte 1 wird die Nummer ausgeblendet und der Name ist zu sehen.
Die 5cm kannst Du anpassen.
Gruß Klaus

Icemann1970

Hallo Klaus.
Ja, das ist ja mein Problem. Das habe ich bei den anderen Kombifeldern gemacht aber in dieser ist in der Datensatzherkunft ein SQL Code geschrieben. Das kann ich nur machen wenn es eine "normale" Abfrage ist, die sich auf Tabellen beziehen. <-- ich hoffe Ihr könnt mich verstehen.
Siehe weites Bild.
Mfg. Udo

MzKlMu

Hallo,
ZitatDas kann ich nur machen wenn es eine "normale" Abfrage ist,
diese Annahme ist falsch. Du kannst in diese Abfrage auch den Namen mit dazunehmen (mit dem Join) und den Namen dann anzeigen.
Durch die Union etwas schwieriger, aber auch ohne Probleme.
Du kannst auch das Kombi schmal machen, dass man nur den Pfeil sieht und über die Auswahlabfrage den Namen mit dazu nehmen und in einem extra Feld direkt links neben dem Kombi anzeigen.
Gruß Klaus