![]() |
![]() |
|
|
|||||||
| Programmierung Rat & Tat für Programmierer |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Master
![]() |
hallo leute!
ich habe mich in den letzten wochen etwas in access und vba eingearbeitet, hatte davor nix damit zu tun. jetzt bin ich auch schon recht weit und hab schon einiges zusammengebracht, nur stoße ich immer wieder auf folgendes problem: Code:
Dim objExcel As excel.Application
Dim objWorkbook As excel.Workbook
On Error Resume Next
Set objExcel = GetObject(, "Excel.Application")
If Err.Number = 429 Then
Set objExcel = CreateObject("Excel.Application")
End If
On Error GoTo 0
Set objWorkbook = objExcel.Workbooks.Open(file)
objExcel.ActiveWorkbook.Sheets(1).Select
objExcel.Visible = True
With objExcel.ActiveWorkbook.Sheets(1)
' ### Daten aus der DB holen
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
Set db = CurrentDb
Do While ende = 0
strSQL = "SELECT ...;"
Set rs = db.OpenRecordset(strSQL) ' Recordset öffnen
' zellen initialisieren
.Range(.Cells(y + zy, x + 1), .Cells(y + zy, x + 31)).Select
Selection.ClearContents
Selection.ClearComments
Loop
End With
abhilfe bringt dann nur ein "prozess beenden"... danach lässt sich excel beim ersten mal öffnen, es führt aber die in access programmierten aktionen nicht aus (remote fehler 462, siehe screenshot 2). beim 2. öffnen funktionierts dann wieder richtig, beim 3. hängt sichs wieder auf usw... bis jetzt bin ich dem problem mit for-schleifen und einzelnem durchgehen der zellen entgegnet, aber das kanns ja nicht sein ![]()
____________________________________
Lang ist der Weg durch Lehren, kurz und wirksam durch Beispiele. Lucius Annaeus Seneca ...:::www.modellbaulexikon.org:::... www.acrobat-se.org | www.ams-8c.de.vu |
|
|
|
|
|
#2 |
|
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
Hi!
Der Code ist nicht vollständig, daher ist es nur eine Vermutung: Excel wird nicht richtig beendet. Das führt bei der Verwendung von GetObject zu unvorhersehbaren Effekten. Wenn mehrere Instanzen geöffnet sind, ist es nicht vorhersehbar, welche Instanz von GetObject gefunden wird. Beobachte im Taskmanager die Anzahl der Instanzen. Wenn nicht unbedingt notwendig, auf GetObject verzichten. CreateObject macht keine Probleme. EarlyBinding (Verweis auf Excel) wäre aber noch besser. Dazu muß aber die Version von Excel bekannt sein. mfg WB |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|