Neuigkeiten:

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

Mobiles Hauptmenü

Lösungsidee?

Begonnen von Xoar, August 29, 2011, 15:54:25

⏪ vorheriges - nächstes ⏩

Xoar

Hallo, mir fällt momentan keine gute Lösung ein wie ich folgendes lösen kann....

Ich habe eine Eingabemaske wo das Datum,Name, eingeteiltes Fahrzeug, Dienstbeginn und das Dienstende ausgewählt wird. Das wird in eine Tabelle gespeichert.

So nun kann es vorkommen das Person 1 Fahrzeug 1 von 08:00 - 10:00 besetzt und Person 2 das Fahrzeug 1 von 10:00 - 19:00

jetzt hätte ich gerne, dass in meiner Abfrage oder Tabelle ein Feld erzeugt wird, wo eingetragen wird welche Person das Fahrzeug zuerst besetzt.  

Bsp:
Datum              Fahrzeug     Name          von           bis         Std          neues Feld wo eingetragen wird wer das zuerst besetzt.    
01.08.2011      Auto1          Meier       08:00        10:00        2                   1
01.08.2011      Auto1          Schulz     10:00        19:00        9                   2
01.08.2011      Auto2          Müller      08:00        19:00        11                 1 
01.08.2011      Auto3          Kohl         08:00       19:00        11                  1 


Die Abfrage gibt es schon wo alle Auflistungen wie oben zu sehen sind, erstellt werden, nur OHNE das neue Feld wo jetzt 1 und 2 steht. Das muss noch erzeugt werden, mir fällt da nur keine passende Formel für ein.

Oder geht das nur über VBA?


Liebe Grüße


Jonny

Hallo,
ein Feld mit Zeit ist unglücklich.
Mache ein Feld Anfang und ein Feld Ende.
Dann kannst du nicht nur sauber sortieren (Datum, Anfang) sondern auch noch
auswerten wie lange jemand das Fahrzeug benutzt hat.

Gruß

Johann

Xoar

#2
ja sorry hab ich falsch geschrieben.

hab ein Feld [von] und ein Feld [bis]. Ausgewertet wie lange Person X das Fahrzeug besetzt hat, habe ich auch drin. Nur halt der für mich wichtige Punkt nun, nicht ob er als erstes oder erst als zweites das Fahrzeug besetzt.

Da ich Textfelder durch die Daten der Abfrage befülle, bringt mir sortieren glaube ich nichts...

DF6GL

HAllo,

was hast Du denn damit vor?


Du siehst doch anhand der "Von"-Zeit (in Verbindung mit dem Datumsfeld, was an sich in dieser Konstellation als zwei Felder eher unglücklich ist) und dem entspr. Fahrzeug, wer der "erste" Fahrer ist.

Jonny

Hallo,
dann bringt dir die Sortierung doch was du willst (sortiere nach Datum, nach Auto und danach nach Von)
Tag ist zusammen, Auto ist zusammen und die kleinste Zeit von, also der Erste.

Gruß

Johann

Jonny

Hallo,
Datum und Auto müssen schon zwei Felder sein weil innerhalb eines Datums alle Autos zusammenstehen müssen.
Bei einen Feld Datum und Zeit würde das nicht gehen.

Gruß

Johann


Xoar

ja wenn ich drauf schaue sehe ich das, jetzt kommt aber das ABER

Ich befülle über VBA automatisch Textfelder mit den Daten der Abfrage und nun muss Access ja wissen wer in Textfeld1 und wer in Textfeld2 geschrieben werden muss.

Textfeld 1 soll in diesem Fall den Mitarbeiter beinhalten, der zuerst auf dem Fahrzeug eingesetzt ist und Textfeld 2 halt den Mitarbeiter, der danach das Fahrzeug besetzt.

Fahrzeug 1
08:00 - 10:00     10:00 - 19:00
[Mitarbeiter 1]       [Mitarbeiter 2]      Und nun muss ich den VBA Code ja so anpassen, dass man erkennen kann, wer zuerst das Fahrzeug besetzt.

Hoffe ist etwas klar geworden.

DF6GL

Hallo,


nein    ;)


Klar ist , was Du machen willst, aber nicht, wofür das gut sein soll.


Welcher Fahrer der Erste ist, braucht nicht gespeichert werden, das ergibt sich aus der Tatsache der "frühen" Zeit.


"Textfeld 1 soll in diesem Fall den Mitarbeiter beinhalten, der zuerst auf dem Fahrzeug eingesetzt ist und Textfeld 2 halt den Mitarbeiter, der danach das Fahrzeug besetzt"

Sowas geht schief, wenn das zwei verschiedene Form-Textfelder im Detailbereich des Form sind.   Zeige besser die Fahrer in ihrer zeitlichen Reihenfolge in einem Listenfeld oder Unterform an.


Erklär mal, was mit diesem Formular gemacht werden soll und poste den VBA-Code, der dazu gehört.


Xoar



Xoar

#11
Also das erste Bild ist die Maske wo der Dienstplan erstellt wird.

Das zweite Bild wird ausgedruckt und aufgehangen.

Dort sieht man alle Textfelder, die Zeiten dabei sind noch aus der Vorversion, also nicht beachten.


Nach der Eingabe der Daten in der Maske, werden die Daten in eine Tabelle eingetragen und über eine Abfrage so abgefragt, dass man die richtigen Bezeichnungen für die Textfelder halt.

Nun wird über einer DLookup Funktion nach verschiedenen Schlüsselelementen gesucht und dann der Name dem Textfeld zugeordnet.

Form_frmDienstplanAusdruck.RTW1_D.Value = DLookup("[Nachname]", "qryDienstplan", "[Fahrzeug] = 'RTW 1' and [Posten] = 'Fahrer'")


jetzt muss ich aber noch ein neues Schlüsselelement haben, wo drin steht ob er das Fahrzeug als ersten oder zweites besetzt.

So eine DLookup Funktion hab ich für jedes Textfeld.


Xoar

jetzt war das wohl ein Schock für dich^^

wohl schlimmer als erwartet   HA

DF6GL

Hallo,


nee, kein Schock für mich...     ;)


Wenn das Formular ungebunden ist, was ich stark vermute, könnte man mittels eines Recordsets und SQL-Strings die entspr. Datensätze filtern, nach Datum plus Von-Uhrzeit sortieren und mittels Schleife die Von-Zeiten irgendwelchen Steuerelementen zuweisen.

Die Position dieser "irgendwelchen Steuerelementen" gibt die Reihenfolge (Erster, Zweiter,.. )  sichtbar an.


Oder wie vorher gesagt, gleich ein Listenfeld mit Zuweisung eines passenden SQL-Strings , das dann die Reiehnfolge anzeigt.

Xoar

Hi,

also das mit dem Listenfeld hört sich ja ansich einfacher an, nur habe ich da nicht so die Formatierungsmöglichkeiten.
Demnach müsste das Listenfeld ja nicht untereinander die Datensätze anzeigen, sondern horizontal nebeneinander, das geht glaube ich nicht, oder?!

Mit nem RecordSet habe ich auch schon überlegt, da bin ich leider nicht so ganz fit drin, habe in meinem Code zwar schon zwei drin, aber da musste ich auch schon viel Hilfe für in Anspruch nehmen.

Wie z.B. könnte man alle Steuerelemente durchlaufen, wenn sie total unterschiedliche Namen haben, oder müsste ich sie umbenennen in 1,2.... und dann den Counter immer +1?

Und dann müsste ja auch noch jedem Textfeld in der Schleife der passende Datensatz zugeordnet werden. z.B. Textfeld1 muss RTW1 Fahrer sein, Textfeld2 RTW2 Fahrer etc...  da weiß ich auch nicht wie das geht.


Das auch immer alles so kompliziert sein muss, bis mans kann....