Avatar billede ksattrup Nybegynder
29. marts 2007 - 11:32 Der er 11 kommentarer og
1 løsning

Opslag i formular

Hej alle eksperter.

Jeg er ret "grøn" hvad angår access, men jeg vil prøve at skitsere mit problem så godt jeg kan.

Jeg har 3 databaser, som får input via formularer.
Jeg har så lavet realtioner mellem dem og vil så lave en formular som viser nogle dele fra hver database udfra to oplysninger som jeg skriver i to teksbokse.

Helt konkret så er det jeg skal vise defineret udfra Cpr-nr og så et specifikt årstal.

Envidere skal der så være en sum af de viste data i bunden.

Jeg har kæmpet med det i lang, men I må sige til hvis der er noget fuldstændig galt

På forhånd tak for hjælpen.
Avatar billede jensen363 Forsker
29. marts 2007 - 11:58 #1
Som du sikket ved, kan du sammenkæde de individuelle databaser i en ny database, og herfra lave helt nye datasammensætninger.

Til dit formål, vil jeg foreslå, at du bygger din formular på baggrund af en forespørgsel hvor du relaterer de to eller tre tabeller du vil vise indhold fra

Herefter kan du benytte din formularfod til at summere de enkelte kolonner
Avatar billede ksattrup Nybegynder
29. marts 2007 - 12:20 #2
et kan godt være at jeg spørger dumt, men når jeg nu har lavet forespørgelsen og jeg så laver en formular ud fra den sammen med databaserne, så vil jeg jo gerne have at de relevante data kommer frem når jeg taster et cpr-nr og et årstal, men den opdaterer ikke underformularen eller navn, adresse mv. den prøver bare at gemme det nye cpr-nr under et forkert navn. - hvad gør jeg?
Avatar billede jensen363 Forsker
29. marts 2007 - 13:01 #3
Der er ingen dumme spørgsmål her, men du må nok være lidt mere specifik i din opgavebeskrivelse hvis jeg skal hjælpe.

Eksempel : 
Du har 3 databaser, hvoraf følgende tabeller skal benyttes i en formular i database nr X ( beskriv tabelnavne, tabelindhold o.s.v. )
Avatar billede ksattrup Nybegynder
29. marts 2007 - 13:23 #4
Jeg har delt oplysningerne op i 3 databaser.

Database 1:(Cpr-nr,fornavn, efternavn, adresse, postnr, by, samt rederinr.(Det er sømænd)

Database 2:(Rederinr, navn, adresse, postnr, by)

Database 3:(Oplysninger om feriepenge):cpr-nr, Årstal for indbetaling, måned for indbetaling, rederinr(hvilket rederi har indbetalt), beløb.

Jeg har så lavet nogle brugervenlige formularer hvor indtastningen i de forskellige formularer kan finde sted.

Jeg vil så gerne have en formular hvor jeg relaterer de Database 1 og 2 sammen så jeg udfra et felt, hvor jeg skriver et cpr-nr og derefter hvilket år jeg gerne vil se, skal kunne se: Cpr-nr, Navn, Adresse osv, Årstal, Måneder, rederi som har indbetalt og tilsidst en samlet sum for det specifikke år med det specifikke cpr-nr.

Jeg håber jeg har forklaret godt nok :-)
Avatar billede jensen363 Forsker
29. marts 2007 - 13:48 #5
SELECT [Database3-tabel].[Cpr-nr], Database1_tabel.fornavn, Database1_tabel.efternavn, Database1_tabel.postnr, Database1_tabel.by, Database1_tabel.Rederinr, [Database2-tabel].navn, [Database2-tabel].adresse, [Database2-tabel].postnr, [Database2-tabel].by, [Database3-tabel].Årstal, [Database3-tabel].måned, [Database3-tabel].beløb
FROM ([Database2-tabel] INNER JOIN Database1_tabel ON [Database2-tabel].Rederinr = Database1_tabel.Rederinr) INNER JOIN [Database3-tabel] ON ([Database2-tabel].Rederinr = [Database3-tabel].Rederinr) AND (Database1_tabel.[Cpr-nr] = [Database3-tabel].[Cpr-nr])
WHERE ((([Database3-tabel].[Cpr-nr])=[Vælg Cpr]) AND (([Database3-tabel].Årstal)=[Vælg År]));
Avatar billede jensen363 Forsker
29. marts 2007 - 13:50 #6
For en god ordens skyld ...

Når du siger 3 databaser, mener du så 3 enkeltstående databaser, eller 3 tabeller i 1 database .... sådan som jeg ser dine data, tror jeg mest det sidste
Avatar billede ksattrup Nybegynder
29. marts 2007 - 14:05 #7
Det er det også - sorry. Jeg mener 3 tabeller det er jo en database....hehe
Er det en VBA kode du har lavet eller... Jeg har kun arbejdet med det i Excel
Avatar billede jensen363 Forsker
29. marts 2007 - 14:12 #8
Kan du zippe databasen og maile den til mig, så skal jeg forsøge at indarbejde en løsning for dig ?

Det er ikke VBA, men SQL ... det er den kode der ligge bag en forespørgsel
Avatar billede ksattrup Nybegynder
29. marts 2007 - 14:15 #9
Jep det gør jeg.

Tak for det - du er en guttermand
Avatar billede ksattrup Nybegynder
29. marts 2007 - 14:18 #10
din mail?
Avatar billede jensen363 Forsker
29. marts 2007 - 14:21 #11
ose@post.dk
Avatar billede jensen363 Forsker
29. marts 2007 - 15:04 #12
Forespørgslen som formular bygger på, kom til at se således ud

SELECT Database1.[Cpr-nr], Database1.Fornavne, Database1.Efternavne, Database1.Adresse, Database1.Postnr, Database1.By, Database3.Årstal, Database3.[Rederi nr], Database3.Måned, Database3.Beløb
FROM Database1 INNER JOIN Database3 ON Database1.[Cpr-nr] = Database3.[Cpr-nr]
WHERE (((Database1.[Cpr-nr])=[Vælg Cpr-nr : ]) AND ((Database3.Årstal)=[Vælg år : ]))
ORDER BY Database3.Årstal DESC;
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