Avatar billede -anders- Juniormester
14. december 2005 - 13:23 Der er 13 kommentarer og
2 løsninger

Tekst i beregnet felt i forspørgsel

Hej eksperter

I en tabel har jeg et felt "NavnOgAdresse", dette felt er af datatypen Notat (Memo). Jeg har så en form hvor dette felt optræder, feltet bruges til at indtaste oplysninger om en persons navn, adresse firma, titel, e.t.c. Dte er et must at alle disse oplysninger står i dette ene felt.

Når man indatster oplysninger kommer der jo undervejs nogle linjeskift feks.

Titel, Navn
Adrese
PostNr, By

Eller feks.

Navn
Titel
Adresse
PostNr, by
Land

osv.

Problem:
Jeg ville gerne i et beregnet felt i en forspørgsel have hele indholdet af feltet NavnOgAdresse vist i en lang streng, altså uden linjeskift, der hvor der er et linjeskift skal der i stedet generes et mellemrum feks.

Navn Adresse PostNr by. eller Titel Navn Adresse Postnr By o.s.v.

Er dette muligt
Avatar billede geagleeye Nybegynder
14. december 2005 - 13:36 #1
ja det er det. du skal bruge formatteringer.
man bruger Len funktionerne som er inbygget i vb.
du kan i vb skrive LEN og trykke på F1 så vil du få syntaxten for det.

så du kan formatere så du ikke har mellemrumne derefter er det bare om at sætte tinge sammen.
det kunne eks. gøres ved.
msgbox rec.fields!Navn & rec.fields!Adresse & rec.fields!PostNr by  (osv....)
Avatar billede -anders- Juniormester
14. december 2005 - 13:47 #2
Hej, tak for indlægget, jeg er ikke helt med, da jeg udelukkende arbejder i VBA, her er der også metoden Len, men jeg er ikke helt dus med den
Avatar billede fdata Forsker
14. december 2005 - 18:02 #3
Nu er linieskift jo noget drilsk noget; men du kunne jo prøve simpelthen at erstatte linieskiftene med mellemrum.

Hvis du er i en nyere Access version findes der en funktion: Replace
eller kan man selv skrive en tilsvarende, f.eks.:

Function Udskift(s As String, Fra As String, Til As String) As String
  While InStr(s, Fra) > 0
    s = Left(s, InStr(s, Fra) - 1) & Til & Mid(s, InStr(s, Fra) + Len(Fra))
  Wend
  Udskift = s
End Function

Sub TestUdskift()
  MsgBox Udskift("Ole - Olsen - er - hurtig", " - ", vbCrLf)
End Sub

Eksemplet er "spejlvendt"; men jeg tror ideen fremgår.
Avatar billede fdata Forsker
14. december 2005 - 18:06 #4
I øvrigt:
vbCrLf er i virkeligheden chr(13) efterfulgt af chr(10).
I visse tilfælde kan linieskift dog være et enkelt chr(10) så hvis det ikke virker med vbCrLf, så prøv med chr(10) alene.
Avatar billede terry Ekspert
14. december 2005 - 18:53 #5
you could try using the replace() function
Avatar billede terry Ekspert
14. december 2005 - 19:00 #6
Not sure if you can do this with a memo field (ver.....y long) but it works here

Replace("AAA" & CrLf & "BBB", Val(vbCrlf), " ")
Avatar billede terry Ekspert
14. december 2005 - 19:06 #7
this works in a query with a memo field

Replace([YourMemoField],Chr(13)+Chr(10)," ")
Avatar billede -anders- Juniormester
14. december 2005 - 20:12 #8
Hej,tak for de fine indlæg, jeg har testet de forskellige indlæg, denne fra terry 14/12-2005 19:06:54 har jeg testet med op til 12 linjeskift i memofeltet i formen, det må siges at række til en adresseblok, så jeg har besluttet mig til at anvende Replace som terry forslår i sin sidste kommentar. Så hvis terry poster et svar er point på vej

fdata>> tak for dine indlæg, det har være meget lærerigt :o)

Strengen som kommer ud af det skal benyttes som rowsource i en liste eller i et listview. Mange tak for hjælpen

:o)Anders.
Avatar billede terry Ekspert
14. december 2005 - 20:14 #9
Thanks Anders, I dont mind you sharing out the points, after all its Christmas soon :o)
Avatar billede -anders- Juniormester
14. december 2005 - 20:20 #10
:o)Naturligvis, indlæggende fra fdata fungerede også, men dit forslag var umiddelbart det mest enkle at håndtere, men helt fair at fdata også for point da hans indlæg også fungere 30 til fdata 70 til terry, håber det ok
Avatar billede terry Ekspert
14. december 2005 - 20:22 #11
tak, og god aften
Avatar billede fdata Forsker
14. december 2005 - 22:44 #12
No problemos. Tak for point.
Er bare en anelse forvirret. Jeg foreslog jo rent faktisk Replace i 14/12-2005 18:02:37. Og jeg nævnte opbygningen af vbCrLf.
Men ok, det vigtigste er at du kom videre  ;o)
Avatar billede -anders- Juniormester
14. december 2005 - 23:13 #13
Hej fdata, jeg syntes at metoden fra terry var den mest enkle at håndtere, og den virkede i en forspørgsel som jeg var ude efter. Jeg kender godt til funktionen Replace, men kunne ikke lige se lyset i denne sammenhæng :o).

Det helt fair at du er en smule forvirret da du rent faktisk foreslog replace før terry, men terry rystede op med hele syntaxen lige til at sætte ind i min forspørgsel derfor fik han lidt flere point end du.

jeg syntes at du fortjener samme antal points som terry så jeg opretter lige et spørgsmål med ref. til dette og poster 20 point mere til dig :o)

Hilsen anders
Avatar billede terry Ekspert
15. december 2005 - 08:35 #14
I hadnt actually seen that fdata had suggested using replace, sorry!
Avatar billede fdata Forsker
18. december 2005 - 23:57 #15
Som sagt: No problemos  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester