Avatar billede -anders- Juniormester
26. juni 2007 - 15:38 Der er 6 kommentarer og
1 løsning

Sammenlægning af felter i forspørgsel med linjeskift

Hej eksperter

Jeg har en tabel med 9 felter som vist herunder:

Titel
Fornavn
Efternavn
Institution
Adr1
Adr2
Postnr
By
Land

alle 9 felter er af datatypen Tekst. Jeg vil gerne i en forspørgsel i et beregnet felt lægge alle disse felter sammen efter følgende regler:

Linje 1 = Titel
Linje 2 = Fornavn og Efternavn
Linje 3 = Institution
Linje 4 = Adr1
Linje 5 = Adr2
Linje 6 = Postnr og By
Linje 7 = Land

Dette kunne klares med dette eks.

Info:[Titel] & Chr$(13) & Chr$(10) & [Fornavn] & " " & [efternavn & Chr$(13) & Chr$(10) & [Institution] & Chr$(13) & Chr$(10) & [Adr1] & Chr$(13) & Chr$(10) & [Adr2] & Chr$(13) & Chr$(10) & [Postnr] & " " & [By] & Chr$(13) & Chr$(10) & [Land]

Problem:

Ikke alle af de 9 felter er udfyldt med data, så det bliver noget være rod at se på når jeg viser mit infofelt i en formular, linjeskift fortages sådan set fint nok, men det giver tomme linjer når nogle felter ikke altid er udfyldt, det er dette jeg gerne vil undgå.

jeg ved ikke om man kan bruge funktionen Nz på tekstfelter, men uanset hvad kan jeg ikke lige dreje syntaksen, mon der er noget der kan komme med et forslag :o)

Hilsen -anders-
Avatar billede gefion Nybegynder
26. juni 2007 - 16:01 #1
Løsningen er ret kompleks, men er godt beskrevet i bogen Mastering Access 97 af Alison Balters på side 109 (lån den på biblioteket hvis du ikke har den - her er løsningen)
Avatar billede supertekst Ekspert
26. juni 2007 - 16:58 #2
I foresp. forefindes alle felter fra tabellen og ikke andre.
I formularen er opretten en "Etiket"
- en hændelse er oprettet v/aktuel - hvor koden er følgende:

Private Sub Form_Current()
    Etiket0.Caption = ""
    testTom [Titel], "", Null
    testTom [fornavn], " ", [Efternavn]
    testTom [institution], "", Null
    testTom [adr1], "", Null
    testTom [adr2], "", Null
    testTom [postnr], " ", [by]
    testTom [land], "", Null
   
End Sub
Private Sub testTom(felt1, fs, felt2)
    If IsNull(felt1) = True And IsNull(felt2) = True Then
        Exit Sub
    Else
        If IsNull(felt1) = True Then
            felt1 = ""
        End If
       
        If IsNull(felt2) = True Then
            felt2 = ""
        End If
       
        Etiket0.Caption = Etiket0.Caption + felt1 + fs + felt2 + Chr$(13) + Chr$(10)
    End If
End Sub
Avatar billede -anders- Juniormester
26. juni 2007 - 17:18 #3
Hej igen, og tak for indlæggende

supertekst> ideen var at det skulle ske i selve forspørgslen, da jeg skal oprette en ny tabel på baggrund af denne forspørgsel. I den nye tabel vil der så være et felt "Info" af typen Memo, i dette felt står der så alle de oplysninger fra det beregnet felt i forspørgslen. Det skal kun køres en gang, så det overstået :o)
Avatar billede -anders- Juniormester
26. juni 2007 - 17:28 #4
supertekst> jeg har testet din løsning, og det virker fint nok, hvis jeg nu brugte en tekstboks som var bundet til et memofelt i stedet for en etiket, kunne man det, og så bæot skifte post i formularen (der er ialt 476 poster), så det det var da til at kommer over :o)
Avatar billede -anders- Juniormester
26. juni 2007 - 17:29 #5
øhh bæot = blot :o)
Avatar billede -anders- Juniormester
26. juni 2007 - 17:39 #6
supertekst>, ja det kunne man, og har så blot lynhurtigt løbet mine poster igennem i formularen, så nu er det på plads. Mange tak for hjælpen til dig, hvis du poster et svar er der point på vej

gefion>, tak for tippet

Hilsen Anders.
Avatar billede supertekst Ekspert
26. juni 2007 - 23:03 #7
Selv tak - du får et svar
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