Avatar billede rantzausgade7 Nybegynder
10. maj 2004 - 21:33 Der er 13 kommentarer og
1 løsning

Design af standard-formular til en kundedatabase

Hey eksperter og andre nørder!

Er igang med at lave et lille brudstykke af et CRM-system, hvorí det skal være muligt at såvel oprette som vise informationer om kunder via en standard-formular. Nu er jeg så ikke den skarpeste kniv i skuffen hvad angår Access og My-SQL, og derfor kommer I ind i billedet! ;)
Status er at jeg har alle de tabeller jeg skal bruge, og der er oprettet relationer mellem dem. Problemet ligger således i at designe denne standard-formular! Hvis vi nu antog, at følgende skulle være indeholdt i formularen:

1. Felt til at skrive Kundens navn
2. Felt til at skrive Kundens adresse
3. Knap til at gemme disse data i en bestemt tabel
4. Knap til at annulere de indskrevne data (i felterne, og altså ikke en allerede oprettet post)

Hvordan skulle det laves i Access 2002 eller 2000, uden skulle kode alt for meget i SQL?

Jeg er godt klar over, at Access selv kan generere en formular, men jeg er interesseret i at designe mit eget brugerinterface!

På forhånd tak
\Rantzausgade7

PS. Fyr løs, hvis ikke min forklaring er uddybende nok! ;)
Avatar billede rantzausgade7 Nybegynder
10. maj 2004 - 21:36 #1
Hov, glemte lige at tilføje følgende: Når programmet skal startes (dvs. når formularen "åbnes") så skal der ikke stå noget i felterne. Og først når der trykkes "gem" skal disse data indskrives i den tilhørende tabel...
Avatar billede mugs Novice
10. maj 2004 - 21:39 #2
Ådn din db i databasevinduet > Fanen forespørgsler > Ny.
Du kommer nu ind i forespørgslens Designvindue og har en dialogboks med alle dine tabeller. Dobbeltklik på hver tabel hvorfra du ønsker data. Herefter lukker du dialogboksen.

Nu tager hver tabel og vurderer hvilke felter du ønsker med i forespørgslen. Dobbelt på hvert felt, og du vil se, at felterne flyttes ned i forespørgslens gitter.

Når du har alle felter (du kan senere tilføje flere), lukker du forespørgslen og er nu tilbage i databasevinduet.

På din værktøjslinie finder du ikonet for autoformular og klikker på det. Nu vil Access genere en autoformular indeholdende alle felter fra forespørgslen. Du kan så arbejde videre på den og lave designet som du ønsker.

Start med det og vend så tilbage.
Avatar billede php Novice
10. maj 2004 - 21:39 #3
rantzausgade7
er det på nørrebro
Avatar billede mugs Novice
10. maj 2004 - 21:42 #4
Der er noget du ikke lige har styr på:

Når du åbnjer din db, vil den blive åbnet i databasevinduet, med mindre du har fortalt din db, at den skal gøre noget andet.

Når du åbner en formular vil den åbnes i den første post "den møder", afhængig af, hvordan sortering er sat.

Når du vælger f.eks at oprette en ny post i en formular, vil data blive gemt i de felter / tabeller som data kommer fra. Data vil automatisk blive gemt når du lukker formularen eller flytter til en anden post.
Avatar billede rantzausgade7 Nybegynder
10. maj 2004 - 21:51 #5
Damn, det var hurtigt svaret! ;)
Okay, har lige et par spørgsmål inden jeg prøver at oprette en forespørgsel.
Er det ikke muligt at lave et interface (formular), hvori den "første" IKKE bliver vist? Forestil dig at skulle oprette en post med kundedata via denne formular. Så ville det se lidt mærkeligt ud, at der allerede stod noget tekst i felterne, hvis du forstår? Og kunne man ikke lave denne formular, således at en post, kun blev gemt, når der trykkes på en submit/gem-knap?
Avatar billede rantzausgade7 Nybegynder
10. maj 2004 - 21:51 #6
Muligvis er det også en gade i KBH, men bor altså i Aalborg! ;)
Avatar billede mugs Novice
10. maj 2004 - 21:54 #7
"Er det ikke muligt at lave et interface (formular), hvori den "første" IKKE bliver vist?"
Ja det er muligt, det afhænger af i hvilken tilstand du åbner formularen. Men lad os vente med det.

"Og kunne man ikke lave denne formular, således at en post, kun blev gemt, når der trykkes på en submit/gem-knap?"

Når du har oprettet en post, vil denne altid blive gemt, når du flytter til en anden post, eller lukker din formular. Men du kan agtens lave en knap, der annullerer indtastningen med en kommendo der hedder:

Me.Undo
Avatar billede rantzausgade7 Nybegynder
10. maj 2004 - 21:58 #8
Okay mr. Mugs, så er vi køreklar! ;)
Whats next?
Avatar billede rantzausgade7 Nybegynder
10. maj 2004 - 22:03 #9
Hvis det er nemmere for dig at sende et eks., som du tideligere har lavet, så er det helt iorden med mig! Skulle være muligt at konvertere grundideerne fra sådan et eks. til netop det jeg har brug for!? ;)
Avatar billede mugs Novice
10. maj 2004 - 22:03 #10
Jeg går uid fra du har din formular med relevante data.

Lav nu en ny formular der IKKE har nogen postkilde. Sæt en kommandoknap på den og indtast denne kode i Kommandoknappens hændelsesprocedüre VedKlik:

Private Sub Kommandoknap0_Click()
DoCmd.OpenForm "formular1", acNormal, "", "", acAdd, acNormal
End Sub

når du kommer ind i VBA-editoren vil du se, at markøren står mellen de 2 linier

Private Sub ...o.s.v.
og
End Sub

Disse 2 linier er procedürekroppen, og her imellem skal alle kodelionier placeres. Indsæt kon denne ene linie:

DoCmd.OpenForm "formular1", acNormal, "", "", acAdd, acNormal

Ret evt, formularnavnet "formular2" til det aktuelle
Avatar billede mugs Novice
10. maj 2004 - 22:03 #11
læg din e-mail, og jeg sender om ca 10 min.
Avatar billede rantzausgade7 Nybegynder
10. maj 2004 - 22:06 #12
rantzausgade7@stofanet.dk

Må sandelig indrømme, at du ER den skarpeste kniv i skuffen! :P
Takker ydmygt mester!
Avatar billede mugs Novice
10. maj 2004 - 22:25 #13
db er sendt.
Skarp og skarp - De andre holder nok bare fri iaften :o)
Avatar billede mugs Novice
10. maj 2004 - 22:31 #14
Tak for point og karma :o)
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