[VBA Word XP] tekenreeks te lang

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • clements
  • Registratie: Februari 2002
  • Laatst online: 23:58
hoi allemaal,

ik heb het volgende :
1 document met checkboxes (deze noem ik invoer)
1 document met een tekstvak, geplaatst met behulp van werkbak formulieren. (deze noem ik uitvoer.)

in het document invoer heb ik een stuk of 20 checkboxes staan. De captation van deze checkboxes plaats ik vervolgens in een string NieuweTekst. In het document uitvoer wordt deze string ingevuld in het tekstvak. Nu krijg ik rare dingen. Als ik een korte stuk tekst op deze manier wil invoeren gaat het prima, als de tekst wat langer wordt (ongeveer 300 tekens) krijg ik de volgende foutmelding : Fout 4096 tijdens uitvoering. Tekenreeks te lang.

een string kan volgens de help heeel veel tekens bevatten en het tekstvak in het document uitvoer staat op oneindig lang (=32676 tekens) ingesteld.

wat doe ik of word fout??

PS MS word 2002

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Kan je wellicht een stukje van je code laten zien, want vind het lastig om wat te zeggen na het lezen van je vraag/probleem...

  • clements
  • Registratie: Februari 2002
  • Laatst online: 23:58
ok:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Private Sub CommandVerwerk_Click()

Dim Tb As Variant
Dim i As Integer
Dim acties As String

ChDir "C:\Documents and Settings\Peter\Mijn documenten\test\"
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FolderExists(invoerNaam.Text) Then
    ChDir "C:\Documents and Settings\Peter\Mijn documenten\test\" & invoerNaam.Text
    Documents.Open FileName:="offerte.doc", ReadOnly:=False
    
    ActiveDocument.FormFields("Text1").Result = invoerNaam
    
    Tb = Array(CheckAanleg1, CheckAanleg2, CheckAanleg3, CheckAanleg4, CheckAanleg5, CheckAanleg6, CheckAanleg7, CheckAanleg8, CheckAanleg9, CheckAanleg10, CheckAanleg11, CheckAanleg12, CheckAanleg13, CheckAanleg14, CheckAanleg15, CheckAanleg16, CheckAanleg17, CheckAanleg18, CheckAanleg19, CheckAanleg20)

    acties = ""
    For i = 0 To 18
        If (Tb(i).Value = True) Then
            acties = acties & Tb(i).Caption & Chr(13) & Chr(13)
        End If
    Next i
    ActiveDocument.FormFields("TextAanleg").Result = acties
      
    
    Documents("offerte.doc").Close SaveChanges:=wdSaveChanges
Else
    MsgBox (invoerNaam.Text & " bestaat nog niet. Maak de eerst een nieuwe klant aan!")
End If
 
End Sub


het gaat dus om de actie in regel 23. het tekstveld heet TextAanleg. Met de actie acties worden alle waarden uit de messageboxes achter elkaar geplaatst met 2 enters.

ps de namen van de velden ed. moet ik nog netjes maken!

[ Voor 7% gewijzigd door clements op 23-12-2004 19:41 ]


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Wat zie je overigens als je je tekst eens wegschrijft naar debug.print? Krijg je dan ook een foutmelding?

Je kan overigens ook direct naar het textveld schrijven, ipv een string te concatenaten...

  • clements
  • Registratie: Februari 2002
  • Laatst online: 23:58
ik ben niet zo bekend met die optie. als ik op regel 23
code:
1
Debug.Print acties
invoer ipv
code:
1
ActiveDocument.FormFields("TextAanleg").Result = acties

zie ik niets gebeuren. de help helpt ook niet echt :(

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Als ik jou was zou ik even een breakpunt zetten en dan vervolgens stap voor stap door de code heen lopen. Je moet wel het 'intermidiate' window aanzetten om de debug statements te kunnen zien...

  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 02-06 20:28

CoRrRan

Don't Panic!!!

Oplossing volgens google: [google=formfield+text+result]

1e Zoekresultaat + (mogelijke) oplossing: Microsoft's MVP webpagina

Hopelijk levert dit je iets op... succes.

[ Voor 5% gewijzigd door CoRrRan op 24-12-2004 08:18 ]

-- == Alta Alatis Patent == --


  • clements
  • Registratie: Februari 2002
  • Laatst online: 23:58
hee bedankt voor de tips. de laatste werkte idd. als ik breakpoints gebruikte was het duidelijkt dat het fout liep op de code voor het invullen van het textvak.
ik denk dat ik wat beter moet leren in Google
Pagina: 1