PDA

Vollständige Version anzeigen : problem mit word-übergabe


jan99
10.05.2004, 08:30
ich habe ein dem quellcode meines formulares eine funktion für die anbindung von word - diese funktioniert auch !

nun habe ich den code hierfür in ein eigenständiges modul überführt und bekomme in der zeile

Set WordObj = GetObject(, "Word.Application")

die fehlermeldung, dass eine objekterstellung zu einer activeX-Komponente nicht möglicht ist !

woran kann soetwas liegen ???

vielen dank im voraus.

gruß Jan :-)

piano
10.05.2004, 10:57
Hallo
Kannst Du etwas mehr vom Code herzeigen (speziell die davorliegenden Zeilen!)

jan99
10.05.2004, 11:09
....
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public Sub</span> Brief_Bestaetigung_Kuendigung(NameWordVorlage <span class="TOKEN">As</span> String, ReferenzForm <span class="TOKEN">As</span> Form)
<span class="REM"> 'Quelle:</span>
<span class="TOKEN">Dim</span> WordObj <span class="TOKEN">As</span> Word.Application
<span class="TOKEN">Dim</span> Tmp, RS <span class="TOKEN">As</span> DAO.Recordset, db <span class="TOKEN">As</span> DAO.Database
<span class="TOKEN">Dim</span> CurDir <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> WordDoc <span class="TOKEN">As</span> Word.Document
<span class="TOKEN">Dim</span> CounterErrorData2Word <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
<span class="TOKEN">Dim</span> strName <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> strStrasse <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> strOrt <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> strDatum <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> strNameInAnrede <span class="TOKEN">As</span> <span class="TOKEN">String</span>
&nbsp;
&nbsp;
<span class="REM"> 'Maus verwandelt sich in Sanduhr</span>
DoCmd.Hourglass <span class="TOKEN">True</span>
&nbsp;
<span class="TOKEN">Set</span> db = CurrentDb()
&nbsp;
<span class="REM"> 'Fehlerroutine</span>
<span class="REM">' On Error Resume Next</span>
Err.Clear
&nbsp;
<span class="REM"> ' On Error GoTo Err_MsgWordNotPossible</span>
&nbsp;
<span class="REM"> 'Setzen der Wordapplikation</span>
<span class="TOKEN">Set</span> WordObj = GetObject(, &quot;Word.Application&quot;)
<span class="TOKEN">If</span> Err.Number &lt;&gt; 0 <span class="TOKEN">Then</span> <span class="TOKEN">Set</span> WordObj = CreateObject(&quot;Word.Application&quot;)
<span class="TOKEN">On Error GoTo 0</span>
&nbsp;
&nbsp;
<span class="REM"> 'erstellen der SQL-Abfrage</span>
<span class="REM"> 'Set RS = DB.OpenRecordset(&quot;SELECT * FROM Mitgliederdaten ORDER BY Firma, Abteilung, Nachname, Vorname&quot;, dbOpenDynaset)</span>
&nbsp;
<span class="REM"> 'Word-Applikation sichtbar</span>
WordObj.Application.Visible = <span class="TOKEN">True</span>
&nbsp;
<span class="REM"> 'ermitteln des aktuellen Verzeichnisses</span>
CurDir = Mid(db.Name, 1, InStr(db.Name, Dir(db.Name)) - 1)
&nbsp;</pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)



AD: Smilies wurden deaktiviert.

piano
10.05.2004, 12:43
Hallo
Leicht umgebaut:
Public Sub Brief_Bestaetigung_Kuendigung()
Dim WordObj As Object
Dim Tmp, RS As DAO.Recordset, db As DAO.Database
Dim CurDir As String
Dim WordDoc As Object
Dim CounterErrorData2Word As Integer
Dim strName As String
Dim strStrasse As String
Dim strOrt As String
Dim strDatum As String
Dim strNameInAnrede As String


'Maus verwandelt sich in Sanduhr
DoCmd.Hourglass True

Set db = CurrentDb()

'Fehlerroutine
' On Error Resume Next
Err.Clear

On Error GoTo Err_MsgWordNotPossible

'Setzen der Wordapplikation
Set WordObj = GetObject(, "Word.Application")
Err_MsgWordNotPossible_Resume:
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
' ........
GoTo Ende
Err_MsgWordNotPossible:
'MsgBox (Err.Number)
If Err.Number = 429 Then Resume Err_MsgWordNotPossible_Resume
Ende:
End Sub

jan99
10.05.2004, 12:58
hallo piano,

vielen dank für deine hilfe - jetzt wo ich die unterschiede sehe wird mir auch alles klar !

jetzt werde ich das auch erst einmal ausproblieren !

nochmals danke !

gruß Jan :-)