Avatar billede peterkrog Nybegynder
11. november 2010 - 18:07 Der er 13 kommentarer og
1 løsning

gerne have access til automatisk genkende navnet i en kolonne og udfylde flere felter.

Hej derude.

Jeg håber der en flink person der kan hjælpe her.

Jeg sidder med en Access 2007 skibs database. Den har ca 800 poster hver post består af 14 kolonner. Nu begynder jeg at indskrive nogle gengangere.
Her vil jeg gerne have access til automatisk genkende navnet i en kolonne (SKIBSNAVN), hvis den er skrevet før skal den selv udfylde 7 andre kolonner med data som tidligere er skrevet.  Disse data er nemlig statiske for skibet . Resten af kolonnerne skal den ikke gøre noget ved.
Nogle af disse kolonner som automatisk skal hentes er opslags kolonner.

Håber vi har en der kan hjælpe.
Er ikke den skarpeste til access :/
Mvh Peter
Avatar billede anlu Nybegynder
11. november 2010 - 18:36 #1
Det lyder som om din database ikke er hensigtsmæssigt konstrueret.

Du bør have en tabel for skibet med de data der er statiske for skibet, og så have en anden tabel hvori du har en reference til skibet (altså en kolonne der indeholder unikt id for skibet) samt dine øvrige data.

Derved undgår du at skulle indtaste samme data flere gange og du undgår risikoen for inkonsistens i skibsdata.
Avatar billede neoman Novice
11. november 2010 - 18:38 #2
DIn tabel er ikke normaliseret - i normalt sprog betyder det, at du har gentagne data knyttet til et skib, og burde have en separat tabel med skibsdata :-)

Men ellers - hvis du har en formular til at opdatere data med, så for den textbox, hvor du indtaster skibsnavn, kan du i AfterUpdate-eventet køre en forespørgsel som leder efter fil navnet, og hvis den finder det, så tager den DLOOKUP for hvert af de allerede kendte felter og finder den pågældende værdi, og lægger dem ind i den bundne tekstbox som nu hører til.
Avatar billede neoman Novice
11. november 2010 - 18:39 #3
"fil navnet" skulel være "skibsnavnet"
Avatar billede peterkrog Nybegynder
11. november 2010 - 19:07 #4
Jeg takker for jeg hurtige svar, og er frisk på at springe ud i det.

Det jeg skal er at lave en ny data ark som jeg døber "skib". Det skal så indeholde de 7 kolonner med statisk data.

Men hvordan for jeg lige overført de 600 poster til dette nye dataark? copy/past kan jeg kun kopier et felt af gangen.

Derefter skal jeg have lavet et nyt data ark "SAMLET med relationer fra skib også de resterende kolonner.

Dette dataark "SAMLET" bliver så mit arbejdesark. Men hvad så når jeg begynder at udfylde nye poster med nye skibe. bliver de så automatisk lagret in "skib" arket? Så de også bliver mulige at hente deres data?

håber i forstår mig ;)
Avatar billede anlu Nybegynder
11. november 2010 - 19:26 #5
Du kan overføre data fra din eksisterende tabel ved at lave en forespørgsel med en SQL der minder om denne:

INSERT INTO skib (kolonne1, kolonne2, ... , kolonne7)
SELECT DISTINCT kolonne1, kolonne2, ..., kolonne7
FROM <eksisterende tabel>

Hvis vi antager at kolonne1 identificerer skibet entydigt, vil du så i den tabel du kalder SAMLET have kolonnerne kolonne1, kolonne8, ... kolonne14.

Når du får poster med nye skibe, skal du så først oprette skibet i skibs-tabellen, og så derefter tilføje poster i SAMLET.
Avatar billede peterkrog Nybegynder
11. november 2010 - 19:39 #6
Den SQL model kan jeg desværre ikke lige finde ud af.

Men har nu lavet et ark med skibsdata. når jeg så bruger guiden opslag i et nyt ark og finder skibsdata felterne. Så bliver det kun det øverste felt jeg for præsenteret i dette tilfælde skibsnavn. Men ønsker alle felterne præsenteret i dette nye ark. Har prøvet at lave opslag for hvert enkelt felt. Men så skal de hver især udfyldes.
Avatar billede peterkrog Nybegynder
11. november 2010 - 19:55 #7
TIL NEOMAN

Men ellers - hvis du har en formular til at opdatere data med, så for den textbox, hvor du indtaster skibsnavn, kan du i AfterUpdate-eventet køre en forespørgsel som leder efter fil navnet, og hvis den finder det, så tager den DLOOKUP for hvert af de allerede kendte felter og finder den pågældende værdi, og lægger dem ind i den bundne tekstbox som nu hører til.

Det her lyder som en løsning jeg kunne bruge. Kan du uddybe den lidt?
Avatar billede anlu Nybegynder
11. november 2010 - 19:58 #8
Du skal bruge forespørgsler til at kæde dine to tabeller sammen, så du kan se al informationen på en gang.

Jeg kan ikke lige gennemskue om det er for stor en ændring for dig at lave strukturen om.

Men omvendt hvis du vil undgå dobbeltindtastningerne, så er du nødt til at lære noget mere om Access, hvad enten det så er noget om normalisering og forespørgsler som vi har gang i her, eller noget om programmering, som evt. kunne udfylde felterne for dig i en ikke-normaliseret tabel.

Men umiddelbart tænker jeg om det ville være en løsning for dig at arbejde i Excel fremfor Access - der kan du jo let kopiere de 7 skibskolonner fra en anden række og så udfylde de sidste kolonner?
Og hvis du kun har den ene tabel, så kunne du vel ligeså godt have det i et Excel-ark eller?
Avatar billede neoman Novice
11. november 2010 - 20:25 #9
Jeg tilslutter mig hvad anlu skriver - hvad siger du til excel?
Avatar billede Slettet bruger
11. november 2010 - 20:37 #10
Du er velkommen til at sende din database til spg.eksperten@gmail.com så skal jeg tage et hurtigt kig på det!~)
Avatar billede peterkrog Nybegynder
12. november 2010 - 19:54 #11
Jeg undersøger lige sagerne og vender tilbage. vh Peter
Avatar billede peterkrog Nybegynder
30. december 2010 - 03:25 #12
Opgivet og lukket
Avatar billede Slettet bruger
30. december 2010 - 09:29 #13
Dit problem kan ellers nemt løses, men det vil være nemmest hvis jeg kan se data og database!~)
Avatar billede Slettet bruger
30. december 2010 - 09:38 #14
Helt kort kan jeg sige, at dit felt skibsnavn, skal laves om til et dropdown felt. Som kilde sætter du en DISTINCT forespørgsel, der indeholder de 7 kolonner. Så sætter du alle andre kolonnebredder end skibsnavn til 0. På EfterOpdateringshændelsen for feltet skriver du så noget i retning af:

me.NavnKolonne1 = me.skibsnavn.column(0)
me.NavnKolonne2 = me.skibsnavn.column(1)
osv..

Hvis du så indtaster et nyt skibsnavn og dens data, så næste gang du åbner databasen, så vil den også være med på dropdownlisten!~)
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