23. august 2006 - 13:49Der er
28 kommentarer og 1 løsning
Hvor er datasheet?
Jeg koder normalt i VB, men nu har jeg rodet mig ud i noget VBA. Her leder jeg efter et datasheet til at vise mine data i. Men hvor er den? Sidder med Office 2003. Skulle gerne kunne opdatere den med data on the fly.
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.
Den skal jeg lige have engang til. Kan man ikke sætte et dataark objekt ind på en formular, og derefter tilføje de data der skal være deri? Som man gør det i VB.
Du kan lave en formular med bagrund i en tabel eller en forespørgsel og deri kan du redigere dine data. Men jeg tror vi går fejl af hinanden i definitionen af et dataark.
Tror jeg har fundet ud af det. Man skal lave en underformular, der så vises i dataarkvisning. Lidt kryptisk, men okay, der er jo access. Hvordan giver man så dataarket data via en SQLsætning? Det er til en søgeformular, og der skal brugeren kunne vælge hvilken tabel der skal søges i, og så skrive et ord der skal søges efter. Ud fra det bliver der lavet en SQL sætning. Denne sætning skal så tilføjes dataarket, så dataene fra sqlsætningen bliver vist på arket.
Jeg vil anbefale dig, at se lidt nærmere på objekterne i din db, og spesielt sammenhængen mellem tabeller, forespørgsler, relationer og formularer.
Du kan i databasevinduet markere en tabel eller forespørgsel og på din menulinie finde ikonet for autoformular / autorapport og vælge f.eks autoformular, så vil Access generere din formular med din SQL.
Du kan også gå ind på Thomas Jepsen's hjemmeside makeiteasy og under downloads øverst til højre finde en fremragende søgeformular, der kan søge i en forespørgsel der består af flere joinforbundne tabeller.
Alt det der autoformular og wizards, er jeg ikke meget for. Kan bedst li at kode det hele selv, så man har styr på hvad der sker. Kan man ikke sende en sqlsætning til dataarket?
Tak :o) Det var lige det jeg var ude efter, men det virker kun halvt. Den laver det rækkeantal som der er data, men der kommer hverken data, eller kolonneoverskrifter.
Har du dine datafelter inde i formularen. Du gør det utrolig besværligt for dig selv, prøv nu at bruge guiderne, det er det de er der for, og det er den normale måde at lave det på. Du kan så bagefter kontrollere programmeringen og se om alt er, som du vil have det.
Det er ikke fordi at jeg vil være besværlig, men så vidt jeg kan se, kan guiderne ikke opfylde de krav jeg har. Hvis jeg har forstået det korrekt, kan man med VBA kode, lave præcis det samme + meget mere end guiderne kan gøre for en. Og det er VBA løsningen jeg er ude efter. Dataarket (Eller hvad det hedder i access) skal ikke indeholde noget, før man søger efter noget. Og det kan være data fra forskellige tabeller, noget som afhænger af en SQL-sætning der bliver genereret ud fra de valgte søgekriterier.
Jeg har bare brug for at vide hvordan man håndtere data i et dataark via VBA.
Guiderne kan og skal ikke opfylde dine krav. De er ment som en start hvor du efter f.eks. genereringen af en formular koder videre selv.
"Jeg har bare brug for at vide hvordan man håndtere data i et dataark via VBA."
Kan der ikke generelt svares på, og hvad mmener du med et dataark. Normalt arbejder du i formularvisning / -designvisning og koder derfra i selve formularen eller i feltet. I VBA-editoren vælger du først hvornår koden skal eksekveres og derefter hvad koden skal gøre. Her kan du også kalde funktioner der er indlagt i moduler, hvis disse skal kunne kaldes Public d.v.s. fra andre dele af databasen.
Og da vi ikke aner noget som helst om, hvad du ønsker at opnå, er det komplet umulig at svare.
Har være inde på makeiteasy og fundet det eksempel du snakker om. Det er også fint nok, hvis det er den samme tabel man bruger hele tiden. Problemet er bare at jeg selv vil kunne vælge hvilken tabel der skal søges fra, mens programmet kører. Det syntes jeg ikke helt eksemplet ligger op til, men nu er jeg jo heller ikke helt dus med VBA, så det kan være det bare er mig der har set forkert.
Jeg skal prøve at forklare præcist hvad det er jeg vil opnå.
Jeg vil lave en søgeformular.
Øverst skal der være en combobox hvori man vælger hvilken tabel man vil søge i. Under den skal der være et søgefelt, hvori man kan taste et søgeord, der skal søges ud fra.
Nedenunder dette felt, skal være den underformular hvori søgeresultaterne skal fremkomme med dataarkvisning(Det jeg kalder for et dataark).
Jeg vil så efter at der er valgt tabel og søgeord, sende en sqlsætning til underformularen, hvorefter dataene bliver vist. Det er det overordnede(i første omgang:o))
ca 3 felter kan der søges på i hver tabel, og der er 3 tabeller man kan søge i, så det må være 9 felter i det hele. SQL-sætningerne er lavet, kan bare ikke finde ud af at få vist resultaterne i underformularen. Det er der jeg er strandet.
Går jeg ind under underformularen, og sætter postkilde til en tabel, kommer dataene heller ikke frem. Den laver godt nok samme antal rækker som der er i tabellen, og der står i bunden "1 af 5" men der bliver hverken vist nogle data, eller kolonneoverskrifter.
Du skal selvfølgelig have datafelterne med i formen. Du kunne have sparet dig alt det bøvl ved at bruge guiden, for det er netop hvad guiden gør, og intet andet!!!
Jeg skal lige forstå det korrekt. Datafelterne som du omtaler, er det de felter fra tabellen man ønsker data fra? Er det meningen at de skal være på plads på formen inden man kan få vist data? Hvis det er tilfældet, kan jeg godt se det logiske i det, og det kunne guiden sikkert nemt lave for mig, men hvad nu når det ikke kun er en tabel man ønsker data fra, og hvis tabellerne ikke indeholder de samme datafelter? Hvis jeg f.eks under en søgning, ønsker data fra tabel1, og under en anden søgning ønsker data fra tabel2. Det kan jeg ikke se at guiden kan hjælpe mig ud af. Jeg havde tænkt mig, først at angive datafelterne under søgningen, når brugeren havde bestem hvilken tabel han vil søge i.
Helt korrekt - Felterne kommer fra tabellerne og indeholder data. Disse felter SKAL lige på formularen inden du kan se data. En formular uden felter er ingen nytte til.
Access er en relationsdatabase, og det fungerer på den måde, at du har nogle "stamdata" i en tabel. Disse stamdata ønsker du at vise på forskellige måder. Til det brug kan du have flere tabeller med hver sin type af data, og du "plukker" nu data fra disse "stamdata-tabeller" til en 3. tabel. En betingelse herfor er, at dine relationer er iorden.
Relationer er de forbindelser mellem tabeller der tillader, at du viser data i en Query og således for forbundet alle dine tabeller.
Jeg vil gerne lave et simpelt eksempel, blot læg din e-mail.
Tak for din store tålmodighed. Relationerne er på plads. Måske det var på sin plads at fortælle at de 3 tabeller jeg ønsker data fra, har hver deres relationer, og hænger på ingen måde sammen. Man kunne vel sammenligne det med at jeg har 3 databaser med hver deres tabeller. Der kan altså ikke trækkes nogen relation mellem dem. Derfor vil jeg gerne selv fortælle(med VBA, om muligt) at når nu brugeren har valgt at søge i den tabel, så skal disse datafelter oprettes, og hvis brugeren ønsker at søge i den anden tabel, så skal de andre datafelter oprettes. Ved godt at det måske ikke lige er det access ligger op til, men med VBA må det da være muligt. Eller tager jeg fejl? Jeg kan ligge et relationsdiagram op, hvis du ikke forstå hvad jeg mener med de 3 tabeller der ikke hænger sammen.
Du skriver, at du har 3 tabeller med hver sine relationer. Hvordan kan du have relationer i en tabel?
Desuden, "at relationerne er på plads", men tabellerne hænger på ingen måde sammen!!
Der er noget grundlæggende galt i din db.
Du er nødt til at have alle felter i formularen. Men måske var det på sin plads at foreslå, at du laver 3 forskellige søgeformularer, og afhængig af indholdet i din combo, så åbner Access en anden formular, hvor du kan søge i den ønskede tabel.
Select Case combo Case Is = "Tabel1" docmd.openform "Form1" Case Is = "Tabel2" docmd.openform "Form2" Case Is = "Tabel3" docmd.openform "Form3" end select
Jeg kan godt se hvor du vil hen, og jeg prøver lige at lege med det. Her er diagrammet, håber du bedre forstår så. Det er de 3 tabeller computere,monitors og standard_udstyr jeg skal kunne søge i. http://www.bmwworld.dk/upload/relationsdiagram.jpg
En startside hvor du vælger hvilken af de 3 tabeller du vil søge i, her lægger du din combo og en kode der åbner respektive søgeformular. Desuden 3 søgeformularer der søger i hver sin tabel.
At have een søgeformular, der skal søge i 3 forskellige tabeller er naturligvis muligt, men det bliver MEGET omfattende at programmere. Husk at du ikke alene skal have formularen til at søge i en anden tabel, men du skal også have hvert enkelt felt til at skifte postkilde.
Hvordan sender jeg en søgestreng til søgeformularen?
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.