Supportnet / Forum / Datenbanken
Zeilen und Spalten Tauschen
Frage
Hallo,
ich habe eine Abfrage mit 20 Datensätzen, dies sind 20 Verschidene Mitarbeiter mit deren Anwesenheits- oder Abwesenheitsdaten. Jeder Datensatz besteht aus 6 Spalten in denne die jeweiligen Werte eingetragen werden. Nun hätte ich für diese Abfrage gerne einen Bericht erstellt indem Das erste Feld des Datensatzes (Mitarbeitername) als Spaltenüberschrift (insgesamt also 20 Spalten) verwendet wird. Und die werte aus der Abdfrage sollen als Datensätze unter diesen Namen jeweils angeordnet werden.
Kann mir dabei jemand helfen ? Ich bin schon am verzweifeln
Antwort 1 von struppi
Hallo
Kann es sein das 1-6 die Wochentage sind und die Daten die Arbeitszeit?
Du möchtest jetzt die Gesamtzeit jedes Mitarbeiters ausrechnen?
Man kann im Menü Formularerstellung eine Privot-Tabelle aus den Access Daten in Excel erzeugen.
Hilft das schon?
Gruß struppi
Kann es sein das 1-6 die Wochentage sind und die Daten die Arbeitszeit?
Du möchtest jetzt die Gesamtzeit jedes Mitarbeiters ausrechnen?
Man kann im Menü Formularerstellung eine Privot-Tabelle aus den Access Daten in Excel erzeugen.
Hilft das schon?
Gruß struppi
Antwort 2 von Erin
Hy,
ich würde auch das mit der Excel-Tabelle empfehlen.
So hast du noch etwas mehr Freiraum was das formatieren usw. betrifft.
Grüße Erin
ich würde auch das mit der Excel-Tabelle empfehlen.
So hast du noch etwas mehr Freiraum was das formatieren usw. betrifft.
Grüße Erin
Antwort 3 von struppi
Hallo,
Mal ganz abgesehen davon, daß die Strukturierung nicht stimmt wenn man solche "Kopfstände" machen muß, läßt sich das auch in Access rumdrehen.
Was Besseres wie folgender Code fällt mir dazu aber nicht ein.
gruß struppi
Mal ganz abgesehen davon, daß die Strukturierung nicht stimmt wenn man solche "Kopfstände" machen muß, läßt sich das auch in Access rumdrehen.
Was Besseres wie folgender Code fällt mir dazu aber nicht ein.
Function Privot()
Dim db As DAO.DATABASE
Dim rs As DAO.Recordset
Dim SQL, SQL2, SQL3 As String, feld(19, 5) As Variant, z, y As Integer
SQL = "SELECT MName, a1, a2, a3, a4, a5, a6 FROM TabMitAnw;"
Set db = CurrentDb
Set rs = db.OpenRecordset(SQL)
rs.MoveFirst
z = 0
SQL2 = "INSERT INTO TabNeuMitAnw("
Do Until rs.EOF
SQL2 = SQL2 & rs!MName & ", "
feld(z, 0) = rs!a1
feld(z, 1) = rs!a2
feld(z, 2) = rs!a3
feld(z, 3) = rs!a4
feld(z, 4) = rs!a5
feld(z, 5) = rs!a6
rs.MoveNext
z = z + 1
Loop
SQL2 = Left(SQL2, Len(SQL2) - 2) & ") VALUES ("
SQL3 = SQL2
For y = 0 To 5
For z = 0 To 19
SQL2 = SQL2 & Nz(feld(z, y), 0) & ","
Next
SQL2 = Left(SQL2, Len(SQL2) - 1) & ");"
db.Execute (SQL2)
SQL2 = SQL3
Next
End Function
gruß struppi
Antwort 4 von 14071
mal dumm gefragt, erledigt sowas nicht die Kreuztabellenabfrage??
Gruß
Jürgen
Gruß
Jürgen
Antwort 5 von struppi
Hallo Jürgen,
Die Abfrage habe ich bisher nie gebraucht. Bekomme das damit aber auch nicht hin. Hast Du mal probiert ob es damit geht?
Eigentlich müßten die Felder 1-6 in eine seperate Tabelle und mtw. die 20 Mitarbeiter auch. Jetzt kann ich eine weitere Tabelle erzeugen in die ich beide Daten ziehe und einen Wert dazu schreibe.
So läßt sich eine Abfrage von Seite der 6 mtw Tage machen oder von Seiten der Mitarbeiter.
Das Problem gibt es eigentlich nicht wenn richtg strukturiert wird. Oder?
Gruß struppi
Die Abfrage habe ich bisher nie gebraucht. Bekomme das damit aber auch nicht hin. Hast Du mal probiert ob es damit geht?
Eigentlich müßten die Felder 1-6 in eine seperate Tabelle und mtw. die 20 Mitarbeiter auch. Jetzt kann ich eine weitere Tabelle erzeugen in die ich beide Daten ziehe und einen Wert dazu schreibe.
So läßt sich eine Abfrage von Seite der 6 mtw Tage machen oder von Seiten der Mitarbeiter.
Das Problem gibt es eigentlich nicht wenn richtg strukturiert wird. Oder?
Gruß struppi
Antwort 6 von 14071
Hallo Struppi,
denke auch, daß das Datenmodell nicht paßt. Wenn die Mitarbeiter und deren Zeiten in je einer relationalen Tabelle liegen, dürfte es mit einer einfachen Abfrage getan sein.
Mit der Kreuztabelle habe ich gelegentlich schon gearbeitet. Funktioniert nach dem gleichen Prinzip der Pivottabellen in Excel.
Gruß
Jürgen
denke auch, daß das Datenmodell nicht paßt. Wenn die Mitarbeiter und deren Zeiten in je einer relationalen Tabelle liegen, dürfte es mit einer einfachen Abfrage getan sein.
Mit der Kreuztabelle habe ich gelegentlich schon gearbeitet. Funktioniert nach dem gleichen Prinzip der Pivottabellen in Excel.
Gruß
Jürgen
Antwort 7 von Marie
Jo eben, ne Kreuztabelle in Access is doch dasselbe, wieso sollte Jan das jetzt in Excel machen?
Gruß Marie
Gruß Marie
Antwort 8 von struppi
Huhu snoopymaus,
Mit "Jo" gehts aber bei mir aber auch nicht.
Kannst Du es etwas genauer beschreiben?
Und was sagst Du denn nun zu der Filedialogsache ?
Oder 'redste' nich mit mir? ;-))
gruß struppi
Mit "Jo" gehts aber bei mir aber auch nicht.
Kannst Du es etwas genauer beschreiben?
Und was sagst Du denn nun zu der Filedialogsache ?
Oder 'redste' nich mit mir? ;-))
gruß struppi

