Avatar billede zeus Nybegynder
30. september 2000 - 16:49 Der er 14 kommentarer og
1 løsning

oprettelse af ny post i begge tabeller

Jeg har et system hvor jeg har en database over klubmedl. Jeg har 2 tabeller og 2 formulare.
1 tabel : Navn_tab
2 tabel : adresse_tab
1 formular : Navn_form
2 formular : (tadaaaa) adresse_form

Når jeg bruger min DB, bruger jeg navn_form og der er oplysninger om medlemets navn og telefonnr. der er også en knap der hedder adresse.
Når jeg klikker på den åbnes adresse_form. her står så adressen på det aktuelle medl.

Nu kommer så det jeg gerne vil kunne :
Når jeg vil oprtte et nyt medl. så går jeg til sidste element i tabellen og skriver oplysningerne, men når jeg så klikker på adresse så kan jeg ikke linke de to ting sammen og det er fordi at der ikke findes et id i adresse som der findes i navn.

ID\'et i navn bliver oprettet så snart jeg skriver i navn_form men ikke i adresse

ALTSÅ, for at gøre en ret lang historie kort, så vil jeg gerne have at når jeg opretter en ny post i navn så skal den oprette en ny post i adresse samtidig.....
Avatar billede Slettet bruger
30. september 2000 - 17:57 #1
Prøv at sende den til mig, så vil jeg se på den

send til ejler@post9.tele.dk
Avatar billede moses Praktikant
02. oktober 2000 - 08:10 #2
Man opretter en tabel for hvert objekt man vil beskrive. En person, en hændelse, en tidsregistrering eller, hvad det nu kan være.
Du deler et og samme objekts egenskaber op i to tabeller, derfor får du problemer.
Adressen er da en egenskab ved personene med det navn, der står i tabel 1 ?!?!?!
Så skal det også stå i samme tabel.
Der er jo ikke noget i vejen for, at du bruger den samme tabel i to formularer !! I adresseformularen vil du så kun benytte id feltet og adresse felterne.
Så er den potte ude.
Søg eventuelt på internettet under \"+normalform +Access\" eller \"+normalform +database\", det vil sikkert give nogle aha\'er.
Avatar billede zeus Nybegynder
02. oktober 2000 - 13:19 #3
Det senario er et eksempel....
Det er ikke noedvendigvis adresser der er tale om, mit spg. gaar paa hvordan man naar man opretter et emne i den ene tabel saa opretter den pr. definition ogsaa et emne i den anden, men med samme id.....
Avatar billede moses Praktikant
02. oktober 2000 - 13:27 #4
Så må mit svar stadigvæk være:

Søg på internettet under \"+normalform +Access\" eller \"+normalform +database\"

Det er nemlig sådan, at der ikke må være så streng sammenhæng imellem felter i to tabeller. Så skal de slås sammen.

Prøv at give et helt konkret eksempel med f.eks 2-3 felter i de to tabeller.

Avatar billede moses Praktikant
02. oktober 2000 - 13:32 #5
Jeg giver her et eksempel:

Tabel 1:
PersonID, Navn, Adresse

Tabel2:
PersonID, Sygedag

Hver gang en person er syg, oprettes der en ny record i Tabel 2, med personens ID og datoen.

Her sikrer du dig ID feltet ved at lave en relation i mellem de to PersonID felter og samtidig lave en lookup til personID feltet i tabel 2 til samme felt i tabel 1 (eventuelt til PersonID og Navne feltet). Så skal du også lige huske at sætte \"Limit to list\" til Yes.
Avatar billede region Nybegynder
02. oktober 2000 - 13:53 #6
lav en forespørgsel hvor du medtager begge tabeller. Du linker et Autonummer ( ID ) til hindanden. formularen skal basers på denne forespørgsel.

Når du opretter et nyt medlem i tabellen medlemmer vil denne få det næste ledige ID (måske 134) når du så ligeledes opretter en adresse i den anden tabel vil den ligeledes få ID 134.

( dette kræver selvfølgelig at de to tabeller liniemæssigt følges ad.....et navn pr linie samt en adresse pr linie... )

HVIS MIT SVAR MIT SVAR MINDER OM TIDLIGERE BESVAREDE SKAL JEG NATURLIGVIS IKKE HAVE NOGLE POINT....så det er ikke for at \' stjæle \' andres besvarelser...

Denne løsningmåde ville jeg dog anse som let og overskuelig
Avatar billede moses Praktikant
02. oktober 2000 - 14:43 #7
<region> Ja det er måske sådan noget zeus er ude efter - lad os se, hvad han reply\'er.
MEN det er da skørt og risikabelt at styre de ID-felter manuelt. Det giver slet ikke nogen mening, fordi det slet ikke giver nogen fordel - tværtimod, så giver det ikke andet en bøvl under oprettelsen, bøvl under driften og bøvl ved nedbræk, for det kommer det nemlig til.

Avatar billede region Nybegynder
02. oktober 2000 - 14:56 #8
<moses> din model med personID... hvad er det for et ID...??? er det et autonummer eller.???

Avatar billede zeus Nybegynder
02. oktober 2000 - 15:41 #9
Moses & region : Det er ikke sådan det skal fungere, jeg er fint klar over de risici som jeg løber med denne opstilling, men det er nødvendigt for at tabellerne ikke skal være alt alt for store, så deler jeg dem lidt ind ( Husk at det jeg har beskrevet ikke er præcis det jeg skal lave, men idéen er den samme )....
Jeg tror dog at det som moses har forslået er noget der vil fungere, så jeg må lige fifle lidt med det, så vender jeg tilbage med et resultat senere, nok først om et par dage (sorry)

Zeus
Avatar billede moses Praktikant
02. oktober 2000 - 15:44 #10
Det er sådan set underordnet for at forstå eksemplet. Normalt er disse ID-felter udelukkende til for at kunne identificere en record entydigt. Derfor er de oftest bare autonumre.

FORSTÅ MIG NU RET:
[Tabel1]![PersonID] er autonummer
OG
[Tabel2]![PersonID] er kun en Long Integer. Den skal jo bare vise, hvem det nu er, der er syg. Det kan kun være en af de allerede oprettede personer, så derfor er den bundet til at skulle være et opslag fra Tabel 1. Det kan dog godt være at en person er syg mange gange. Det er en 1-til-mange relation.

Avatar billede zeus Nybegynder
02. oktober 2000 - 16:05 #11
PRÆCIS sådan er basen også opbygget, jeg er bare ikke så stærk ud i definitionerne af tabellerne, så har jeg ikke sat mine parametre korrekt, altså limit to list og den slags......
Jeg prøver......vender forhåbentlig snart tilbage
Avatar billede zeus Nybegynder
02. oktober 2000 - 21:45 #12
OK ok jeg er åbentbart meget svag til det her....
moses :
Jeg har prøvet det du har skrevet men kan ikke lige finde ud af det, hvordan laver jeg denne lookup, hvilke parametre skal der stå i alle de attributter der er i f.eks. en kobinationsboks.
Avatar billede moses Praktikant
03. oktober 2000 - 11:21 #13
UPS UPS !!
Siger du \"dele en tabel op fordi den er for stor\" ????

Så skal du dele tabellens kolonner, som du nu finder det nemmest og mest praktisk.
ID feltet, som beskrevet ovenfor skal være den samme i begge tabeller for de to linier, som hører sammen.
Inden du putter data i, skal du lave en \"1 til 1\" relation med \"referential integrity\" imellem de to ID-felter.
Så hænger linierne uløseligt sammen imellem de to tabeller.

Avatar billede zeus Nybegynder
03. oktober 2000 - 12:34 #14
Jamen det har jeg ogsaa.....
Problemet kommer naar jeg forsoeger at oprette en ny post i navn_form, saa brokker access sig over at det ikke kan lade sig goere da der ogsaa skal vaere en post med samme id i adresse....OG det er praecis det der er problemet, og loesningen er saa at oprette en tom post med samme id i adresse saa snart man opretter en post i navn, MEN hvordan goer man det ?????
Avatar billede moses Praktikant
09. oktober 2000 - 13:34 #15
Hvis du opretter f.eks. 2 tabeller:

Tabel 1 med felterne:
ID (Autonumber), PRIMARY KEY
Navn (Text)

og

tabel 2:
ID (Number: Long Integer), PRIMARY KEY
Adresse (Tekst)

Laver en referentiel intgritet imellem de to ID-felter (bliver til en En-til-En relation)

Lægger alle 4 felter ind i en form:

RecordSource=
SELECT Table3.ID AS Table3_ID, Table3.Navn, Table4.ID AS Table4_ID, Table4.Resultat
FROM Table3 INNER JOIN Table4 ON Table3.ID = Table4.ID

Herefter Sætter du Enabled = False for de to ID felter.

Dernlæst kan du altid oprette data i felterne, der tilhører tabel3, selvom du ikke i første omgang lægger noget ind i felterne fra tabel4.
MEn omvendt går ikke, så du skal finde ud af, hvilket/Hvilke datafelt, der altid indtastes først. De skal ligge i tabel3.

Sådan !!
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