Gebruik Trim Len Replace, ......

Status
Niet open voor verdere reacties.

Dolfke

Gebruiker
Lid geworden
18 apr 2008
Berichten
195
Hoi allemaal,

Ik ben niet zo sterk in het gebruik van de functies Trim , Instr , replace, ....
Ik heb gezien dat je zeer veel kunt doen met deze functies en hierbij ook mijn volgende vraag.

In een textbox heb ik een text die geimporteerd is.
Deze tekst zou een beetje uitgelijnd worden.

De geimporteerde tekst in het kort
Code:
1)geef hier de toestand aan van de wagen:|- Stond de motor [aan/uit]:AAN|-	Stond het contact [aan/uit]:AAN|-	Stond de radio [aan/uit]:AAN|-	Welk scherm wordt getoond op de SYNC3 Display [audio scherm home scherm navigatie scherm Telefoon ...]:AUDIO SCHERM|-	Welke audio-bron was actief: [DAB FM AM CD USB BT Audio Android Auto Car play]: FM|- Welke zenderband/zenderlijst was actief [FM1-FM2-FM-AST-DAB1-DAB2-AM1-AM2-AM-AST]:FM1|

Zou moeten worden
ook lettend op begin " - " 1x spacie en dan het beginnen van zin.

Code:
1)geef hier de toestand aan van de wagen:

- Stond de motor [aan/uit]: AAN
- Stond het contact [aan/uit]: AAN
- Stond de radio [aan/uit]: AAN
- Welk scherm wordt getoond op Display [audio scherm home scherm navigatie scherm Telefoon ...]: AUDIO SCHERM
- Welke audio-bron was actief: [DAB FM AM CD USB BT Audio Android Auto Car play]: FM
- Welke zenderband/zenderlijst was actief [FM1-FM2-FM-AST-DAB1-DAB2-AM1-AM2-AM-AST]: FM1

Merciekes , Groetjes Dolfke.
 
Je kunt niet helemaal het door jou gewenste effect krijgen, omdat je resultaat afwijkt van wat je aanlevert. En dat maakt het lastig. Je zult een functie moeten gebruiken die het | teken vervangt door een regeleinde. Deze functie doet dat:
Code:
Function VervangTeken()
Dim strSQL As String
    strSQL = "UPDATE TABELNAAM SET [TEKSTVELD2] = Replace([TEKSTVELD1],'|',Chr(13) & Chr(10))"
    CurrentDb.Execute strSQL, dbFailOnError
End Function

Als je hem uitvoert (je tekstveld moet dan wel een memoveld zijn, maar gezien de tekstlengte (>255) zal dat wel) zul je zien dat je regels daarna netjes onder elkaar staan. Maar dan zonder de extra witregel, want die lever je dus niet aan in het originele veld. Voor de zekerheid werk ik een apart tekstveld bij zodat je de oorspronkelijke veldwaarden niet verliest.
 
Hoi Octa,

Bedankt voor de suggestie .

Code:
 Larray = Replace(Larray, "|", vbCrLf)

  WRDArray() = Split(Larray, vbCrLf)
  For I = LBound(WRDArray) To UBound(WRDArray)
      If Left(WRDArray(I), 1) = "-" Then
         StrTest = Right(WRDArray(I), Len(WRDArray(I)) - 1)
         StrTest = LTrim(StrTest)
         StrTest1() = Split(StrTest, "]:")
         StrQuestion = StrTest1(0) & "]:"
         If UBound(StrTest1) > 0 Then
            StrAnswer = StrTest1(1)
         End If
         If Len(StrAnswer) > 0 Then
           Strg = Strg & "<br>" & "-" & StrQuestion & "<b>" & UCase(StrAnswer) & "</b>"
         Else
              Strg = Strg & "<br>" & "-" & StrQuestion
         End If
      Else
        If Len(Strg) > 0 Then
           Strg = Strg & "<br>" & WRDArray(I)
        Else
           Strg = WRDArray(I)
        End If
      End If
  Next I

Me.Parent.TXTComment = Strg

Moet de code nog een beetje opschonen maar,
ik ben echter na veel puzzelen en proberen tot bovenstaande opmaak gekomen .
Teskveld opmaak zet ik als een acTextFormatHTMLRichText zodat uitkomst vet weergegeven kan worden.

Heb echter een groot en gekent probleem bij access bij het memo veld als dit geupdate moet worden als er meer dan 2000 karakters gebruikt zijn.
hier maak access problemen bij waardoor er een error 3188 gevormd wordt "Could not update; currently locked by another session on this machine"

Bedankt, mvg Dolfke
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan