Access 07 einzelne Zeilen nach Excel 07

26/11/2009 - 13:53 von Toni Strnad | Report spam
Hallo Ihr Lieben!

Ich möchte aus einem Access Formular Daten in eine vorhandene Excel Tabelle
schreiben und zwar in nàchste freie Zeile. Irgendwie geht das aber nicht.
Die Excel Tabelle wird nicht veràndert. Wenn ich versuche die Daten ein
zweites mal zu schreiben erscheint die Fehlermeldung "Laufzeitfehler 1004"
"Die Methode 'Cells' für das Objekt '_Global' ist fehlgeschlagen".

Mein Code:

Private Sub GetAccessData_Click()
Dim xlApp As New Excel.Application
Dim wb As Excel.Workbook
Dim mySht As Excel.Worksheet
Dim ContactDoc As String
Dim n
Dim wksTabelle As Worksheet
ContactDoc = "e:\AS-Tanz\Mappe1.xlsx"
Set xlApp = New Excel.Application
Set wb = xlApp.Workbooks.Open(ContactDoc)
Set mySht = wb.Sheets("Tabelle1")

n = Cells(Cells.Rows.Count, 1).End(xlUp).Row '1=Spalte
n = n + 1

With mySht

.Cells(n, 1).Value = me!Nachname
.Cells(n, 2).Value = me!Vorname
.Cells(n, 3).Value = me!Geburtsdatum
End With
ActiveWorkbook.Close SaveChanges = True
DoEvents
xlApp.DisplayAlerts = False
xlApp.Quit
xlApp.DisplayAlerts = True
Set xlApp = Nothing

End Sub

Was habe ich denn wieder mal falsch gemacht?

Herzlichen Dank im Voraus für jeden Tip!

Liebe Grüsse au Erkelenz
Toni
 

Lesen sie die antworten

#1 Peter Doering
26/11/2009 - 14:12 | Warnen spam
Hallo,

Toni Strnad wrote:

Ich möchte aus einem Access Formular Daten in eine vorhandene Excel Tabelle
schreiben und zwar in nàchste freie Zeile. Irgendwie geht das aber nicht.
Die Excel Tabelle wird nicht veràndert. Wenn ich versuche die Daten ein
zweites mal zu schreiben erscheint die Fehlermeldung "Laufzeitfehler 1004"
"Die Methode 'Cells' für das Objekt '_Global' ist fehlgeschlagen".

Mein Code:

Private Sub GetAccessData_Click()
Dim xlApp As New Excel.Application



Dim xlApp As Excel.Application

Dim wb As Excel.Workbook
Dim mySht As Excel.Worksheet
Dim ContactDoc As String
Dim n
Dim wksTabelle As Worksheet
ContactDoc = "e:\AS-Tanz\Mappe1.xlsx"
Set xlApp = New Excel.Application
Set wb = xlApp.Workbooks.Open(ContactDoc)
Set mySht = wb.Sheets("Tabelle1")

n = Cells(Cells.Rows.Count, 1).End(xlUp).Row '1=Spalte



Wenn keine Leerzeilen vorkommen, kannst du die letzte Zeile so ermitteln:

n = Range("A1").CurrentRegion.Rows.Count

n = n + 1

With mySht

.Cells(n, 1).Value = me!Nachname
.Cells(n, 2).Value = me!Vorname
.Cells(n, 3).Value = me!Geburtsdatum
End With
ActiveWorkbook.Close SaveChanges = True
DoEvents
xlApp.DisplayAlerts = False



Was zeigt er denn hier an, was du unterdruecken willst?

xlApp.Quit
xlApp.DisplayAlerts = True



Das bringt nach dem Quit nicht mehr viel, sorgt aber in Zusammenhang mit
der Deklaration "As New ..." dafuer, dass eine neue Instanz angelegt wird.
Schau mal im Taskmanager, wieviele Excel-Sessions da haengen.

Set xlApp = Nothing

End Sub



Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen