Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Frank77 am Januar 14, 2016, 21:45:30

Titel: Testfelder in Word Füllen
Beitrag von: Frank77 am Januar 14, 2016, 21:45:30
Hallo!

Ich habe da ein Problem mit dem füllen von Text Marken in Word das Problem liegt aber nicht am Code der hat früher schon Funktioniert
die Felder werden auch gefüllt allerdings nicht alle

ich habe aber neue hinzugefügt und diese werden  nun nicht mehr gefüllt und geben den Laufzeitfehler "6028: Bereich kann nicht nicht gelöscht werden"

ich kenne mich in Word nicht so aus und wo ich das erstellt habe ist schon 2 jhare her oder so

kann es sein das Word Bereiche sperrt wo die Text Marken sind ?

ich habe keine Ahnung wo ich suchen soll
im Bild sind die Felder die den Fehler geben noch grau daher zum Test das
On Error Resume Next

Absender111 habe ich nur so benannt da ich gelesen habe es kann vielleicht an der Benennung liegen

das Dokument ist in 2 Formaten in der zip

hier mal der Code der ist aber nicht das Problem


Public Sub SetBookmark(wdDok As Object, strBookmark As String, _
                       varWert As Variant)
    On Error Resume Next
    If Not wordObj Is Nothing Then
        If wdDok.Bookmarks.Exists(strBookmark) = True Then
            With wdDok.Bookmarks(strBookmark).Range
                If Trim$(Nz(varWert, "")) <> "" Then
                    .Text = varWert
                Else
                    .Delete
                End If
            End With
        End If
    End If
End Sub


SetBookmark wordDoc, "Absender111", rst!Absender
SetBookmark wordDoc, "Fax", rst!Fax
SetBookmark wordDoc, "Email", rst!Email
SetBookmark wordDoc, "TelefonNr", rst!TelefonNr
SetBookmark wordDoc, "Inhaber", rst!Inhaber
'Test der anderen felder
SetBookmark wordDoc, "Firma", "test"
SetBookmark wordDoc, "PersAnrede", "test"
SetBookmark wordDoc, "Name", "test"
SetBookmark wordDoc, "Adresse", "test"
SetBookmark wordDoc, "Ort", "test"
SetBookmark wordDoc, "BriefID", "test"
SetBookmark wordDoc, "Betreff", "test"
SetBookmark wordDoc, "Anrede", "test"
SetBookmark wordDoc, "Veranstaltungen", "test"
SetBookmark wordDoc, "Datum", "test"


Titel: Re: Testfelder in Word Füllen
Beitrag von: MaggieMay am Januar 14, 2016, 22:30:19
Hi,
ZitatBereich kann nicht nicht gelöscht werden
du solltest die Fehlermeldung schon wörtlich nehmen.
Du kannst die Delete-Methode nicht auf die Range-Eigenschaft der Textmarke anwenden, es ist die Textmarke selbst, die du löschen willst.

Also ginge es so:
            With wdDok.Bookmarks(strBookmark)
                If Trim$(Nz(varWert, "")) <> "" Then
                    .Range.Text = varWert
                Else
                    .Delete
                End If
            End With


Titel: Re: Testfelder in Word Füllen
Beitrag von: Frank77 am Januar 15, 2016, 02:52:10
Hallo!

Danke erstmal für deine mühe !
Das behebt leider den fehler nicht
es kommt immer noch die fehlermeldung 6028 in der zeile
.Range.Text = varWert

Der witz ist ja das alle felder in denen Test auf dem bild steht es geht
aber bei denen die grau sind der fehler ensteht
es gibt keinen erkennbaren unterschied zwischen den feldern in den eigenschaften
9 Funktionieren und 5 erzeugen den fehler und es sind immer die gleichen

Titel: Re: Testfelder in Word Füllen
Beitrag von: MaggieMay am Januar 15, 2016, 09:25:45
Hallo,

die Fehlermeldung passt mAn nicht zu der gezeigten Codezeile.

Welche Datenfelder liefert denn die Abfrage, hast du das schon mal überprüft?
Und was kommt an in der Prozedur "SetBookmark"?
Oft hilft der Test im Unterbrechungsmodus, um die Fehlerursachen zu erkennen.

Wenn du den vollständigen Code zeigen oder eine Beispiel-DB hochladen könntest, dann könnte man sich das mal ansehen.
Titel: Re: Testfelder in Word Füllen
Beitrag von: Frank77 am Januar 15, 2016, 16:17:50
Hallo!

ich hab eine test DB als Access 2010 ( Weis nicht obs anderst auch geht  zum testen ) hochgeladen und überall ein Debug.Print eingefügt

Die Function SetBookmark ist im modul mdl_Word_Global
da habe ich aber noch die on Error anweisung drin damit es voll durchläuft und ich das Debug.Print sehe   die einfach auskommentieren

Bei mir ist es so das ich die vorlagen im Ordner "Test DB\Vorlagen\Word\Eigene"
einmal öfnen muss und die bearbeitung aktivieren sonst gehts nicht

gruß Frank
Titel: Re: Testfelder in Word Füllen
Beitrag von: DF6GL am Januar 15, 2016, 17:54:45
Hallo,

ich würde die Formularfelder, die mit den Textmarken gekennzeichnet sind, alle herauswerfen und normal geschriebenen Text mit einer Textmarke belegen.

Vermutlich liegt der Range bei den betroffenen Stellen nicht im Formularfeld, sondern das Formularfeld selber ist mit der Textmarke bezeichnet.
Titel: Re: Testfelder in Word Füllen
Beitrag von: Frank77 am Januar 15, 2016, 20:44:51
Hallo!

ich hab ein neues Dokument genomen und die Felder an der stelle eingefügt wo ich sie haben möchte über Entwicklertools / Formulare aus Vorversion so wie ich das damals erstellt hab (soweit ich noch weis )

jetzt geht keins mehr und immer noch der gleiche laufzeit fehler und ich hab keine ahung warum
auch wenn ich den text schreibe ihn markiere und auf vormularfeld klicke gehts auch nicht

ich hab mal das neue dokument angehängt
Titel: Re: Testfelder in Word Füllen
Beitrag von: DF6GL am Januar 16, 2016, 10:44:04
Hallo,

und warum setzt Du nicht meinen Vorschlag um?

Zudem ich den Grund des "Nicht Gehens" ja schon erwähnt habe...


An der Textmarke für "Absender" kannst Du Dich ja selber versuchen...
Titel: Re: Testfelder in Word Füllen
Beitrag von: Frank77 am Januar 16, 2016, 11:09:04
Hab erst nicht ganz verstanden was du meintest da ich nicht wusste wo ich suchen muss

Hab unter Word 2010 folgendes angeschaltet jetzt kann ich das wenigstens sehen

Einstellungen  >  Erweitert  >  Dokumenteninhalt anzeigen  >  Textmarken anzeigen  Aktiviert

Dann das Steuerelement raus und an derselben Stelle eine Textmarke eingefügt  allerdings über

Einfügen > Hyperlinks > Textmarke

Und es funktioniert

Auf die anderen Textmarken Kamm ich wohl über ,, Programmiere Rezepte Access ,,
Da werden die Felder Gefüllt mit
.FormFields("Test").Result = Variable
"BLEIBEN DANN ABER GRAU" Und nicht wie bei meiner alten Lösung das sie dann weg sind

Aller Dinges weiß ich noch immer nicht warum es bei  einigen der grauen klappt und bei anderen nicht
mein problem ist zwar gelösst nur das mysterium der grauen felder bleibt noch offen 

http://www.vba-wordwelt.de/word-mit-vba/dokumentinhalte/textmarken/ (http://www.vba-wordwelt.de/word-mit-vba/dokumentinhalte/textmarken/)
Titel: Re: Testfelder in Word Füllen
Beitrag von: Frank77 am Januar 16, 2016, 12:39:52
Bei einem normalen Steuerelement funktioniert es dann so
Public Sub SetBookmark(wdDok As Object, strBookmark As String, _
                       varWert As Variant)
    Dim i As Integer
    With wdDok
        If .ContentControls.Count > 0 Then
            For i = 1 To .ContentControls.Count
                If .ContentControls(i).Title = strBookmark Then
                    .ContentControls(i).Range.Text = Trim$(varWert)
                    Exit For
                End If
            Next
        End If
    End With
End Sub

Allerdings nicht bei den grauen Feldern
Titel: Re: Testfelder in Word Füllen
Beitrag von: DF6GL am Januar 16, 2016, 14:43:37
Hallo,


wir diskutieren aneinander vorbei.....  >:(

Schau Dir mal den Anhang in meinem letzten Posting an.....

Ich frage mich, warum Du dauernd auf den absolut unnötigen Formularfeldern herum eierst.  Lass die einfach weg und alles ist gut.

Zitat
Aller Dinges weiß ich noch immer nicht warum es bei  einigen der grauen klappt und bei anderen nicht
mein problem ist zwar gelösst nur das mysterium der grauen felder bleibt noch offen

Ich wiederhole mich:

Die Textmarke kennzeichnet das gesamte Control an sich und nicht dessen Inhalt, der durch Text ersetzt werden könnte....
Titel: Re: Testfelder in Word Füllen
Beitrag von: Frank77 am Januar 16, 2016, 16:05:44
 :o den anhang hat ich obersehen war mit handy online  ;D

Verstehe das sind die gleichen die ich auch erstellt hab nur habe ich keinen text makiert und dann die marke eingefügt sondern an der Courser stelle

Kommt ja untern strich fast aufs gleiche raus

ich eier nicht auf den grauen feldern rum mich nervts nur wenn ich nicht weis warum es so ist  in den fall gibt auser S/W auch noch grau  ;D

Aber danke für die mühe war sehr hilfreich
Gruß Frank

Edit:
Die grauen text marken einfach markieren dann auf Einfügen > Hyperlinks > Textmarken und das Steuerelement ist als anprechbare Textmarke bearbeitbar
die lösung war eigentlich ganz simpel