24. september 2004 - 16:45Der er
25 kommentarer og 1 løsning
Access formular
Mit problem består i hvordan jeg lige skal gøre dette. Prøver så godt jeg kan at beskrive dette. Jeg har en Formular som hedder ”Musik aftalebekræftelse” den har relation til 3 tabeller. Nu har jeg så oprettet en ny Formular som hedder ” Forespørgsel arrangement” den har også relation til de samme 3 tabeller. Det som jeg så gerne vil er når en ”Forespørgsel arrangement” bliver godkendt skal den kunne flyttes over i Formular ” Musik aftalebekræftelse” og derefter slettes fra ”Forespørgsel arrangement” Håber på lidt hjælp.
lav et statusfelt i en af tabellerne 1 = godkendt 2 = ikke godkendt og filtrér så efter om det er den ene eller anden formular. (kan også laves med et boolean (ja/nej) felt)
Prøver at uddybe det lidt mærmere. I den formular som hedder "Musik aftalebekræftelse" der indskriver jeg nye indgået aftaler. Så har jeg oprettet en ny formular "Forespørgsel arrangement" hvor alt bliver skrevet ind, på samme måde som var det i "Musik aftalebekræftelse" men da det kun er en forespørgsel som måske ikke bliver til noget, skal den slettes igen. Hvis den bliver til noget, ønsker jeg at overføre den til "Musik aftalebekræftelse" uden at skulle genindskrive det igen. Ja lidt svært at forstå en andes tankegang.
Så holder jeg fast i ovenstående. Du skal lave et felt i din hovedtabel som angiver om hvorvidt det er en forespørgelse eller om det er et aftalt arrangement. feltet kunne f.eks. hedde status og i det skriver du så f.eks. '1' for forespørgelse og '2' for aftalt.
Når du så åbner den ene form sætter du filter til kun at vise '1' og i den anden '2'.
Du kan evt. forskønne '1' og '2' med en combobox (jeg ved ikke hvad sådan én hedder på Dansk). Du kan også lave den direkte i tabellen som en combobox.
Er enig med ricky. Der er ikke behov for flere tabeller.
Og dog. Hvis man f.eks har priser i en relateret tabel og en forespørgselse indeholder parametre som f.eks priser på oprydning, kan disse priser jo ændres i takt med, at udviklingen i samfundet ændrer lønningerne, eller en ændring af momssatsen. Hvis det så er nødvendigt at beholde historikken i de bekræftede aftaler, er det nødvendigt at sende data over i en anden tabel.
ricky det er helt sikker rigtig det som du beskriver, men jeg er bare ikke lige med på hvordan du mener jeg skal gøre dette. I tabellen arrangement har jeg oprettet et nyt felt "forespørgsel" med kriterier "Is Not Null" som vises i den nye formular "forespørgsel" og viser også kun dem hvor der er indtastet en dato i feltet forespørgsel. Nu er den så blevet godkendt og skal vises i "Musik aftalebekræftelse" ?????
I tabellen arrangement har du alle aftaler uanset om de er bekræftede eller ej. Her har du feltet "forespørgsel" (iøvrigt et dårligt navn, idet det kan forveksles med objektet forespørgelse). Humlen er nu, at du skal have 2 formularer, der har hver sin postkilde, den ene med kriteriet 1 i feltet forespørgsel og det andet med kriteriet 2.
Der er andre og mere elegante måder at gøre det på, men lad os nu få dette til at køre, inden vi går videre.
Det er nok rigtig med kun en tabel. Men nu har jeg lavet 2 ens tabeller hvor den ene hedder " Aftalebekræftelse" den anden "Forespørgsel" Synes det er lettes at styre. Lad os nu sige der ligger 5 poster i "Forespørgsel" nr. 4 post er blevet godkendt og denne skal flyttes over i "Aftalebekræftelse" Derefter sletter jeg nr. 4 post i Forespørgsel. Men hvad skal jeg bruge for at flytte post 4.
Det nemmeste du kan gøre, er at lave en tilføjelsesforespørgsel. Åbn db i databasevinduet > Fanen forespørgsler > Ny og kald den tabel der skal mlevere data infd i designgitteret og sæt alle relevante felter ned i forespørgselsgitteret. Derefter vælger du forespørgsler på menulinien og vælg Tilføjelsesforespørgsel og vælg den tabel der skal modtage data.
I din tilføjelsesforespørgsel skal du have et kriterie, der identificerer den post der skal overføres til "Aftalebekræftelse". Afhøngig af, hvordan din db er skruet sammen, kan du gøre det på flere måder.
Hvis den pågældende aftale er den aktuelle post i din formular, kan du henvese til denne post, ved at indtaste flg. i forespørgslens felt:
[Forms]![FORMULARNAVN]![FELTNAVN]
Herefter kan du køre forespørgslen fra din formular således:
Docmd.OpenQuery "FORESPØRGSLENS NAVN"
Når tilføjelsesforespørgslen køres, vil du nu få en advarsel om, at du er ved at tilføje en post. Denne advarsel kan du undlade ved denne kode:
bravida>> da du ikke er mere erfaren vil jeg umiddelbart foreslå den oprindelige metode, da det klart er den mest simple..
..og ellers vil jeg overlade den anden metode helt til mugs, da jeg dels ikke er enig i at det er måden at gøre det på (ville have lavet det i ren kode, når nu det skal være) og desuden vil det forvirre mere end det gavner.
Det er korrekt, at det optimale vil være, at lave det hele i ren kode. Men som du selv påpeger, er det største problem nok spørgerens manglende erfaring i Access. Det er dette der gør, at jeg ikke foreslår det hele i ren kode, idet vi så skal kende feltnavnene. Bruger du tilføjelsesforespørgsler har du Access til at hjælpe dig.
Og jeg kan absolut ikke se, at det forvirrer mere end det gavner. På lige netop dette påunkt er vi meget uenige :o)
Nej mit problem er ikke løst, men arbejder videre med denne. Prøver at bruge nogle af jeres forslag. Mangler lige et svar fra ricky så jeg kan afslutte dette emne. Så tak til jer begge to.
ricky > Det synes jeg ikke du skal. Jeg tilbød at se på den, fordi det er et relativt simpelt problem. Du gav jo den første salomoniske løsning, så du tilkommer da også noget "løn"
Iøvrigt er db returneret til bravida med et par forespørgsler og et par gode råd.
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.