26. januar 2004 - 10:15Der er
8 kommentarer og 1 løsning
Unikt medlemsnummer
Roder med en medlemsdatabase hvori der er 3 tabeller hhv. Medlemsnummer, Stamdata, Postnummer.
Relationen mellem Medlemsnummer og stamdata er 1 til mange
Endvidere har jeg en formular der lister data udfra en forespørgsel.
På denne formular har jeg en knap opret ny post ..og denne virker fint, men jeg ville gerne have at på den nye post indsættes der næste ledige Medlemsnummer automatisk.
Altå hvis der er 100 medlemmer så bliver næste unikke nummer 101, og hvis et medlem slettes fx. Medlemsnr. 68 så "frigives" dette til næste nye medlem.
Du må opbygge en funktion der løber din medlemsliste gennem, og finder et ubrugt nummer eller udvider nummerlisten.
Men det pæneste, rent database mæssigt, er aldrig at genbruge et unikt nummer. Det gør administrationen nemmere og fjerner risikoen for krydse noget information om et gammelt medlem med et nyt (og jo større databasen bliver, jo flere informationer du gemmer - jo større bliver risikoen for det).
Bare som eks. Du sender et girokort med en rykker for manglende betaling til medlem 17. Medlem 17 melder sig efterfølgende ud. Du sletter medlem 17 trods hans gæld. Nyt medlem melder sig ind, og han får nr 17. Du sender girokort til det nye medlem 17 Det gamle medlem 17 får en anfald af dårlig samvittighed og betaler sit girokort. Det nye medlem 17 betaler sit girokort. Du har nu to betalinger fra medlem 17, hvad gør du?
En lille forbedrng af Mugs' forslag: I stedet for at indsætte værdien i feltet, så angiv blot standard-værdien. Derved slipper man for at Access automatisk begynder at oprette en ny post, bare fordi man står på den sidste post i formularen. If Me.NewRecord Then Me.FELTNAVN.defaultvalue = DMax("[FELTNAVN]", "TABELNAVN") + 1 End If
Hej Thomas > Det havde jeg ikke tænkt over, men hvorfor skulle Access oprette en ny post når den står på sidste post i formularen. Så er betingelsen NewRecord jo ikke opfyldt.
Mugs->Jeg skulle egentlig også have skrevet: "...Access automatisk begynder at oprette en ny post, bare fordi man står på en ny post". For det der sker, er at lige så snart du stiller dig på en tom post, så indsætter du en værdi i FELTNAVN, hvorved posten er under oprettelse. Hvis feltet er primærnøgle (eller hvis der er en anden primærnøgle af autonummer-type) så vil posten blive gemt hvis brugeren skifter post eller hvis formularen lukkes. Alt dette undgås ved kun at sætte defaulvalue.
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.