![]() |
![]() |
|
![]() |
![]() |
|
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) | |
|
|