WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   access -> excel vba - problem mit "range" (http://www.wcm.at/forum/showthread.php?t=228519)

heli2sky 20.05.2008 10:12

access -> excel vba - problem mit "range"
 
Liste der Anhänge anzeigen (Anzahl: 2)
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

beim ersten öffnen des excel funktionierts problemlos! wenn ich allerdings dann excel schließe und das ganze erneut öffnen möchte, dann öffnet sich excel zwar, es kann aber nicht angezeigt werden (wenn ich draufklicke erscheint nur die zeile oben, siehe screenshot).

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 :(

wbendl 21.05.2008 09:01

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag