22. april 2004 - 09:05Der er
16 kommentarer og 2 løsninger
Medarbejder id der skal indeholde værdien nul = 0
Jeg har et problem omkring et medarbejderid der indgår i en relation - Medarbejderidet er den primære nøgle og er ikke sat til autonummering - MEd andre man kan selv indtaste det - Problemet er at vores medarbejder id´er hedder 01937, 013485, 018475 - Access fjerner automatisk 0 foran - Hvordan kan jeg løse dette??
du kunne ændre dit felt i databasen til tekst istedet for tal - Det kan stadig indgå i en relation men du skal huske at de felter den skal relatere til også skal være af typen tekst
Du kan kun releatere autonummer felter til felter af typen tal, med værdien langt heltal. Men kun primærnøglefeletet kan være af typen autonummer, ikke fremmednøglen. det vil derfor være autonummerfeltetr, der kommer til at bestemme medarbejderid'et. Det lyder ikke logisk, så mon dine relationer er rigtige?
Men hvis du bare vil have et foranstillede 0, kan du formatere dit talfelt som
fx 0000000. Dette virker dog heller ikke, hvis der altid skal 1 og netop 1 foranstillet 0, uanset hvor langt tallet i øvrigt er. I så fald kan du nok ikke taste i tabel men må ud i noget formular og så noget kode, der formaterer korrekt alt efter feltets længde.
Så prøv lige at beskrive sammenhængen mellem dine tabeller. Hvordan hænger tabellen med medarbejderID sammen med de to tabeller, hvor der er autonummer i? Alotså hvilke felter binde tabellerne sammen. Mit gæt er, at feltet med MedarbejderID IKKE hænger sammen med et felt med autonummer. Derimod kan det sagtens hænge sammen med et andet felt i en tabel, hvor primærnøglen er autonummer.
I min lille database verden så er primary key ALDRIG data men autonum. Mit første program lavede jeg netop primary index på data og det er fy i database verdenen at lave primary key på - data
Jeg bruger dog ofte at lave andre index f.x. medarbejdernummer der sagtens kan defineres som indexeret og ingen dubletter.
vbcoder-> Hvorfor dog "opfinde" et autonummer, hvis man har en god primary key i forvejen, som cpr-nummer, medarbejderid eller lignende, som netop er entydige?
Hvis du skal lave relationer mellem tabeller er det helt klart nummer 1 ALTID at lave en primary key som autonum og så plejer jeg at give den tbl_navn_id.
det er en db-guru der underviser andre i den rigtige opbygning af databaser der har fortalt mig det.
men du har da ret - mit første program var til en boligforening for mange år siden og der brugte jeg primary key på bolignumre og på firmanavne og på rekv.numre men i vedligeholdelsen har det senere givet mig store problemer i forhold til relationer imellem tabller.
Jeg har faktisk arbejdet på en ny version hvor databasen skal konverteres men det et næsten uoverstigeligt arbejde fordi jeg har klodset i det med mine primære nøgler.
Undgå problemer - lav aldrig primære nøgler på data.
Nu har jeg desginet og udviklet databaser i en del år, og hjeg har aldrig haft problenmer med mine primary keys. Selv om de er data, som du kalder dem. Bare du sirker dig, at det er data, der ikke ændres.
Fint nok. Men hvis ikke relationen går mellem medarbejderID og Autonummefeltet i preojekttabellen, og det ser ikke sådan ud, kan du sagtens lave dit medarbejderID til et tekstfelt, og så kan du få alle de foranstillede nuller du vil.
Velbekomme!Det er ofte bare et spørgsmål om at få forstået hinanden.
Synes godt om
Ny brugerNybegynder
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.