vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Zugriff auf Word Templates 
Autor: NittyGritty
Datum: 25.11.10 14:05

Guten Tag Ihr Helfenden...

Ich habe ein Problem beim Aufruf bzw. Zugriff auf ein Word-Template welches mich fast zum Verzweifeln bringt. Ich möchte das besagte Template aus meinem Programm heraus starten und angelegte Formularfelder mit Daten füllen. Das ganze ist eigentlich eine sehr simple Angelegenheit und sieht zunächst folgendermaßen aus:

Friend Sub ffrmCreateReport()
 
        Dim appWD As New Microsoft.Office.Interop.Word.Application
        Dim docWD As New Microsoft.Office.Interop.Word.Document
 
        appWD.Visible = True
        docWD = appWD.Documents.Add("Template.dot")
 
        docWD.FormFields("txtz2").Result = Me.txtz2.Text
        docWD.FormFields("txtDs").Result = Me.txtDS.Text
        docWD.FormFields("txtHNominal").Result = Me.txtHnominal.Text
        docWD.FormFields("txtHubRatio").Result = Me.txtHubRatio.Text
        docWD.FormFields("txtGravity").Result = Me.txtGrav.Text
        docWD.FormFields("txtAlphaShaft").Result = Me.txtAlphaShaft.Text
 
End Sub
Das Problem besteht darin dass beim Anlegen der Word-Application von Word ein Warnfenster aufgeht mit dem Text: "Dies ist kein gültiges Maß" welches sich in den Vordergrund drängt und ich beim Ansprechen der Formularfelder in einen Fehler laufe.
Diese Meldung hängt wohl mit der Einstellung des Dezimltrennzeichens zusammen, welches bei mir im System ein "." ist. Wenn ich es auf "," stelle kommt diese Meldung nicht. Ich hoffe doch aber es gibt hierfür eine andere Lösung als das umzustellen!? Kennt jemand den genauen Grund für diese Meldung und eine Möglichkeit sie zu verhindern? Wie gesagt, die Meldung hängt nicht mit der Wordvorlage zusammen da unabhängig wie diese aussieht schon bei der Zeile

Dim appWD As New Microsoft.Office.Interop.Word.Application
das Fenser aufgeht.



Ich habe auch schon mit dem Gedanken gespielt irgend einen Befehl an die Application zu senden, abzufragen ob er erfolgreich war und wenn nicht eifach ein "Return" zu senden um die Meldung zu quittieren:

        On Error Resume Next
 
        appWD.ActiveDocument.Activate()
 
        If Err.Number <> 0 Then
            My.Computer.Keyboard.SendKeys("~")
            Err.Clear()
        End If
 
        On Error GoTo 0
Allerdings kommt es hier vor dass der Return bei einem falschen Fenster landet, was auch nicht unbedingt der Hit ist! Also bräuchte ich hierzu eine Funktion die sicherstellt dass der Befehl an Word gesendet wird!? Ich dachte vieleicht durch Ermittlung des Fensterhandles und einem Befehl wie SetForegroundWindow, doch war ich hierbei nicht erfolgreich.



Eine andere Idee war es das Template einfach als Prozess aufzurufen:
 Friend Sub ffrmCreateReport()
 
        Dim proWD As System.Diagnostics.Process
 
        proWD = System.Diagnostics.Process.Start("Template.dot")
 
 End Sub
Auf diese Weise kommt die Warnmeldung nicht, allerdings sehe ich keine Möglichkeit jetzt die Formularfelder anzusprechen. Gibt es eine Möglichkeit?



Hat von Euch jemand eine Lösung, Idee oder einen Vorschlag?
Ich setze meine ganze Hoffnung in Euch...

Vielen Dank..
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zugriff auf Word Templates1.644NittyGritty25.11.10 14:05

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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