|
| |

VB.NET - Ein- und Umsteiger| Word2003-Template ausfüllen | |  | | Autor: graui | | Datum: 14.04.05 13:37 |
| Hallo Forum,
Seit dem Update auf Office 2003 funzt das Ausfüllen von Briefvorlagen über meine .net-Application nicht mehr.
Problem: Ab und zu, mal auf dem einen, mal auf dem anderen Rechner, findet mein Programm die Textfelder im Word nicht mehr (kann nicht initialisieren).
Ich vermute irgend ein Zeitverhalten.
Ähnliches passiert auch sporatisch in einem XLS-Sheet, bei dem ich im Ereignis "Workbook.open" (VBA) eine Dropdownlist füllen will: Sporatisch kommt Fehler, beim Debuggen wird das Objekt nicht erkannt.
Ich Vermute: Die Office 2003 Appliactions melden der Client-Anwendung über die COM zu früh dass das Objekt (Word.Dokument, Excel.Workbook) initialisiert ist, und damit macht die Client-Anwendung zu früh weiter. Würde auch die Angeleenheit mit dem VBA im Excel erklären: Der VBA-Interpreter ist ja eigentlich auch die Client-Anwendung, Excel der Server.
Kennt zufällig jemand die Lösung?
Codeausschnitt aus dem .net-Projekt
'Word Initialisieren:
Dim Wordapp As Word.Application, worddoc As Word.Document
Try
Wordapp = GetObject(, "Word.Application")
Catch ex As Exception
MessageBox.Show("Error filling Letter: Word Application not found", _
"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MausNorm(Me)
Exit Sub
End Try
Dim DocFound As Boolean = False
'Document suchen:
For Each worddoc In Wordapp.Documents
If worddoc.Name.ToLower = (fFilename & "." & fFileExt).ToLower Then
DocFound = True
Exit For
End If
Next
If DocFound = False Then
MausNorm(Me)
MessageBox.Show("Error filling Letter: Document in Word not found", _
"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End If
Wordapp.Visible = True
'Dienst- oder Privateadresse:
'Erste Bremse
Dim Useprivate As Boolean = False
If FillRecip = True Then
If MessageBox.Show("Use the private address for the letter?", _
"Select NO for Business", MessageBoxButtons.YesNo, _
MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = _
DialogResult.Yes Then
Useprivate = True
End If
End If
Dim fld As Word.FormField
'Weitere Daten zum Project:
Dim CustRow As PPL.dsCustList.tblCustRow = _
CustList.objdsCustList.tblCust.Item(CustList.BindingContext( _
CustList.objdsCustList, "tblCust").Position)
Dim ProjRow As PPL.dsProjList.tblProjRow = _
ProjList.objdsProjList.tblProj.Item(ProjList.BindingContext( _
ProjList.objdsProjList, "tblProj").Position)
Dim OrderRow As PPL.dsOrderList.tblOrdersRow = _
OrderList.DsOrderList1.tblOrders.Item(OrderList.BindingContext( _
OrderList.DsOrderList1, "tblOrders").Position)
'Leere Textfelder ausschließen:
Dim i As Integer = 0
If FillRecip = True Then
Do
Try
If AddrRow.Item(i) Is DBNull.Value Then AddrRow.Item(i) = ""
Catch ex As Exception
If ex.Message.Substring(0, 11) = "Cannot find" Then Exit Do
If i > 50 Then Exit Do
End Try
i += 1
Loop
End If
For Each fld In worddoc.FormFields
Select Case fld.Name
Case Is = "txtAdress1"
If FillRecip = False Then Exit Select
If Useprivate = True Then 'Name
fld.Result = AddrRow("aFirstName") & " " & AddrRow( _
"aLastName")
fld.TextInput.Default = AddrRow("aFirstName") & " " & _
AddrRow("aLastName")
Else
fld.Result = AddrRow("abCompany") 'Firma
fld.TextInput.Default = AddrRow("abCompany")
End If
Case Is = "txtAdress2"
If FillRecip = False Then Exit Select
If Useprivate = True Then 'leer
fld.Result = ""
fld.TextInput.Default = ""
Else
fld.Result = AddrRow("abDepartment") 'Abteilung
fld.TextInput.Default = AddrRow("abDepartment")
End If
.
.
. |  |
 Word2003-Template ausfüllen | 1.142 | graui | 14.04.05 13:37 |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevOutBar 4.0 
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|