Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Berichtsdaten transponieren





Frage

Hallo Leute! Ich möchte aus einem Bericht in Access (Ausgabe waagrecht, 2. Spalte darunter) eine Tabelle im Excel (Ausgabe senkrecht, 2. Spalte daneben) erzeugen. In der Onlinehilfe konnte ich nichts finden. Da der Bericht ca. 15 -20 mal die Woche abgefragt werden soll möcht ich mir ein händisches transponieren in Excel ersparen. Wer kann mir sagen wie ich das anstellen kann?? Danke

Antwort 1 von piano

Hallo
Diese Funktion transponiert eine Tabelle von "Tabelle1" nach "Tabelle1". Innerhalb von
Zitat:
With tabelle.Application
und
Zitat:
End With
kannst du Excel-Statements anwenden.
Function TestTrans()
Dim ExcelDatei As String
Dim ExcelName As String
Dim ExcelPfad As String
Dim tabelle As Object
ExcelPfad = "D:"
ExcelName = "Mappe1.xls"
ExcelDatei = ExcelPfad & ExcelName
If Not FileExist(ExcelDatei) Then
DisplayMessage ("Excel-Datei nicht vorhanden !")
Exit Function
End If
Set tabelle = CreateObject("Excel.sheet")
With tabelle.Application
.workbooks.Open FileName:=ExcelDatei
.Visible = False
.ScreenUpdating = False
    .Sheets("Tabelle1").Select
    .Range("A1:B2").Select
    .Selection.Copy
    .Sheets("Tabelle2").Select
    .Range("A1:B2").Select
    .Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

´ beliebige Excel-Commands hinter dem Punkt

.ScreenUpdating = True
.Save
.Quit
End With
End Function

Function FileExist(dateiname$) As Boolean
´Die Funktion prüft, ob eine Datei vorhanden ist
On Error GoTo fehler:
FileExist = Dir$(dateiname) <> ""
Exit Function
fehler:
    FileExist = False
    Resume Next
End Function

 

Du musst nur noch den Verweis auf die Excel-Library einrichten.

Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von blasi13

Hallo piano!

Danke für deine Antwort. Habe aber noch ein paar Fragen dazu:

1) Wo muß ich die Variablen des Berichtes (z.B.: "Max Anzahl von X" oder "Summe von Y") einsetzen?
2) Wo wird die Funktion eingebaut? Im Bericht oder in der Abfrage aus der der Bericht generiert wird?

Wäre echt super wenn du auch darauf noch eine Antwort hättest :)

Danke
blasi13

Antwort 3 von piano

Hallo
Deine Frage war doch,
Zitat:
wie transponieren?
.
Meine Funktion bearbeitet das fertige Excel-sheet.
Wie kommst du überhaupt dahin? mit Bericht anzeigen und Exportieren als Excel-Datei?.
Wenn ja, dann solltest du ein Formular mit einer Befehlsschaltfläche anbieten, die nur diese Funktion aufruft.
Besser wäre natürlich, alle Tätigkeiten wie Abfrage, Berichtsaufruf Export und Transponieren in einem Formular VBA-gesteuert zu erledigen. Das übersteigt jedoch wahrscheinlich deine Möglichkeiten und auch meine zeitlichen Ressourcen, und du wirst es wohl kaum ohne Einwurf von ein paar Munzen gelöst bekommen.
Gruss piano