none
Datenübergabe an Word unter Office2010

    Frage

  • Hallo,

    Bisher übergebe ich meine Daten an Word mit folgendem Code:

        Dim db As DAO.Database
        Dim rs As DAO.Recordset
       
        Dim i As Long, n As Long
       
        Dim wdApp As Word.Application
        Dim wdDoc As Word.Document
        Dim wdTab As Word.Table
       
        Dim tTmp As String
        Dim country As String, Ort As String
       
        Set db = CurrentDb
        Set rs = db.OpenRecordset("SELECT * FROM qryExpCRFPerCenterPercent ORDER BY Land desc, Ort, Visit", dbOpenSnapshot)
       
        On Error Resume Next
            tTmp = "Y:\Auswertung\Files\CRFExpected.doc"
            FileCopy "Y:\SemiAR\SemiAR_CRFExpected.doc", tTmp
           
            Set wdApp = GetObject(, "Word.Application")
            If Err.Number = 429 Then
                Err.Clear
                Set wdApp = CreateObject("Word.Application")
            Else
                If Err.Number > 0 Then
                    MsgBox "Fataler Fehler"
                    'Fehlerbehandlung
                    wdApp.Quit wdDoNotSaveChanges
                End If
            End If
        On Error GoTo 0
       
        Set wdDoc = wdApp.Documents.Add(tTmp)

       ... Code zur Übergabe der Daten 

        wdApp.Visible = True
        AppActivate wdApp.Caption

    Ich verwende diesen Aufruf in zwei verschiedenen Subs. Das funktioniert unter 2003 auch problemlos.
    Unter 2010 erhalte ich in einer Sub an der Stelle
    AppActivate wdApp.Caption
    die Meldung "Ungültiger Prozeduraufruf oder ungültiges Argument".

    In der zweiten Sub kommt an der Stelle
    Set wdApp = GetObject(, "Word.Application")
    die Meldung "Objekterstellung durch ActiveX-Komponente nicht möglich".

    Wie gesagt unter 2003 läuft dieselbe Anwendung problemlos, es wurde also keine Konveierung oder ähnliches durchgeführt.
    Hat sich da irgend etwas an den Klassen geändert? Oder woher könnte das Problem kommen?

     

    Vieln Dank schon mal
    Maik

    Freitag, 4. Februar 2011 10:23

Antworten

  • Hallo Josef,

    wdApp.Caption hat "Microsoft Word" als Inhalt. Der Code steigt an der Stelle aus. AmKompatibilitätsmodus kann es auch nicht liegen, denn mit einer docx als Vorlage kommt derselbe Fehler.

    Mit wdDoc.Activate funktioniert es. Der zweite Fehler war ein auskommentiertes On error resume next.

    Vielen Dank nochmal für die Problemlösung

    Maik

    • Als Antwort markiert Maik Hahmann Montag, 7. Februar 2011 13:14
    Montag, 7. Februar 2011 09:10

Alle Antworten

  • Hallo Maik,

     

    hast du schon einmal nach eventuell fehlerhaften Verweisen gesucht?

     

     


    Cheers, Jörn Bosse
    Microsoft Studentpartner
    Samstag, 5. Februar 2011 14:54
  • Hallo Jörn,

     

    ja, die Verweise hab ich geprüft. Entsprechen denen unter 2003 (nur O11 durch O14 ersetzt).
    Merkwürdig ist ja auch, dass die erste Sub, die bei AppActivate wdApp.Caption den Fehler wirft, ein Word-Dokument erzeugt, während die andere schon beim Aufruf abbricht.

    Hat noch jemand eine Idee, wo ich suchen könnte?

    Maik

    Montag, 7. Februar 2011 07:35
  • Hallo!

    Maik Hahmann schrieb:
    [...]

    Ich verwende diesen Aufruf in zwei verschiedenen Subs. Das funktioniert unter 2003 auch problemlos.
    Unter 2010 erhalte ich in einer Sub an der Stelle /AppActivate wdApp.Caption
    /die Meldung "*Ungültiger Prozeduraufruf oder ungültiges Argument*".

    Wie sieht der Inhalt von wdApp.Caption an dieser Stelle aus?
    Vielleicht spielt dir der Kompatibilitätsmodus (.doc statt .docx) einen Streich.

    BTW: Warum nutzt du eigentlich nicht wdApp.Activate und wdDoc.Activate?´

    In der zweiten Sub kommt an der Stelle
    Set wdApp = GetObject(, "Word.Application")
    die Meldung "*Objekterstellung durch ActiveX-Komponente nicht möglich*".

    Diese Meldung passt, wenn kein Word offen ist.
    Falls ein On error resume next nicht wirkt, hast du vermutlich in den VBA-Optionen die Einstellung "Bei jedem Fehler unterbrechen" aktiviert.

    mfg
    Josef


    Code-Bibliothek für Access-Entwickler
    AccUnit - Testen von Access-Anwendungen
    Montag, 7. Februar 2011 08:19
  • Hallo Josef,

    wdApp.Caption hat "Microsoft Word" als Inhalt. Der Code steigt an der Stelle aus. AmKompatibilitätsmodus kann es auch nicht liegen, denn mit einer docx als Vorlage kommt derselbe Fehler.

    Mit wdDoc.Activate funktioniert es. Der zweite Fehler war ein auskommentiertes On error resume next.

    Vielen Dank nochmal für die Problemlösung

    Maik

    • Als Antwort markiert Maik Hahmann Montag, 7. Februar 2011 13:14
    Montag, 7. Februar 2011 09:10