Avatar billede Claus Mester
01. juni 2010 - 18:10 Der er 4 kommentarer og
1 løsning

Relation mellem to tabeller og felter fejler

I "Tabel 1" har jeg 3 felter, alle tekst.
I "Tabel 2" har jeg ligeledes 3 felter, alle tekst.

Når jeg opretter en relation mellem "Tabel 1: Felt 1" til "Tabel 2: Felt 3" fejler den.

Efter jeg i designvisning af tabel 2 har valgt "Guiden Opslag..." ud for felt 3, defineret felter fra tabel 1 osv. og trykker ok, omdanner Access feltet til et "TAL" felt og det virker ikke i min formular ???

Nogen der ved hvorfor og hvordan jeg løser det?
Avatar billede Slettet bruger
02. juni 2010 - 10:38 #1
Hvis ikke et 'indeks uden dubletter' på tabel1, felt 1 ændrer noget ville jeg konkludere på access's omdannelse af felt 3 til talfelt, at jeg der havde ramt loftet for den pågældende accces versions smartness
Avatar billede Ialocin Novice
03. juni 2010 - 23:17 #2
Hej Nicolaus

Som jeg læser det, har du IKKE oprettet nogen relation mellem tabel 1 og 2 ... kun et opslag i en tabel, baseret på data fra en anden tabel ?

Følgende er sakset fra Access´ hjælpefunktion:
Definere relationer mellem tabeller
Når du opretter en relation (forhold: En tilknytning mellem fælles felter (kolonner) i to tabeller. Et forhold kan være en-til-en, en-til-mange eller mange-til-mange.) mellem tabeller, behøver de relaterede felter ikke at have det samme navn. De relaterede felter skal dog have den samme datatype, medmindre det primære nøgle (primær nøgle: Et eller flere felter (kolonner), hvis værdi eller værdier præsenterer en unik identifikation af hver enkelt post i en tabel. En primær nøgle kan ikke tillade Null-værdier og skal altid have et unikt indeks. En primær nøgle anvendes som relatering fra en tabel til fremmede nøgler i andre tabeller.)felt er et autonummereringsfelt. Du kan kun relatere et autonummereringsfelt med et talfelt, hvis egenskaben Feltstørrelse (FieldSize) for begge de relaterede felter er den samme. Du kan f.eks. relatere et autonummereringsfelt og et talfelt, hvis egenskaben Feltstørrelse for begge felter er Langt heltal. Selv når begge de tilsvarende felter er talfelter, skal de have den samme egenskabsindstilling for Feltstørrelse.


Her er min mulige løsning ?:
Opret et autonummeringsfelt i hver tabel, som unikt indentificerer de enkelte poster.

I tabel 2 skal felt 3 være af datatypen: Tal/number
I designvisning skal felt 3 i tabel 2, på fanebladet "opslag", ændres til en kombinationsboks, hvis rækkekilde skal være tabel 1.
Vælg herefter hvor mange kolonner/felter kombinationsboksen skal medtage ... og til sidst hvor stor de enkelte kolonnebredder skal være.
Ønsker du ikke at se en kolonne, sættes dens kolonnebredde til 0 cm.
Eksempel: Hvis kolonne/felt 4 kun ønskes vist i kombinationsboksen, skal kolonnebredderne se således ud: 0cm;0cm;0cm;2cm

Luk tabellerne og åbn relationsvinduet, hvori der trækkes en relation mellem autonummeringsfeltet i tabel 1 (primærnøgle) til felt 3 (fremmednøgle) i tabel 2

Nu burde du ved hjælp af kombinationsboksen i tabel 2 kunne slå den relaterede post fra tabel 1 op ... symboliseret ved den/de kolonner du har valgt til din kombonationsboks.

Håber det gi´r mening ?

Mvh Nicolai
Avatar billede Claus Mester
04. juni 2010 - 08:52 #3
Hej Nicolai,
Tak for et rigtig godt og uddybende svar.

Det virker! Men jeg undres over, at feltet skal være af typen tal, når det jo er tekst der skal stå i feltet. Er det fordi Access her definerer hvilken række i kolonnen der skal stå, i forhold til Visual Basic - hvor rækken defineres efter et tal?

Smid et svar hvis du vil ha point.
Avatar billede Ialocin Novice
04. juni 2010 - 13:16 #4
Hej Nicolaus


Korrekt :o) ... det ser mærkeligt ud, at feltet skal være af datatypen "tal" ... men det hænger sammen med selve relationen mellem de to tabeller.
Feltet er jo en fremmednøgle, hvilket vil sige en unik nøgleværdi (autonummer, som jo bekendt er et tal) fra den relaterede tabel.

I et mere simpelt sprog, er det der sker, at poster fra to tabeller relateres/knyttes sammen på den ene tabels unikke nøgleværdi (man kan vel sige et unikt post nummer!)

At du så ser tekst i din kombinationsboks ... er bare for nemhedens skyld, i forhold til at identificere hvilken værdi/post du kan vælge, at relatere til ?


Eksempel:
Som skrevet tidligere kan du vælge hvor mange kolonner/felter kombinationsboksen skal medtage ... Og altid mindst 1 kolonne/felt, som skal være det unikke nøglefelt fra den relaterede tabel, da det er den værdi der relateres til (og netop derfor skal feltet, som kombinationsboksen dækker over være af datatypen "tal"!)

Da et nøglefelt "bare" er et tal og dermed ikke fortæller specielt meget om selve dens posts indhold, har du mulighed for at vise noget mere informativt i kombinationsposten!

Med andre ord vælger du, at kombinationsboksen skal vise flere sigende kolonner/felter fra den relaterede tabel end "bare" nøglefeltet, så du har en chance for at genkende indholdet af den post du ønsker at relatere til ?

Antal kolonner/felter valgt til din kombinationsboks vises i den rækkefølge, som de kommer i, i tabellen:
Prøv f.eks. at vælge: 3 kolonner/felter og efterfølgende kolonnebredder til:  2cm;2cm;2cm  ... så vil du få vist alle 3 kolonner/felter i kombinationsboksen
 
Det korte af det lange er:
Kombinationsboksen relaterer til nøgleværdien (et tal) men viser for øjet noget tekst.

Håber ikke forvirringen er total :o)

Mvh Nicolai.
Avatar billede Claus Mester
06. juni 2010 - 10:36 #5
Tak for hjælpen lalocin!
Måske du med din viden kan hjælpe mig med mit spm. her http://www.eksperten.dk/spm/911334 :)
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