Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Ken am August 28, 2013, 14:05:40

Titel: Laufzeitfehler 462 schon wieder
Beitrag von: Ken am August 28, 2013, 14:05:40
Hallo,

ich stehe wieder mal auf dem Schlauch....die Fehlermeldung:

Laufzeitfehler 462
Der Remote-Server -Computer existiert nicht oder ist nicht verfügbar


erscheint wenn ich eine Function zweimal hintereinander laufen lasse. Es muss wohl daran liegen, dass ich etwas von Excel nicht richtig beende bzw. schließe. Aber was mache ich hier falsch????

Dim xlApp As Excel.application
Dim xlwrkbk As Excel.Workbook
Dim xlsheet As Excel.Worksheet

xlApp.application.Quit
xlApp.Quit
Set xlApp = Nothing
Set xlwrkbk = Nothing
Set xlsheet = Nothing


Der Code beinhaltet den Anfang und das Ende der Function.

Bin dankbar für jeden Tipp
Anbei der
Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: DF6GL am August 28, 2013, 14:31:04
Hallo,

und wo werden die Excel-Objekte denn nachvollziehbar definiert/initialisiert?

Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: Ken am August 28, 2013, 14:39:12
Hallo,

ich bin jetzt leider kein Access-Experte, aber so steuer ich z.B. mein Excel an:

Set xlApp = New Excel.application
    xlApp.Visible = True
Set xlsheet = xlApp.application.ActiveWorkbook.Sheets(1)

Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: DF6GL am August 29, 2013, 10:10:50
Hallo,


ok, mit "New" wird eine neue Instanz generiert.


Halte beim "Zerstören" der Objekte (...= Nothing) die umgekehrte Reihenfolge ein wie bei der Erzeugung der Objekte benutzt und schliesse explizit das Sheet (xlsheet.Close)  .. Vielleicht hilft das hier ja.


Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: Ken am August 29, 2013, 11:23:12
Hallo,

erstmal vielen Dank für den Tipp!

Die Funktion kann ich jetzt x-mal durchlaufen lassen ohne Fehler. Sobald ich aber in ein anderes Modul wechsel und Excel ansteuere kommt wieder dieser Fehler. Wieso gibt es keinen Befehl der alles killt  ??? Mist!
Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: Ken am August 29, 2013, 12:30:30
Hallo,

nur noch eine Frage, wenn ich doch mit einem Kill Befehl Excel beende und es im Taskmanager unter Prozesse nicht mehr zu sehen ist, wie kann da noch etwas quer hängen  ???
Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: benjamin.grimm am August 29, 2013, 16:39:22
hey probier ihn mal auszublenden, vielleicht funktioniert es ja dann

On Error GoTo fehlerbehandlung


hier steht dann dein VBA Code

fehlerbehandlung:
MsgBox Err.Description, vbCritical, "Fehler"

Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: DF6GL am August 29, 2013, 17:05:19
Hallo,

eine Fehlerbehandlung bringt in diesem Fall wohl eher nichts...


ZitatSobald ich aber in ein anderes Modul wechsel und Excel ansteuere kommt wieder dieser Fehler

Was heißt das?

ZitatWieso gibt es keinen Befehl der alles killt Mist!

Da wird an der falschen Stelle gerödelt...   Der Excel-Task doll nicht durdh den Taskmanager gekillt werden, die Excel-Instanz soll SAUBER durch den Code aus dem Arbeitsspeicher entfernt werden.
Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: Ken am August 30, 2013, 10:20:55
Hallo,

Error goto brachte die gleiche Fehlermeldung.

Seltsam finde ich, das ich die erste Function jetzt x mal durchlaufen lassen kann und bei der nächsten Function er stecken bleibt (oder ich beende Access, dann läuft die zweite Function wieder). Und durch den Kill müssten doch alle Instanzen weg sein  ???

Jedenfalls bleibt der hier hängen:

Set xlapp = New excel.application
        xlapp.Visible = True
        strfilename = "c:\test\reports\test.xls"
        Set xlwrkbk = xlapp.Workbooks.Open(strfilename)
        Set xlsheet = xlapp.application.ActiveWorkbook.Sheets("act_year")
        xlwrkbk.Sheets("act_year").Select
       
    ' Get actual day
   

    xlsheet.Select
    xlsheet.Range("G5").Select
    'Range("G5").Select
    MyDay = 1
'    Do Until Mid(ActiveCell.Value, 3, 1) <> "."
    Do Until ActiveCell.Value = ""

genau bei do until activcell.value = ""
Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: DF6GL am August 30, 2013, 13:44:14
Hallo,


--->  xlwrkbk.ActiveCell.Value
Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: Ken am August 30, 2013, 14:21:29
Hallo,

dann kommt leider die Fehlermeldung: Objekt unterstützt diese Eigenschaft oder Methode nicht
Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: daolix am August 30, 2013, 18:24:31
Hallo

kleiner Tip am Rande: im VBA Editor F2 gedrückt und nach ActiveCell suchen. Ergebniss: Ist ein Property von Application oder Windows.
--> xlapp.ActiveCell

Auch solltest du dinge wie ActiveCell etc nie ohne parent - object verwenden, weil dann die entsprechenden Programminstanzen ggf nicht beendet werden.
So wirklich schlau werd ich deinem Code jetzt auch nicht ( Mit Excel hab ich es nicht so, und ist lange her) , Select ist aber evtl nicht nötig

        Set xlapp = New excel.application
        xlapp.Visible = True
        strfilename = "c:\test\reports\test.xls"
        Set xlwrkbk = xlapp.Workbooks.Open(strfilename)
        Set xlsheet = xlwrkbk.Sheets("act_year")
        ' Get actual day
       ....



Titel: Re: Laufzeitfehler 462 schon wieder
Beitrag von: Ken am September 02, 2013, 09:42:57
Hallo daolix,

das war die Lösung....xlapp fehlte.

Vielen Dank für deinen Tipp & Hilfe!