Avatar billede joki Juniormester
12. maj 2010 - 15:45 Der er 10 kommentarer og
1 løsning

Sammenkæde felt fra flere records

Hej


Jeg har en en-mange relation, hvor jeg ønsker at sammenkæde teksten fra sammen felt, men fra 2 forskellige linier i "mange" tabellen"
Er der nogen, som kan hjælpe med dette ?

På forhånd tak
Avatar billede mugs Novice
12. maj 2010 - 16:18 #1
Hvordan vil du have, at Access kan genkende de 2 poster i mange tabellen, som skal sammenkædes med et felt på een siden?
Avatar billede joki Juniormester
12. maj 2010 - 17:00 #2
jeg skitsere lige tabellerne
Der er join på refno, men jeg ønsker at se feltet "tekst4" sammensat i min foresåørgelse hvis der er flere records med samme refno

tabel 1

refno
tekst1
tekst2



tabel 2 (mange tabellen)

refno
tekst3
tekst4
Avatar billede mugs Novice
12. maj 2010 - 18:00 #3
OK - Vender lige tilbage. Min ide går på en DLookUp.

Er der nogen mulighed for at se din db i Access 2003 - Evt send den til:

mugs snabelting mail.dk

som en .zip fil
Avatar billede Slettet bruger
13. maj 2010 - 07:44 #4
Avatar billede mugs Novice
13. maj 2010 - 09:29 #5
Jeg frafalder min ide om en DlookUp. Funktionen finder den første post der opfylder kriterierne og ikke andre.

Se på ellebe's link.
Avatar billede joki Juniormester
13. maj 2010 - 16:22 #6
Har fundet denne løsning, men så gerne det kunne løses i ren sql

http://support.microsoft.com/kb/318642
Avatar billede Slettet bruger
15. maj 2010 - 15:24 #7
Felter fra forskellige records kan kun sammensættes til en post efter kriterier sammenlignede et bestemt antal poster - dermed er det ikke muligt i sql at lave udtryk hvori der indgår et variabelt antal poster.
Northwind eksemplet har, som alt andet fra MS, har den vanlige dokumentation gennem kaskader af ellers overflødige variabel erklæringer og brug af de mere kluntede vba kontrolstukturer - følgende gør det:

Function fieldsList(sql, fldName, Optional sep = ";")
  With CurrentDb.OpenRecordset(sql): While Not .EOF
    fieldsList = fieldsList & .Fields(fldName) & sep: .MoveNext: Wend: End With
  trailRemStr fieldsList, sep
End Function

anvendende - fra gemmerne:

Function trailRemStr(str, Optional trailStr)
    Dim trailLen
    If Not IsMissing(trailStr) Then trailLen = Len(trailStr) Else trailLen = 1
    str = Left(str, Len(str) - trailLen)
    trailRemStr = str
End Function
Avatar billede joki Juniormester
16. maj 2010 - 08:45 #8
Ellebe >> Tak, det må vel være fair nok at du får nogle points :-)
Avatar billede Slettet bruger
17. maj 2010 - 15:49 #9
creditability angående min profil her er uønsket - håber det er i orden at spørgsmålet lukkes med point til dig selv.
Avatar billede Slettet bruger
21. maj 2010 - 11:18 #10
Nu er der jo andet i verden end praktisk anvendelse:

resultat af vba sekvens - 'monteret' i en forespørsel:

'psedo vba
Function foo(table, fld)
    With rsi(table): While Not .EOF: foo = foo & .Fields(fld) & ";": Wend: End With
End Function

sql:
'SELECT foo("<tableName>","<fieldname>") AS foo FROM <table-with id as unique key> WHERE id=dlookup("id","<table-with id as unique key>");
Avatar billede joki Juniormester
29. marts 2011 - 10:08 #11
Lukket
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