Neuigkeiten:

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

Mobiles Hauptmenü

Hilfe bei Kombifeld und Formular

Begonnen von Dr.Cornwallis, Mai 12, 2016, 14:10:40

⏪ vorheriges - nächstes ⏩

MzKlMu

Hallo,
in dem Formular werden doch keine Daten erfasst, die Daten liegen doch per Import vor. Du brauchst das Formular nur zum Filtern. Das Formular zeigt immer alle Daten an und wird dann auf die gewünschte Abteilung und den gewünschten Zeitraum gefiltert. Die Abfrage bleibt dabei unverändert.

Die Filterung erfolgt mit extra ungebunden Feldern.

ZitatIn ca. 1 Stunde Teile ich einen Screenshot vom Code/Abfrage
Kein Screenshot bitte, als Text hier rein kopieren. In Screenshots kann man die Texte nicht kopieren, die müsste man abschreiben.

Gruß Klaus

Dr.Cornwallis

Sorry ist doch etwas länger geworden, ich kopiere dir morgen den Text, was für einen Code soll ich posten?

Grüße

Dr.C

MzKlMu

Hallo,
ZitatBitte zeige mal den SQL Text der Abfrage die die Abteilungen zeigt.
Du hast ja geschrieben, dass der jetzige Bericht die Abteilungen ausgibt. Und von diesem Bericht die Datenherkunft (Abfrage) als SQL Text.
Gruß Klaus

Dr.Cornwallis

Hallo,

also der SQL Text der Abfrage auf den der Bericht zeigt sieht so aus:

SELECT Rohdaten.Kostenstelle, SAP_EXPORT.[Name Mitarb#/Bewerb#], SAP_EXPORT.[OrgEinh#], SAP_EXPORT.PersNr, Rohdaten.ZUBA, Rohdaten.[DM Bereich], SAP_EXPORT.[1_Jun_2016], SAP_EXPORT.[2_Jun_2016]
FROM Rohdaten RIGHT JOIN SAP_EXPORT ON Rohdaten.[OrgEinh#] = SAP_EXPORT.[OrgEinh#];


Grüße

Dr.C

MaggieMay

Hallo,

ich dachte es wäre klar geworden, dass du einen Datensatz pro Tag brauchst und nicht separate Spalten für jeden Tag.  ???

Gehen wir also davon aus, dass der Datensatz nur eine Datumsspalte hat.
Wenn du dann ein Formular (bspw. "frmAuswahl") hast zur Vorgabe der Parameter, so könnte der SQL-Code folgendermaßen erweitert werden:
SELECT Rohdaten.Kostenstelle, SAP_EXPORT.[Name Mitarb#/Bewerb#], SAP_EXPORT.[OrgEinh#], SAP_EXPORT.PersNr, Rohdaten.ZUBA, Rohdaten.[DM Bereich], SAP_EXPORT.[Datum]
FROM Rohdaten RIGHT JOIN SAP_EXPORT ON Rohdaten.[OrgEinh#] = SAP_EXPORT.[OrgEinh#]
WHERE SAP_EXPORT.[OrgEinh#] = Forms!frmAuswahl!txtOrgEinh AND SAP_EXPORT.[Datum] BETWEEN Forms!frmAuswahl!datvon AND Forms!frmAuswahl!datbis;


Oder du filterst beim Öffnen des Berichts:
DoCmd.OpenReport "repName", acViewPreview, , "SAP_EXPORT.[OrgEinh#] = " & Me!txtOrgEinh & " AND SAP_EXPORT.[Datum] BETWEEN " & Format(Me!datvon, "\#yyyy\/mm\/dd\#") & " AND " & Format(Me!datbis, "\#yyyy\/mm\/dd\#")
Freundliche Grüße
MaggieMay

Dr.Cornwallis

Hallo,

das Problem ist dass täglich 2000 Zeilen vom SAP exportiert werden, also muss man die (Arbeits)Zeiten in eine eigene Spalte packen da Access keine 2000 Datensätze speichern kann, ansonsten wäre ich schon längst fertig :-).

Gruß

Dr.

MaggieMay

#21
Du sprichst von Zeilen und Datensätzen, da ist die Zahl 2000 kein Problem für Access!

PS:
Zeig doch mal ein Beispiel einer aus SAP exportierten Datei, dann sehen wir weiter.
Freundliche Grüße
MaggieMay

MzKlMu

Hallo,
Zitatda Access keine 2000 Datensätze speichern kann
wie kommst Du darauf ?
Selbst 2.000.000 sind da keine Hürde.
Wohlgemerkt, Datensätze, so wie Du es geschrieben hast.
Gruß Klaus

Dr.Cornwallis

hab mal einen Screenshot vom Sap Export gemacht, dieser komm täglich neu auf das Netzlaufwerk, beinhaltet immer 1500-2000 Mitarbeiter inkl. deren Arbeitszeit etc....

Ich habe diese Datei einmal transponiert(Ausrichtung von vertikal auf horizontal) damit ich die Arbeitszeiten in eine Zeile packen kann, da war bei glaube 255 Schluss. Würde ich pro Tag ein Feld her nehmen, dann könnte ich die Arbeitszeit in dieses Feld importieren, aber wie wähle ich dann in einem Bericht den Zeitraum aus?


Gruß

Dr.

MaggieMay

Hallo,

die Datei ist doch perfekt! Von der Idee des Transponierens solltest du dich endlich verabschieden. Die Tage gehören nicht nebeneinander sondern untereinander.

Wie du das später in einem Formular oder Bericht darstellst, ist eine ganz andere Sache. Da kannst du bei Bedarf eine Kreuztabellenabfrage einsetzen, um die gewünschte Ansicht zu erhalten.

Zitataber wie wähle ich dann in einem Bericht den Zeitraum aus?
Eben drum (!) speichert man die Daten separat, insbesondere zugunsten der besseren Auswertbarkeit.
Freundliche Grüße
MaggieMay

Dr.Cornwallis

ja aber wenn ich die Arbeitszeit täglich untereinander einfüge(hab ich das richtig verstanden?), wie schaffe ich dann einen Bezug zu den dazugehörigen Mitarbeitern bzw. zum Datum?

MaggieMay

#26
Ich meine, das wurde bereits gesagt, lediglich die folgenden Datenfelder werden in der Tabelle benötigt:
PersNr, Datum, Stunden  (evtl. weitere)
Praktisch genauso wie du sie geliefert bekommst, nur das Datum musst du beim Import hinzufügen.

PS:
"untereinander" heißt: in separaten Datensätzen speichern, also zeilenweise in Excel-Denke.
Freundliche Grüße
MaggieMay

Dr.Cornwallis

Zitat von: MaggieMay am Mai 18, 2016, 13:57:29
Ich meine, das wurde bereits gesagt, lediglich die folgenden Datenfelder werden in der Tabelle benötigt:
PersNr, Datum, Stunden  (evtl. weitere)
Praktisch genauso wie du sie geliefert bekommst, nur das Datum musst du beim Import hinzufügen.

PS:
"untereinander" heißt: in separaten Datensätzen speichern, also zeilenweise in Excel-Denke.

Ok gut und wie mache ich das mit dem Datum am Besten? dh. im Table wo täglich die Arbeitszeit importiert wird, muss auch dann noch ein zusätzl. Feld mit "Datum" eingefügt werden!?
Ich habe nochmal von vorne angefangen, meine derzeitigen Tables sehen so aus(Anhang):

Jetzt also noch beim Table "Korridor" eine Spalte/Feld mit "Datum" einfügen?

Danke für eure/deine Geduld!

Gruß

Dr.


MaggieMay

Wenn die aus SAP exportierte Tabelle das Datum bereits enthalten würde wäre das natürlich optimal und würde der Fehlervermeidung dienen. Andernfalls musst du das Datum halt beim Import angeben, entweder per Formular oder Parameterabfrage.

Ansonsten brauchst du noch eine Personaltabelle mit allen mitarbeiterbezogenen Daten. In der täglich fortzuschreibenden Tabelle mit den Stunden brauchst du dann nur noch die Personalnummer als Referenz.
Freundliche Grüße
MaggieMay

MzKlMu

Hallo,
die Tabelle "Datentage" ist verzichtbar. In die Accesstabelle muss nur ein Feld für das Datum für das die Zeiten gelten. Monat und KW ist ohnehin überflüssig, da sich beides aus dem Datum ableiten lässt.

Du solltest auch unbedingt die Sonderzeichen (# /) aus den Feldnamen entfernen. Besonders der Gartenzaun (#) der Datumswerte kennzeichnet.

Die Tabellennamen finde ich verwirrend. Da gibt es die Tabelle Rohdaten, die ich als SAP Import erkennen würde. Aber da gibt es keinen Bezug zum MA.

Irgendwie denkst Du immer noch viel zu kompliziert. Das ist alles viel einfacher als Du denkst.
In der Accesstabelle werden 3 (mit PK 4) Spalten benötig (wie bereits gesagt).
In dem Datumsfeld kannst Du dann beliebige Zeiträume filtern, (KW, Monat, Jahr), alles über das eine Feld. Die Tabelle verlängert sich mit neuen Daten immer nach unten. Jeden Tag um 2000 DS.
Gruß Klaus