Avatar billede steen_hansen Forsker
25. april 2001 - 21:47 Der er 58 kommentarer og
1 løsning

Få vist data i labels ved valg i komboboks

Hvordan får jeg vist data på personale i labels ved at vælge et emne fra en kombobok?

Når man vælger en bestemt person fra komboboksen, skal den ansattes navn vises i en label, den sammes lokalnummer i en anden label etc. Alle personens data skal vises i labels, vælger man den næste person, skal dennes data vises i de samme labels.
Avatar billede steen_hansen Forsker
25. april 2001 - 22:28 #1
PS: De data behøver ikke nødvendigvis blive vist i labels. Har du en smartere metode til at få vist data på en ansat ved klik i komboboks, hilses dette også velkomment
26. april 2001 - 08:10 #2
Hej Steen,

I komboboksens \"rækkekilde\" laver du en forespørgsel, som indeholde de kolonner, som du skal bruge.

Egenskaben \"Antal kolonner\" sættes til det respektive
I egenskaben \"Kolonnebredder\" angiver du hvor brede hvert felt skal være, når komboboksen rulled ned. Dvs, hvis nogle af kolonnerne skal være skjult angiver du bredden til nul. Eks: 2;3;0;0;0;0;0
Tallene angiver bredden i cm
Egenskaben \"Bundet kolonne er et tal, som angiver hvilket af felterne i \"rækkekilden\", som matcher \"kontrolelementkilden\". Dvs hvis den første kolonne viser Navn og der står Navn i \"kontrolelementkilden\", angiver du \"Bundet kolonne\" til 1 (da det er den første kolonne\"

Alt dette er grundlæggende og det vidste du sikkert i forvejen.

På komboboksens \"Efter opdatering\"-hændelse lægger du følgende kode:

Me!LabelNavn.Caption = Me!Komboboks.Column(0)
Me!LabelLokalnr.Caption = Me!Komboboks.Column(1)
Me!LabelTlfnr.Caption = Me!Komboboks.Column(2)
...
Osv

Navnene Komboboks, LabelNavn, LabelLokalnr og LabelTlfnr skal selvfølgelig erstattes med de respektive navne på din formular.

/Thomas

Avatar billede steen_hansen Forsker
26. april 2001 - 11:16 #3
Hej Thomas!

Jeg får følgende fejlmeddelelse af assistenten:

<b>Microsoft Access kan ikke finde makroen \"Me!lblNavn\".
Makroen eller makrogruppen findes ikke eller er ny, men er ikke blevet gemt.
Bemærk, at når du indtaster syntaksen makrogruppenavn.makronavn i et argument, skal du angive det navn, som makroens makrogruppe sidst blev gemt under.</b>
26. april 2001 - 11:21 #4
Som jeg skrev, så skal du selv sørge for at navngive felterne korrekt. Hvis du ikke har en label på skærmen, som hedder LblNavn, skal du oprette det...
Avatar billede steen_hansen Forsker
26. april 2001 - 11:23 #5
PS: Jeg indsatte flg. i komboboksens \"EfterOpdatering\":

Me!lblNavn.Caption = Me!cmbAnsatte.Column(0)
Avatar billede steen_hansen Forsker
26. april 2001 - 11:29 #6
Jeg HAR en label skærmen, som hedder lblNavn. Dens caption skal så hentes fra tabellen \"Ansatte\" + fra rækken \"Navn\"?
Avatar billede steen_hansen Forsker
26. april 2001 - 11:30 #7
... under fanebladet andre står \"Navn\" til at være \"lblNavn\"
Avatar billede steen_hansen Forsker
26. april 2001 - 11:46 #8
PS: Du skriver:

Me!LabelNavn.Caption = Me!Komboboks.Column(0)
Me!LabelLokalnr.Caption = Me!Komboboks.Column(1)
Me!LabelTlfnr.Caption = Me!Komboboks.Column(2)

I dit eksempel går jeg ud fra at disse linier skal sættes ind i komboboksens \"EfterOpdatering\"? Men her er kun én linie. Skal disse linier semikolon-separeres?
26. april 2001 - 11:51 #9
Arh! Når du står i egenskaben \"Efteropdatering\" klikker du på den lille knap med (...) til højre for feltet. Herefter vælger du \"Kodegenerator\" hvorefter du kommer ind i VBA-editoren.
Herinde indsætter du de 3 linier (m.m.).

Hjalp det?

/Thomas
Avatar billede steen_hansen Forsker
26. april 2001 - 11:58 #10
Nu får jeg endnu en fejl. Kort fortalt:

Objektet indeholder ikke Automation-objektet \"Me\".

Hvor sættes denne funktion til?
26. april 2001 - 12:03 #11
Me referere til den formular, som du befinder dig på. Dette burde altid virke (har i hvert fald aldrig oplevet andet)

Når du står i VBA-editoren, så prøv at gå i menuen Tools->references.
I den fremkomne dialogboks har du en række afkrydset elementer.
Der burde som standard være disse 4 (hvis du benytter Access 2000):
-Visual Basic....
-Microsoft Access 9.0...
-OLE Automation
-Microsoft ActiveX Data Objects...

Hvis der står \"Missing\" i et af dem, har du en fejl.

Menuen Debug->Compile... kan måske også uddybe fejlen!
Avatar billede steen_hansen Forsker
26. april 2001 - 12:08 #12
De er krydset af, samt DHTML Edit Control for IE5?
Avatar billede steen_hansen Forsker
26. april 2001 - 12:10 #13
Debug->Compile... er inaktiv?
26. april 2001 - 12:12 #14
hmm...
Prøv at kopier og indsæt hele din procedure her:
Private Sub Kombobox_AfterUpdate
...
...
End sub
Avatar billede steen_hansen Forsker
26. april 2001 - 12:15 #15
Undskyld jeg er tungnem :o)

Kan du uddybe den?
Avatar billede steen_hansen Forsker
26. april 2001 - 12:15 #16
UNDSKYLD, nu fattede jeg den. Prøver lige
26. april 2001 - 12:16 #17
:o)
Avatar billede steen_hansen Forsker
26. april 2001 - 12:17 #18
Det havde jeg faktisk allerede prøvet... med det samme resultat?
Avatar billede steen_hansen Forsker
26. april 2001 - 12:17 #19
... den har ikke \"Me\"-funktionen?
26. april 2001 - 12:19 #20
Prøv at markere hele proceduren med musen.
Tryk Ctrl+C
Indsæt hele koden på denne side ved at trykke Ctrl+V

Det var det jeg mente :o)
Avatar billede steen_hansen Forsker
26. april 2001 - 12:22 #21
Private Sub cmbAnsatte_AfterUpdate()
    Me!lblNavn.Caption = Me!cmbAnsatte.Column(0)
    Me!lblAdresse1.Caption = Me!cmbAnsatte.Column(1)
End Sub
26. april 2001 - 12:23 #22
Hmm, det er mystisk. Det ser rigtigt ud.

Prøv evt at maile databasen til tj@makeiteasy.dk
Så skal jeg kigge på den asap...
Avatar billede steen_hansen Forsker
26. april 2001 - 12:24 #23
Det virker som om \"Me\" ikke kan defineres i min Access 2000...
26. april 2001 - 12:25 #24
Du kan erstatte Me med:
Forms!NavnPåForm

prøv det.
Avatar billede steen_hansen Forsker
26. april 2001 - 12:33 #25
Prøver lige...
Avatar billede steen_hansen Forsker
26. april 2001 - 12:36 #26
Ok, nu fik jeg ikke nogen fejlmeddelelse, men der sker intet. De labels får ikke tildelt nogen captions?
26. april 2001 - 12:49 #27
Lad mig lige sikre mig:
Når du i design på formularen og klikker på din lblNavn, hvad står der så i egenskaben \"Navn\"?
lblNavn er ikke blot teksten på etiketten?
Avatar billede steen_hansen Forsker
26. april 2001 - 12:58 #28
Nej, det er ikke labelens caption. Labelens navn (fanbladet \"Andre\" -> \"Navn\") = lblNavn
26. april 2001 - 13:02 #29
okay, så er jeg ved at løbe tør for ideer.
Hvis du vil, er du stadig velkommen til at mail\'e databasen til mig. Så vil jeg formentlig kunne se problemet hurtigt.
Avatar billede steen_hansen Forsker
26. april 2001 - 13:03 #30
Jeg bemærkede, at jeg skrev \"Form!\" istedet for \"Forms!\". Det har jeg lige rettet, men det ændrede ikke ved noget.
Avatar billede steen_hansen Forsker
26. april 2001 - 13:04 #31
Jeg tømmer den lige for følsomme data og mailer den til dig :o)
Avatar billede steen_hansen Forsker
26. april 2001 - 13:17 #32
Den er hermed sendt
26. april 2001 - 13:30 #33
Har sendt den retur.

/Thomas
Avatar billede steen_hansen Forsker
26. april 2001 - 13:31 #34
Er den sendt afsted?
26. april 2001 - 13:32 #35
jep...3 min siden
Avatar billede steen_hansen Forsker
26. april 2001 - 13:33 #36
Det virker! Hvad var der galt? :o)
26. april 2001 - 13:34 #37
Det skrev jeg i mailen... :o)
Avatar billede steen_hansen Forsker
26. april 2001 - 13:37 #38
Min nye bedste ven! 1000 tak!

Jeg har nogle flere udfordringer. Hvis jeg opretter et nyt spørgsmål, vil du så hjælpe? Jeg vil gerne strukturere et smart system, hvori jeg kan se navne og adresser på ansatte, samarbejdspartnere, data på pc\'erne i huset (IP-adresse, installeret RAM etc.). Er det noget du kan/vil hjælpe lidt med?
Avatar billede steen_hansen Forsker
26. april 2001 - 13:38 #39
Og udskrive disse data, om nødvendigt
26. april 2001 - 13:55 #40
Hmmm, det lyder som en større opgave...men man kan købe sig til meget for penge :o)
Min fritid er lidt for værdifuld til at jeg vil bruge flere timer på det - også selvom jeg er blevet udnævnt til \"din nye bedste ven\" haha :o)

Men hvis der er penge i det, såå....

se www.makeiteasy.dk for at se mine priser m.m.

Men det var nok ikke det, du havde regnet med, sorry :o)
Avatar billede steen_hansen Forsker
26. april 2001 - 13:59 #41
Nej, det var det ikke. Blot en hjælp til at komme igang. Men det er 10-4. Det er blot til en lille hjælp i hverdagen, så jeg undgår at have mine data spredt alt for meget.

MEN ... det er vist rigeligt til at komme videre med. Jeg opretter nok bare nogle menuer, det må række :o)

Forøvrigt en flot side, HAR set den.

Steen
Avatar billede steen_hansen Forsker
26. april 2001 - 14:03 #42
Jo, jeg har ét spørgsmål:

Når jeg åbner en formular ved klik i et menupunkt, får jeg (selvfølgelig) den kaldte formular frem. Her indtaster jeg så relevante data.

Hvis jeg efterfølgende vælger et nyt menupunkt, vil jeg gerne have åbnet den nye formular i samme vindue. Forstår du hvad jeg mener?

Er det for uoverkommeligt, eller er det noget du hurtigt kan hjælpe mig med for point, hvis jeg opretter et nyt spørgsmål?
26. april 2001 - 15:04 #43
du kan ikke åbne en ny formular i samme vindue. Vinduet ER formularen, så hvis du åbner en ny formular, får du også et nyt vindue. Du er således nødt til at lukke den gamle formular før eller efter åbningen af den nye formular. Comprende?

Du lukker en formular ved at skrive:
Docmd.Close acform, \"Navn på formular\"
Avatar billede steen_hansen Forsker
26. april 2001 - 15:14 #44
Ja, jeg forstår. Men der er et lille problem: Hvordan kender den ene formular navnet på den anden? Åbner jeg ansatte, vil jeg gerne åbne \"data på pc\'ere i huset\". Hvordan skal den nye formular finde ud af, at det er \"Ansatte\", og ikke \"Samarbejdspartnere\"? (Du får flere point)
Avatar billede steen_hansen Forsker
26. april 2001 - 15:23 #45
Den var lidt kryptisk, så du får den igen.

Jeg har \"Ansatte\" åben
Jeg vil gerne åbne \"PC-specifikationer\"
Hvordan kan jeg sætte Access til at lukke \"Ansatte\", det kunne lige så godt være \"Samarbejdspartnere\", som jeg havde åben?
26. april 2001 - 15:34 #46
Jamen, du placerer jo bare knappen på den formular, som du vil lukke.

Dvs på din \"Ansatte\"-form anbringer du en knap, som åbner \"PC-Specifikationer\" og på \"Samarbejdspartnere\" laver du en knap som åbner ....ja hvad ved jeg?!

Dvs, at du har forskellige knapper til forskellige formularer.
eller har jeg misforstået noget?

/Thomas
Avatar billede steen_hansen Forsker
26. april 2001 - 15:42 #47
Ja, jeg har faktisk lavet en sådan knap (exit-skilt). Kan denne proces automatiseres ved et klik i menupunktet? Jeg vælger først \"Ansatte\". Derefter vælger jeg \"PC-specifikationer\", og \"Ansatte\" lukker automatisk, inden \"PC-specifikationer\" bliver åbnet?
26. april 2001 - 19:16 #48
Jeg er ikke helt sikker på hvad du mener?!

Men hvis du vil lave en knap på menulinien eller på værktøjslinien, skal du oprette et nyt modul (eller bruge et eksisterende) og her oprette en ny function - f.eks. kaldet \"ÅbnPCSpec\".

Public Function ÅbnPCSpec()
    on error resume next
    docmd.Openform \"PC-Specifikationer\"
    docmd.Close acform, \"Ansatte\"
End Function

Derefter trækker du en ny knap op på værktøjslinien/menulinien. Du skal tage den der hedder Filer->Brugerdefineret.
Når den er anbragt det rigtige sted, højreklikker du på den og vælger egenskaber (properties)
I egenskaben \"VedHandling\" (OnAction) skriver du:
=ÅbnPCSpec()

luk og sluk
Herefter skulle det virke...

/Thomas

PS: hvis nogle har lyst til at kommentere brugen af \"On error resume next\", så er jeg villig til at gå ind i en hæftig diskussion om beretigelsen :)
Avatar billede steen_hansen Forsker
26. april 2001 - 19:26 #49
Mjaaaee, jeg åbner \"Ansatte\" fra menuen \"Min menu\" og arbejder i formen. Herefter skal jeg tilføje nogle data fra \"PC\" og vælger den fra menuen. Men samtidig lukkes formen \"Ansatte\" automatisk.

/Steen
26. april 2001 - 23:00 #50
var det ikke det, den skulle??? Nu er jeg ved at være lost!
Skrive lige præcist hvad det er du vil have, at den skal gøre.

sorry, jeg er lidt tungnem... ;-)
Avatar billede steen_hansen Forsker
26. april 2001 - 23:20 #51
Det er ikke dig, der er tungnem, det er mig, der er en tumpe til at forklare :o)

Helt præcist:

1. I en menu vælger jeg \"Ansatte\" og redigerer i data.

2. Jeg er færdig med ansatte og vil gerne arbejde med \"PC speficikationer\".

3. I menuen vælger jeg \"PC speficikationer\".

4. Formen \"Ansatte\" lukker automatisk, og formen \"PC speficikationer\" åbnes nu.

5. Når jeg er færdig med \"PC speficikationer\", kommer jeg i tanke om noget jeg har glemt i \"Ansatte\". I menuen vælger jeg \"Ansatte\" igen og trykker.

6. Nu lukkes \"PC speficikationer\" automatisk, og \"Ansatte\" åbnes.

Er det til at forstå? Eller er det kryptisk?

/Steen
28. april 2001 - 10:55 #52
Undskyld forsinkelsen :o)

Ok, vi er enige om at der er 2 formularer at skifte mellem.
Hvis du laver 2 forskellige functioner i et modul og derved 2 menupunkter, så skal functionerne se således ud:

Public Function ÅbnPCSpec()
    on error resume next
    docmd.Openform \"PC-Specifikationer\"
    docmd.Close acform, \"Ansatte\"
End Function

Public Function ÅbnAnsatte()
    on error resume next
    docmd.Openform \"Ansatte\"
    docmd.Close acform, \"PC-Specifikationer\"
End Function

Så laver du bare 2 knapper/menupunkter, som jeg beskrev tidligere, som kalder hver sin function.

/Thomas
Avatar billede steen_hansen Forsker
28. april 2001 - 11:53 #53
Ok, men hvis der er flere formularer at vælge imellem, kan programmet jo ikke vide hvilket der skal lukkes?

Det er en \"event\"-styret handling, der er tale om. Jeg skal, ved valg af en formular, uanset hvilken formular, lukke den åbne og åbne den valgte. Nu begynder jeg på mit mundlort igen, men jeg håber du ved hvad jeg mener.

Har jeg 14 formularer, er det jo ikke til at vide, hvilken jeg vælger næste gang. Jeg har nr. 12 åben, vælger nr. 8 og derefter nr. 14. Den funktion jeg efterlyser, er én, som lukker den åbne formularer, når jeg vælger en ny.
30. april 2001 - 10:56 #54
Hvis du laver en generel function som nedenstående, vil den lukke den aktive formular samtidig med at den åbner den formular, som du angiver som parameter

Public Function ÅbnForm(Formnavn as String)
    on error resume next
    docmd.Close
    docmd.Openform Formnavn
End Function

Herefter skal du kalde functionen således:
=ÅbnForm(\"Ansatte\")

Man kan også lave en løkke, som lukker alle åbne formularer overhovede inden den åbner den valgte. Men det er måske lidt for meget. Docmd.Close lukker altid bare det aktive vindue.

/Thomas
Avatar billede steen_hansen Forsker
30. april 2001 - 11:17 #55
Det var LIGE nøjagtigt det, jeg efterlyste. Endnu en gang: du er min bedste nye ven :o)

/Steen
30. april 2001 - 11:31 #56
Så lykkedes det alligevel :-)
Avatar billede steen_hansen Forsker
11. maj 2001 - 20:50 #57
Hej Thomas!

Kan du ikke kigge på denne her ved lejlighed?

http://www.eksperten.dk/spm/72016

Eller helst så hurtigt som muligt.

/Steen
Avatar billede steen_hansen Forsker
11. maj 2001 - 21:43 #58
Hej Thomas!

Jeg fik klaret problemet. :o)

/Steen
12. maj 2001 - 08:04 #59
Fint :o)

Jeg nåede heller ikke at se spørgsmålet... :-)

god weekend
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