Avatar billede xfox Nybegynder
06. september 2006 - 14:40 Der er 20 kommentarer og
1 løsning

Makere række ved tryk i dataark

Jeg skal have lavet mit dataark mere brugervenligt.
Hvordan får jeg en hel række markeret, når der bliver trykket i et vilkårligt felt i et dataark?
Herefter skal den hente id'et fra den første kolonne i den valgte række, og ligges over i en anden form.
Avatar billede mugs Novice
06. september 2006 - 18:27 #1
Er der tale om en fortløbende formular?
I bekræftende fald, hvorfor vil du så markere en hel række?
Avatar billede xfox Nybegynder
06. september 2006 - 19:15 #2
Hvis du forestiller dig at du har et dataark med oplysninger om kontakpersoner. Der er id, navn, placering osv. Så skal brugeren kunne trykke på et af oplysningerne om den ønskede kontaktperson, og alle kontaktpersonens oplysninger, altså hele række, skal så makeres. Bliver der dobbelklikket et sted på rækken, skal id'et fra rækken overføres til en anden formular.
Avatar billede -anders- Juniormester
06. september 2006 - 20:49 #3
Prøv nedenstående metode, det virker rigtigt godt:

Opret et modul i modulet skriver du:

Function VisPost()
'Her markeres posten i dit dataark'
DoCmd.RunCommand acCmdSelectRecord
'Så skal den underliggende form åbnes som svare til det ID du har'
'På den markeret post'
DoCmd.OpenForm "NavnPåDinForm",,,"ID=" & Form_NavnPåFormDataArk!ID
'Code End'
End Function

Åben nu din dataarksform i design, markere alle tekstbokse og klik på fanebladet Hændelser, ved hændelse VedDobbeltklik skriver Du =VisPost(), du skal ikke ind i vba editoren her.

Gem og luk din dataarksformular, prøv at dobbelklik på en given post du vil nu se at hele posten markeres og den underliggende formular åbnes og viser den post du har dobbeltklikket på.

Fordelen ved denne metode er at koden kun ligger et sted nemlig i modulet, her kan den altid genbruges hvis du feks. senere vil arbejde med en brugerdefineret genvejsmenuer i din dataarksformular.

Metoden kræver at feltet ID er på dataarksformularen samt på den underliggende formular.
Avatar billede xfox Nybegynder
07. september 2006 - 11:21 #4
Hej Anders

Det med markeringen virker helt perfekt. det andet med overførelsen af id'et har jeg lidt problemer med.

Det er udgangspunket:
DoCmd.OpenForm "NavnPåDinForm",,,"ID=" & Form_NavnPåFormDataArk!ID

Jeg har lavet det om til:
DoCmd.OpenForm "hovedmenu",,,"ID=" & Form_computere!ID

Da den nye form der skal åbnes og vises data på hedder "Hovedmenu", og formen id'et skal tages fra hedder "Computere"
Jeg har lavet en public variabel på hovedmenu der hedder ID. Går ud fra at det er på den måde id'et bliver overført. Men kan ikke helt finde "Form_computere!ID
"

Hvad gør jeg galt?
Avatar billede mugs Novice
07. september 2006 - 13:10 #5
Det burde være nok med denne:

DoCmd.OpenForm "hovedmenu"
Forms!hovedmenu!ID.SetFocus
DoCmd.FindRecord Me!ID
Avatar billede xfox Nybegynder
07. september 2006 - 13:31 #6
Når nu koden er i et modul så virker Me ikke. Derfor lavede jeg nederste linie om til:
DoCmd.FindRecord Forms!computere!ID

Men nu siger den at den ikke kan finde formen "computere" skønt den er oprettet. Hvad er der galt med referencen?
Avatar billede mugs Novice
07. september 2006 - 13:49 #7
Nej - Me fungerer ikke i et modul. Men du behøver slet ikke at markere rækken, blot markøren er placeret i den rigtige post, vil koden finde den tilsvarende post i en anden formular.
Avatar billede xfox Nybegynder
07. september 2006 - 13:57 #8
Nu er jeg ikke helt med. ID'et fra posten på dataarket, skal jeg have over til et tekstfelt på formen hovedmenu. Der er ikke noget dataark på hovedmenuen. Hvis bare ID'et kommer over i tekstfeltet på hovedmenuen, kan jeg selv komme videre derfra.

Markeringen virker fint, det er ikke der problemet ligger.
Avatar billede mugs Novice
07. september 2006 - 14:32 #9
Er det ikke en søgning efter en eksisterende post?
Avatar billede xfox Nybegynder
07. september 2006 - 14:45 #10
Jeg har et dataark men en masse data. Når brugeren trykker på et vilkårligt felt, skal id'et fra samme række overføres til enten en variabel, eller et tekstfelt, på min formular der hedder hovedmenu.
Avatar billede -anders- Juniormester
07. september 2006 - 14:49 #11
hej igen prøv med denne her:

DoCmd.RunCommand acCmdSelectRecord
DoCmd.OpenForm "Hovedmenu"
Form_Hovedmenu!Tekstboks = Form_frmDinDataarksForm!ID
Avatar billede xfox Nybegynder
08. september 2006 - 08:33 #12
Den er ikke helt glad for at finde det valgte ID på dataarksformen. Den melder "Object required" til den nederste linie.
Avatar billede -anders- Juniormester
08. september 2006 - 09:38 #13
Hvis du har feltet ID på din dataarksform vil koden virke, er du sikker på at dette felt er på dataarksformen
Avatar billede xfox Nybegynder
11. september 2006 - 08:42 #14
Linien ser sådan her ud:
Form_Hovedmenu!text1.value = Form_seek_computere!ID

Hvor tekstboksen hedder text1, og dataarksformen hedder seek_computere.
Der findes et felt, ved navn id på dataarksformen.
Jeg har prøvet både med text1 og text1.value.

Koden er skrevet ind i en funktion i et modul, der bliver kaldt fra dataarksformen ved dobbeltklik.
Avatar billede mugs Novice
11. september 2006 - 12:12 #15
Prøv at medtage objektsamlingen:

[forms]![Hovedmenu]!text1.value = [Forms]![seek_computere]!ID
Avatar billede xfox Nybegynder
11. september 2006 - 12:23 #16
Det hjælper desværre ikke. Nu skriver den at den ikke kan finde formularen "seek_computere". Men der er altså en formular der hedder det.
Avatar billede mugs Novice
11. september 2006 - 16:09 #17
Er "seek_computere" aktiv, jeg mener ikke du kan referere til en formular, der ikke er aktiv.
Avatar billede -anders- Juniormester
11. september 2006 - 16:49 #18
hej igen

det er mystisk, det burde virke. Du er velkommen til at sende db til anj@bryggemail.dk evt. med lidt forklaring så vil jeg gerne tage et kik på det, husk at zippe mdb filen
Avatar billede -anders- Juniormester
13. september 2006 - 19:21 #19
Database modtaget, rettet og sendt retur, nedenstående kode der ikke virkede:

DoCmd.RunCommand acCmdSelectRecord
DoCmd.OpenForm "Hovedmenu"
[Forms]![Hovedmenu]!text1.Value = [Forms]![seek_computere]!id

Her den rettet version der er testet og virker:

DoCmd.RunCommand acCmdSelectRecord
DoCmd.OpenForm "Hovedmenu"
Form_Hovedmenu!text1 = Form_Seek_Computere!id
Avatar billede xfox Nybegynder
14. september 2006 - 11:06 #20
Jeg siger rigtig mange tak for hjælpen.
Avatar billede -anders- Juniormester
14. september 2006 - 12:37 #21
Selv tak, og tak for point :o), forsat god arbejdslyst med projektet.
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