Avatar billede bol Nybegynder
22. april 2004 - 09:05 Der 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??
Avatar billede vbcoder Nybegynder
22. april 2004 - 09:10 #1
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
Avatar billede bol Nybegynder
22. april 2004 - 09:14 #2
Jamen de to andre er autonummeringsfelter - Altså de to tabeller den indgår i relation med!!
Avatar billede vbcoder Nybegynder
22. april 2004 - 09:23 #3
De autonum felter kan da ikke tilskrives værdier manuelt.

Hvordan er dine tabller bygget op?
Avatar billede bol Nybegynder
22. april 2004 - 09:29 #4
Nej to af tabeller er autonummering og den sidste indeholder en talværdi, hvor man selv indtaster
Avatar billede vbcoder Nybegynder
22. april 2004 - 09:34 #5
Hvordan er tabellerne bygget op?
Avatar billede jkrons Professor
22. april 2004 - 09:45 #6
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.
Avatar billede bol Nybegynder
22. april 2004 - 09:49 #7
Hmm det fatter jeg ikke ret meget af -
Avatar billede jkrons Professor
22. april 2004 - 09:56 #8
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.
Avatar billede vbcoder Nybegynder
22. april 2004 - 09:57 #9
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.
Avatar billede jkrons Professor
22. april 2004 - 10:00 #10
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?
Avatar billede vbcoder Nybegynder
22. april 2004 - 10:11 #11
begrundelsen er - fordi det er data.

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.
Avatar billede jkrons Professor
22. april 2004 - 10:13 #12
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.
Avatar billede vbcoder Nybegynder
22. april 2004 - 10:21 #13
det er da ok

jeg har mine grunde til at designe som jeg gør og vi er da heldigvis forskellig ;o)
Avatar billede jkrons Professor
22. april 2004 - 10:22 #14
:-)
Avatar billede bol Nybegynder
22. april 2004 - 10:34 #15
Kunden vil selv besttemme medarbejderid - derfor kan jeg ikke lave autonu.. på disse..

Som sagt er mit medarbejderid et helt tal - felststærelse TAL

Projekttabel = tal autonummering

Sidste tal arbejdstype autonummering

JEg skal have mine medarbejder id til at hedder 017437, 017437 - MEd nul - DEt er Kundens struktur idag!!
Avatar billede jkrons Professor
22. april 2004 - 10:40 #16
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.

Eks:

Medarbej.Tabel            Projekttabel

MedarbID (tekst)          ProjektID  (autonr)
Medarbnavn osv            InvolveretMedarbejId (tekst)

Reationen går mellem Medarbtabelrbejderid og projekttabel.involveretmedarbid.
Avatar billede bol Nybegynder
22. april 2004 - 10:46 #17
Er løst mange tak - JEg havde tænkt på at relationen var anderledes - du havde ret
Avatar billede jkrons Professor
22. april 2004 - 10:47 #18
Velbekomme!Det er ofte bare et spørgsmål om at få forstået hinanden.
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