Avatar billede kaydk Nybegynder
05. januar 2006 - 14:06 Der er 41 kommentarer og
1 løsning

Kombinationsbokse i MS Access

Hvis i downloader denne fil;

http://www.unique.starthotel.dk/Opgave_1.mdb

kan i under "formular", finde formularen "Opgave_1-6" jeg har oprettet automatisk via forespørgsel.

Som i vil kunne se, kan man bladre i to kombinationsbokse "Film" og "Navn", herudfra vil jeg gerne have, at den automatisk slår op i "Nr", "Biografnr" og "Forestillinger", men det gør den desværre ikke. Tilgengæld kan jeg i formularen bladre mellem 15 sider, hvori jeg kan se alle mulige kombinationer.

Hvordan kan jeg få den til, så jeg bare kan vælge en kombinationen i de to kombinationsbokse, og herefter genere den automatisk "Nr", "Biografnr" og "Forestillinger"?

Hvis i henter filen og læser mit spørgsmål, så skulle det ikke være svært at forstå, hvad jeg skriver :). Håber i kan hjælpe mig.
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 14:14 #1
hej kaydk >
Feltet "nr" på din formular - hvad er det for et nummer, der skal stå der?
Avatar billede kaydk Nybegynder
05. januar 2006 - 14:19 #2
Nr = Filmens nr som kan findes i tabellen "Film"
Biografnr = Biografens nummer som kan findes i tabellen "Biografer"
Forestillinger = Antal forestillinger for en film i en given by, de kan hentes i tabellen "Forestillinger"
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 14:43 #3
øjeblik...
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 14:47 #4
Jeg kan se at din formular er bundet til forespørgslen "opgave_1_6", men det gør at comboboxene ikke kan ændret, da forespørgslen ikke kan ændres.
Er det meningen? Så kan man ikke vælge noget i combo'erne.
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 15:27 #5
Hvis jeg fjerner kontrolkilden for de to combos kan man godt vælge noget i dem begge.
Men så kan man godt vælge en biograf og en film, der ikke går i den biograf - skal man kunne det? Ellers kan det være du skal combo'erne til at afhænge af input i hinanden.
Avatar billede kaydk Nybegynder
05. januar 2006 - 15:39 #6
Grunden til at jeg har oprettet gennem en forespørgsmål er min manglende evne til at lave en formular, så du kan bare fjerne det, eller gøre det på en anden måde.

"Men så kan man godt vælge en biograf og en film, der ikke går i den biograf - skal man kunne det?"

Nej helst ikke :).
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 15:41 #7
Jeg prøver lige at lave noget, der virker og sende det til dig.
Så kan du se om det virker tilfresstillende.
Avatar billede kaydk Nybegynder
05. januar 2006 - 15:42 #8
Mange tak.
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 17:13 #9
Jeg kom lige fra det pga. en anden tråd - arbejder på sagen nu.
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 17:32 #10
Kan jeg sende den til dig?
Avatar billede kaydk Nybegynder
05. januar 2006 - 20:35 #11
ja du må godt sende den til mig, kay.azn@FJERNDETTEgmail.com
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 22:45 #12
ok, jeg har sendt en version, hvor komboerne er ubundne.
Det virker, men jeg ved ikke om det er efter hensigten.
Avatar billede kaydk Nybegynder
05. januar 2006 - 22:51 #13
Hej Jesper.
Mange tak, det virker faktisk, men jeg kan se, man kan vælge alle film, og hvis de er defineret, så kan man også vælge by. Men kan man ikke gøre sådan, at man kun kan vælge de film, som findes i "Forestillinger".

En anden ting, kan jeg få en kort introduktion, hvordan man binder de forskellige ting, i formularen, altså hvordan man får det til at virke sådan. For jeg sad mange timer idag men ikke finde ud af det.
Avatar billede kaydk Nybegynder
05. januar 2006 - 22:55 #14
Når jeg fx går ind i relation og kigger, så kan jeg se, at der ingen relation er til "Forestillinger", men hvad har du så gjort i formularen, så den alligevel kan relatere til hinanden?
Avatar billede kaydk Nybegynder
05. januar 2006 - 23:01 #15
Nu har jo kigget lidt på det du har lavet, formularen virker ikke helt efter hensigten, fx. opdatere antal forestillinger ikke, når man går mellem byer.
Avatar billede kaydk Nybegynder
05. januar 2006 - 23:03 #16
Men hvis det er ikke er besværligt, og du kan forklare mig, hvordan når man vælger noget fra kombinationsbokse, og den så gennem dette laver en forespørgsel, og viser resultatet i en anden boks, så vil jeg være superglad.
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 23:07 #17
>"Men kan man ikke gøre sådan, at man kun kan vælge de film, som findes i "Forestillinger".

Ja det kan man. Det bliver så kun en 8-10 film, som det er nu. Er det det du mener?


>"Når jeg fx går ind i relation og kigger, så kan jeg se, at der ingen relation er til "Forestillinger", men hvad har du så gjort i formularen, så den alligevel kan relatere til hinanden?"

Jeg er lidt i tvivl om hvad formålet med formularen er. Ønsker du blot at slå nr, biografnr og forestillinger op? Eller ønsker du at indsætte nye poster i tabellen "Forestillinger"?
Avatar billede jesperfjoelner Nybegynder
05. januar 2006 - 23:08 #18
"En anden ting, kan jeg få en kort introduktion, hvordan man binder de forskellige ting, i formularen, altså hvordan man får det til at virke sådan."

Tjo, er det en speciel funktion du tænker på, så skal jeg gerne forklare det.

>"Men hvis det er ikke er besværligt, og du kan forklare mig, hvordan når man vælger noget fra kombinationsbokse, og den så gennem dette laver en forespørgsel, og viser resultatet i en anden boks, så vil jeg være superglad."

Mener du at når man har valgt en film i øverste boks, så er det kun de biografer, hvori filmen spilles, som vises i nederste combo? Er det måden hvorpå det laves du vil høre om?
Avatar billede kaydk Nybegynder
05. januar 2006 - 23:48 #19
Ja, det er egentlig hvordan man laver det, så kan jeg nemlig prøve at rode med det selv, på den måde kan jeg også lære det.

Formålet med formularen:

Altså i den Access film har man oplysninger om hvornår de forskellige film er produceret. Nu ønsker at kunne indtaste hvor mange forestillinger, der der har været af de enkelte film i hver by i danmark.

I tabellen "Forestillinger" har jeg bare tastet nogle tilfældige værdier ind for nogle byer, bare for så jeg har noget at teste på i formularen.

Målet med formularen, er så man hurtigt og brugervenligt kan slå op i en given film i en given by, og hurtig få at vide, hvor mange forestillinger, der har været af den pågældende film, biografnr og film nr er dog også ønskeligt.

Det er en opgave i forbindelse med mit studie, hvis du skulle være i tvivl :). Men jeg siger mange tak, at du har gidet at bruge tid på at hjælpe mig.
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 00:13 #20
Jamen jeg hjælper gerne.
Hvad læser du?

Du skriver at du ønsker hurtigt at kunne slå op og se hvor mange forestillinger, der har været i en given by. Du skal nok bestemme dig til om formularen skal være en du indtaster i eller slår op i.
Som det nu (ca.) bliver der jo slået op i tabellerne, men man kunne også lave det, så du via formularen kan indtaste i tabellen "forestillinger" (men så mister man "slå-op"-muligheden). Man kunne have en formular til hver ting?

------------
Ang. funktionen hvor én comboboks er afhængig af en anden.

Kontrolkilden (recordsource) angiver jo hvilke data en combobox/listbox er fyldt med.
I din formular er det
"SELECT nr,titel FROM film ORDER BY titel"
for din combo "film"

og
"SELECT biografnr,navn FROM biografer ORDER BY navn"
for combo "navn"

Men i dette tilfælde skal der jo kun vælges de navne på biografer, hvor filmen har gået. Så når film er valgt skal combo'en "navn" filtreres så det kun er de biografer, hvor filmen har gået, der vises.

Så "SELECT biografnr,navn FROM biografer ORDER BY navn" skal laves om, så det kun finder de rigtige byer.

Filtreringen laves ved at indsætte en stump kode i hændelsen "EfterOpdatering" for combo'en "film" (højreklik > egenskaber > hændelser > ...)

I koden defineres denne SQL-sætning:

SQL = "SELECT Forestillinger.Biografnr, Biografer.Navn, Forestillinger.Film " & _
"FROM Biografer INNER JOIN Forestillinger ON Biografer.Biografnr = Forestillinger.Biografnr " & _
"WHERE (((Forestillinger.Film)=" & Me.Film & "));"

Læg mærke til at der er brugt en variabel "me.film" som jo er den netop valgte værdi fra combo'en "film". Dvs at man nu har en SQL-sætning, som returnerer kun de biografer, hvor filmen har gået.

Jeg skal være hurtig til at indrømme, at når jeg skal lave sådan noget her snyder jeg lidt og bruger forespørgsels-editoren i Access til at få det nogenlunde på plads. Så får jeg vist SQL'en fra min forespørgsel, som jeg så klipper ind i koden. Så slipper man for at skrive alle de lange SELECT..FROM..JOIN.. selv.

Til sidst skal den nykonstruerede SQL bruges som kontrolkilde for din combo med biografnavnene:

Me.Navn.RowSource = SQL
Avatar billede kaydk Nybegynder
06. januar 2006 - 01:27 #21
Formularen skal bruges til at slå op, til at taste ind skal bruges tabellen.

Jeg læser til civilingeniør i datateknologi og HD sideløbende. Faget her er IT/økonomi under HD, hvor vi skal lære at arbejde med Excel, Access, og Powerpoint, men vi har kun fået 1 undervisningstime i Access, hvor vi lærte at indtaste og lave forespørgsmål, dvs. intet om formular, SQL-koder, og rapporter, derfor jeg har lidt svært ved det her.

Kan du så hjælpe mig med en formular, der skal slås op?
Avatar billede kaydk Nybegynder
06. januar 2006 - 01:29 #22
Det er lidt svært for mig at sætte ind i det der kode :), men tak for at du forsøgte at forklare mig.
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 01:31 #23
Spændende med uddannelsen.

Hvad mangler der i funktionen for at det fungerer som du vil havde det?

Hvis man lige er startet med Access er der nok at holde styr på bare med tabeller, formularer og forespørgsler. Når man er bedre hjemme i det, er der en verden af muligheder med SQL og VBA kode. Man kan få en Accessdatabase til at ligne et regulær program med komplet brugerflade uden direkte adgang til tabellerne.
Avatar billede kaydk Nybegynder
06. januar 2006 - 01:35 #24
Det du sendte til mig på mail så ellers godt nok ud, bortset fra at antal forestillinger i formularen ikke opdaterede, når man skiftede mellem byerne.
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 01:35 #25
aha ok, det retter jeg lige og sender det igen.
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 01:57 #26
Der kommer lige en mere.
Avatar billede kaydk Nybegynder
06. januar 2006 - 02:02 #27
Tak nu ser det ud til at virke :). Hvordan kommer man egentlig ind til SQL-koderne?

Mange mange tak for hjælpen, du får lige pointerne.
Avatar billede kaydk Nybegynder
06. januar 2006 - 02:05 #28
Var lige inde på din hjemmeside og kigge, det ser ud til du har meget styr på det med databaser;).
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 02:05 #29
SQL er jo sætninger som:
SELECT * FROM forestillinger
osv.
og hvis en sådan skal være kontrolkilde i f.eks en combo skal man blot højreklikke på combo'en > egenskaber > fanen data > og så står det der på linjen.
Hvis du vil redigere det kan man gøre det direkte eller trykke på "..." for at komme til forespørgselseditoren.

VBA (visual basic for applications) kommer med til ved at trykke ALT+F11.
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 02:08 #30
Jo tak :-) Det har en hobby et par år, så jeg kan godt sige at jeg efterhånden er godt inde i det. Det fungerer som en slags fritidsjob for mig.
Så kan jeg få brugt min meget nørdede til noget fornuftigt :-)
Avatar billede kaydk Nybegynder
06. januar 2006 - 02:09 #31
Hvad laver du ellers når du ikke sidder og roder med databaser.
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 02:11 #32
Jeg bliver faktisk færdig som læge i næste uge efter alt for mange år.
Så må jeg se hvor meget tid, der bliver til databaserne, når jeg ryger ud i virkeligheden :-)
Avatar billede kaydk Nybegynder
06. januar 2006 - 02:19 #33
Det lyder da lækkert, tillykke med det, håber du får et godt job. Jeg sidder og læser til eksamen på mit 3. semester, uha der er lang tid før jeg bliver færdig med mit studie.
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 02:25 #34
Jo tak, det skal nok blive godt. Det synes jeg heldigvis også er sjovt :-)
Jeg stødte på Access halvvejs i studiet i forbindelse med noget dataregistrering og blev lidt fascineret af det. Så læste jeg en bog om det og så fylder man jo bare lidt på hen ad vejen. Grundlæggende tror jeg bare, jeg synes det er sjovt at det er så stærkt et værktøj til at hive mere ud af folks data (hvad end det der) end de selv troede. Jeg har lavet en del databaser som bruges flittigt på forskellige hospitalsafdelinger, i en bank og et par andre steder. Det er sjovt at se noget man har lavet gøre en forskel for nogen. Det er måske også derfor jeg er herinde :-)
Men du har jo nogle år til at godt omkring indenfor dit fag - det er sørme også et spændende område.
Avatar billede kaydk Nybegynder
06. januar 2006 - 02:38 #35
Nu er jeg stødt på et problem, min næste opgave er, at jeg skal lave en rapport, se opgave 1.8 (se 5):

http://www.sam.sdu.dk/~mp/IT-eksamen/opg_slut.pdf

Det byder jeg skal lave en relationer "Forestilling" til "Film", det sker gennem Film til Titel, og en relation fra "Forestilling" til "Biografer", det sker gennem Biografnr til Navn.

Herefter forsøger jeg at lave rapporten som vist på billedet, her får jeg dog en fejlmeddelse, der er åbenbart konflikt med den må du har konstrueret formularen, og de relationer skal skabe.

Har du en løsning?

Biografnr i "Forestillinger" skal hellere hedder Sted, da Biografnr er misvissende.
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 02:54 #36
Øhm, jeg kan ikke huske om jeg kom til at omdøbe et felt i din db.
Der var et par steder, hvor jeg synes felterne var uhensigtsmæssigt navngivet.

Nu skal du ikke begynde at ændre dem, for så går det nok kuk i det, men
f.eks. i din tabel "film" er nøglekolonnen "nr". Den ville jeg nok have kaldt "filmID".

For i andre tabeller, hvor dette ID-nummer bliver brugt kunne man så også kalde de felter for "filmID". F.eks. burde kolonne "film" i tabellen "forestillinger" nok hedde "filmID" for så ved man med det samme at de to felter er relaterede.
Det letter tydningen af sammenhængen mellem tabellerne en del.
Samtidig ved at man at felter der hedder noget med ..ID er nøgler, som er foreign keys i andre tabeller - man ved at den bruges et andet sted.

Nå, men jeg har lavet en forespørgsel baseret på alle tabellerne og fra dem valgt de 4 felter, der skal med på rapporten. Forespørgslen er kaldt for 1-8. Du kan lave rapporten med en wizard og basere rapporten på forespørgslen 1-8.

Jeg har vedlagt en rapport, der er opstillet som beskrevet, men layoutet har jeg ikke gjort noget ved. Man kan også vælge at sortere den anderledes, hvis der er brug for det.
Avatar billede kaydk Nybegynder
06. januar 2006 - 09:41 #37
Mange tak for hjælpen. Ja jeg kan godt se, at det er mere hensigtmæssigt at angive som du beskriver. Havde også tidligere forsøgt at ændre på det, men der var det jo allerede bundet, så det var ikke muligt. Men tusind tak for hjælpen, nu skal jeg ikke forstyrre dig mere. Så er den eksamen også forbi :).

Forresten kan jeg stadig ikke finde ud af, at komme ind og se SQL koden på en formular.
Avatar billede jesperfjoelner Nybegynder
06. januar 2006 - 14:08 #38
Det var så lidt :-)

SQL-kode eller rettere SQL-sætninger knytter sig jo til formularer og til f.eks. comboboxe.
Herudover er der VBA-koden, som er den, der binder det hele sammen.

Hvis du har en formular i designvisning skal du højreklikke på den lille grå firkant med den sorte firkant indeni øverst til højre > vælge egenskaber > fanen data.
I feltet "kontrolkilde" el. "recordsource" står SQL-sætnigen, som henter data til formularen, hvis formularen altså har én. Det har din formular ikke. Hvis man ville generere en SQL-sætning til at være datakilde til formularen kunne man trykke på den lille knap med "...", hvorefter query-editoren starter og du kan sammensætte de data, du ønsker i formularen. Det fungerer på samme måde for comboboxene.

Selve VBA-koden finder man ved at trykke ALT+F11.
Avatar billede kaydk Nybegynder
06. januar 2006 - 23:59 #39
Ok tak.

Hey, hvis jeg gerne vil være sådan en database mand som dig, hvad kræver det? Hvordan begyndte du din karriere med databaser:P? I hvor mange år har du arbejdet med det? Og hvordan har du bygget din viden? Hvorledes er du kommet til at lave databaser for sygehus osv?
Avatar billede jesperfjoelner Nybegynder
07. januar 2006 - 02:11 #40
Hej igen,
Tak for smigeren, du får det til at lyde noget større end det er :-)
Men for at svare på spørgsmålene, så stiftede jeg bekendtskab med Access første gang for ca. 4 år siden, da jeg blev bedt om at indtaste data i en (dårlig) database, som en anden havde lavet. Jeg kom til at synes at databaser var smarte og fascinerende og begyndte at læse lidt om Access. Af formelt læsestof har jeg læst de almindelige hæfter du ved, "Access 2002 bible" (har en pdf du kan få hvis du vil) og for at lære at programmere købte jeg "Beginning Access 2002 VBA", som jeg stadig synes er en god bog. Siden har jeg ikke læst bøger om det. Jeg skal ikke øge mit engagement yderligere, da jeg snart skal ud og i gang med en anden karriere, men hvis jeg skulle købe noget i dag ville det være "Access 2002 Developers Handbook", som skulle være det bedste og største man kan få.
Udover det har jeg bare læste tråde primært på de engelske nyhedsgrupper. Der kan man få noget meget højt kvalificeret hjælp. Det er tit der jeg spørger, når jeg selv sidder fast.
Nu har jeg godt nok lavet en hjemmeside for at sætte det hele lidt pænt op, men den giver måske nok indtryk af at jeg er mere professionel end jeg er (men så'n skal den slags jo se ud :-) Jeg kender nogle læger i forskningsmiljøer, som har haft brug værktøjer til dataopsamling og har via de kontakter lavet noget et par steder. Min fordel har været at jeg i kraft at min profession har tænkt lidt på samme måde som dem, og det kommer der altid et bedre produkt ud af.
Man ser tit, at dem der skal lave programmet/databasen, og dem som skal bruge det taler forbi hinanden. Jeg har været meget omhyggelig med at sætte mig grundigt ind i arbejdsgangen der hvor databaserne skulle bruges, og det tror jeg er grunden til at det som regel er gået godt.
Efter de første par databaser kørte og brugerne var tilfredse, er jeg blevet henvist af de brugere til andre, som havde brug for en database. Word-of-mouth-metoden er der vist ikke noget der slår, når man skal skaffe kontakter. Til gengæld kan jeg afsløre at min hjemmeside ikke giver mange henvendelser :-) Den kører vist mest for min egen skyld, og fordi det er rart at have et sted at henvise til, hvis folk vil vide hvad man laver.
Der er jo oceaner af ting, man kan beskæftige sig med indenfor software og det har bestemt været fordi jeg synes databasearbejde er sjovt at jeg har brugt så meget tid på lige det. Men hvis man skal gøre karriere, som f.eks. programmør/konsulent ville jeg personligt også satse på noget databaselignende/programmering fremfor Flash, Photoshop og andre designagtige discipliner i den verden. Simpelthen fordi databehandling, datamining m.m. skaber mere målbar værdi for firmaer end de andre ting. Det er firmaernes bread-and-butter. Når nogle skal fyres er det heller ikke DBA'en, der ryger først. Det tager længere tid at blive god til at databaser end det gør at lære at flække en jævn hjemmeside sammen, men folk med den kompetence har længere levetid tror jeg :-) Som én der skal gøre sig i den verden, er det ting du overvejer? Men det er nok mere på det administrative plan man opererer som civilingeniør.
Avatar billede kaydk Nybegynder
07. januar 2006 - 15:53 #41
Som civilingeniør studerende lærer vi om software såvel som hardware, vi lære både at programmere i forskellige sprog, om algoritmer, simulering af modeller vha. af matematiske redskaber. på den hardwaremæssige plan lærer vi om elektronik, computerarkitektur, komunikationsprotokoller, signalbehandling, sensorer og microcontrollere, det hele bygger op omkring robotteknologien og automatisering.

Ved siden af studere jeg HD, som er en deltid økonomiuddannelse på universitet niveau. Her har vi fx fagene it/økonomi, statistik, erhvervsøkonomi.

Jeg tænkte derfor på at lære om databaser og blive rigtig dygtig til det, så har jeg også en anden vej, hvis jeg nu ikke kunne få job som ingeniør.

Min it/økonomi lærer siger, der er rigtig gode penge at tjene som databasemand, hvis man virkelig er god tl det. Bag alle store firmaer sidder der dygtige økonomer, som analysere data, laver statistik og leger med databaser med henblik på at optimere firmaets indtjening, og der er virkelig gode skillinger i det, og som du siger, også er dem som har længst levetid - altså en af de sidste som bliver fyret.
Avatar billede kaydk Nybegynder
08. januar 2006 - 10:11 #42
Forresten vil jeg gerne have den PDF fil omkring databser :).
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