06. september 2006 - 14:40Der 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.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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.
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.
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 "
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.
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.
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.
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.
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
Selv tak, og tak for point :o), forsat god arbejdslyst med projektet.
Synes godt om
Ny brugerNybegynder
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.