none
vba Zugriff auf Formular Checkbox RRS feed

  • Frage

  • Hallo Gemeinde.

    Ich greife per MS Access Event unter anderem auf eine Wordvorlage zu (Vers. 2010). Dort werden bereits erfolgreich einige Formularfelder mit Werten aus der Datenbank befüllt. Jedes Steuerelemet hat dort einen Namen (z. B. "F0015") und ich lehne mich da an diese Lösung an: http://www.vba-wordwelt.de/word-mit-vba/dokumentinhalte/textmarken/code-beispiele_textmarken/tm-fuellenundneusetzen_range.html

    Was mir allerdings bislang nicht gelingt, ist es bei Bedarf Checkboxen anzukreuzen.

    Die Checkboxen in Word stammen ebenfalls aus der Toolbox im Reiter Entwicklertools und ist aus der Steuerelemetesammlung "Formulare aus Vorversionen".

    So etwas fuktioniert auch nicht:

    [...]
    
    CB_fuellen "F0012", 1
    
    [...]
    
    
    Function CB_fuellen(ByVal CB As String, ByVal MyValue As Boolean) As Boolean
    
    CB_fuellen = False
    If MyValue = 0 Then Exit Function
    docWord.ContentControls(CB).Checked = True
    CB_fuellen = True
    
    End Function

    Kann mir jemand von Euch weiterhelfen? Ich hatte es auch schon probiert mit CB As ContentControl im Funktionsaufruf, war aber auch Essig.

    Vielen Dank für Eure Tipps!

    Freitag, 9. Dezember 2016 16:07

Antworten

  • Danke für den Tipp. Manchmal sieht man ja vor lauter Bäumen den Wald nicht mehr :-)

    Ausgehend von deinen Links habe ich nun folgende funktionierende Lösung gefunden:

    Function CB_fuellen(ByVal CB As String, ByVal MyValue As Boolean) As Boolean
    CB_fuellen = False
    If MyValue = 0 Then Exit Function
    
    Set ffield = ActiveDocument.FormFields(CB).CheckBox
    ffield.Value = True
    
    CB_fuellen = True
    End Function
    

    Danke für die richtige Spur

    • Als Antwort markiert EL Reisi Sonntag, 11. Dezember 2016 15:01
    Sonntag, 11. Dezember 2016 15:01

Alle Antworten

  • Am 09.12.2016 schrieb EL Reisi:

    Was mir allerdings bislang nicht gelingt, ist es bei Bedarf Checkboxen anzukreuzen.

    Die Checkboxen in Word stammen ebenfalls aus der Toolbox im Reiter Entwicklertools und ist aus der Steuerelemetesammlung "Formulare aus Vorversionen".

    Soeben probiert:

    Private Sub CheckBox1_Click()
    Dim i As Integer
    i = Me.CheckBox1.Value
    Debug.Print i
    End Sub

    Wird die checkbox aktiviert, ist i -1, ansonsten 0. Evtl. hilfts.

    Servus
    Winfried


    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/
    HowTos zum WSUS Package Publisher http://www.wsus.de/wpp
    GPO's: http://www.gruppenrichtlinien.de
    NNTP-Bridge für MS-Foren: http://communitybridge.codeplex.com/

    Freitag, 9. Dezember 2016 18:18
  • Nö, da hast du mich missverstanden.

    Ich öffne per vba-Code aus MS Access heraus ein vorbereitetes Worddokument. In diesem Dokument gibt es eine Checkbox, ein sogenanntes Formularfeld (kein eigenständiges Formular) und das soll automatisiert bearbeitet werden. Danach wird Word wieder geschlossen und es geht wieder in Access weiter.

    Was ich also suche ist: Wie spreche ich dieses Steuerelement von aussen her an. Alle anderen textbasierten Formularfelder lassen sich ja anspreechen (siehe Link oben).

    Danke für deine Mühe

    Reisi

    Freitag, 9. Dezember 2016 18:32

  • Wenn ich http://www.office-loesung.de/ftopic500860_0_0_asc.php richtig verstanden habe, könnte dir das evtl. helfen:

    [code] 'Dein Code docWord.ContentControls("F0012").Checked = True [/code]

    [code] 'Der Code aus dem Forum oDoc.SelectContentControlsByTitle("F0012").Item(1).Checked = True [/code]

    Aber vielleicht ist es ja auch das hier: https://msdn.microsoft.com/de-de/library/office/ff839720.aspx https://msdn.microsoft.com/de-de/library/office/ff197575.aspx

    Servus

    Winfried

    --

    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/ HowTos zum WSUS Package Publisher http://www.wsus.de/wpp

    GPO's: http://www.gruppenrichtlinien.de

    NNTP-Bridge für MS-Foren: http://communitybridge.codeplex.com/

    Freitag, 9. Dezember 2016 19:10
  • Danke für den Tipp. Manchmal sieht man ja vor lauter Bäumen den Wald nicht mehr :-)

    Ausgehend von deinen Links habe ich nun folgende funktionierende Lösung gefunden:

    Function CB_fuellen(ByVal CB As String, ByVal MyValue As Boolean) As Boolean
    CB_fuellen = False
    If MyValue = 0 Then Exit Function
    
    Set ffield = ActiveDocument.FormFields(CB).CheckBox
    ffield.Value = True
    
    CB_fuellen = True
    End Function
    

    Danke für die richtige Spur

    • Als Antwort markiert EL Reisi Sonntag, 11. Dezember 2016 15:01
    Sonntag, 11. Dezember 2016 15:01