PDA

Vollständige Version anzeigen : Export nach Excel und mehr ...


CarCa
11.10.2003, 13:05
Hallo alle zusammen,

ich brauch mal wieder Eure Hilfe, weil ich’s allein nicht raffe.

Access 2000 mit Excel 2000

Ich möchte Daten aus Access nach Excel exportieren. Dan desk Tipps von Carsten Sann aus der Access-Toolbox „knowHw30“ geht das auch wunderbar.

Private Function Export() '(tabelle As String)
Dim tabelle As String
Dim Kanal As Long
Dim B, strThemen, strTabellenname, Temp As String
Dim DB As Database
Dim rs As DAO.Recordset
Dim Anzahl, Z, S As Integer

On Error Resume Next
tabelle = "SD_Kunden"

Kanal = DDEInitiate("Excel", "System")
If Err Then
Err = 0
Shell "EXCEL.EXE", vbMinimizedNoFocus
If Err Then Exit Function
Kanal = DDEInitiate("Excel", "System")
End If

DDEExecute Kanal, "[New(1)]"
strThemen = DDERequest(Kanal, "Selection")
strTabellenname = Left(strThemen, InStr(1, strThemen, "!") - 1)
DDETerminate Kanal
Kanal = DDEInitiate("Excel", strTabellenname)

Set DB = CurrentDb
Set rs = DB.OpenRecordset(tabelle, dbOpenDynaset)
Anzahl = rs.Fields.Count
Z = 1
For S = 1 To Anzahl
Temp = "z" & Z & "s" & S
DDEPoke Kanal, Temp, rs.Fields(S - 1).Name
Next S

While Not rs.EOF
Z = Z + 1
For S = 1 To Anzahl
Temp = "z" & Z & "s" & S
Debug.Print Kanal, Temp, rs.Fields(S - 1).Value
DDEPoke Kanal, Temp, Nz(rs.Fields(S - 1).Value)
Next S
rs.MoveNext
Wend
DDETerminateAll
End Function


Aber:Excel wird zweimal geöffnet (Mappe1 und Mappe2). Daten werden in Mappe2.Tabelle1 geschrieben.

Wie kann ich’s aber anstellen,

a) dass Daten direkt in Mappe2 geschrieben werden, ohne Mappe2 öffnen und anzeigen zu müssen.

b) dass Mappe2 unter einem anderen Namen in beliebigem Path „StrPath“ gespeichert wird.

c) Tabelle1 in Mappe2 umbenannt wird bspw. in „Kunden“

d) Weitere Tabellen mit individuellen Namen in Mappe2 angelegt und weitere Daten dahinein gespeichert werden.

e) Zellen und Bereiche in Mappe2.Tabelle1 individuell zu formatieren. Kann ich jede Art der Formatierung von Access aus „veranlassen“ oder muss ich dazu auf ein ExcelMakro schreiben und von Access aus aktivieren.

Ich weiss, dass sidn viele Fragen. Es würde mir schon reichen, wenn ihr mir Links zu den Themen nennen könnte oder unter welchen Stichworten ich zu den einzelnen Punkten in der Access Hilfe suchen könnte.

Schon mal vielen Danke für Eure Hilfe
Carl

jmc
11.10.2003, 19:02
Hi Carl

ich würde dir empfehlen, deine ganze Übergabe an Excel mit Automation statt mit DDE zu machen. DDE ist an sich eine veraltete Methode!
Schau mal bei Reinhard Krasch Beispiele (http://www.kraasch.de/beispiele.htm) gleich am Anfang der Auflistung "Access to Excel"
Damit solltest du besser weiterkommen !

user18
11.10.2003, 20:03
Hi Carl,
eine Anmerkung zur Deklaration.
Vermutlich möchtest Du Anzahl und Z als Integer deklarieren, so wie Du es machst werden sie aber als Variant deklariert.
Richtig wäre:
Dim Anzahl as Integer, Z as Integer, S as Integer

Das gleiche gilt für die Stringdeklaration.

Gruß
Stefan