09. juli 2002 - 21:52Der er
8 kommentarer og 1 løsning
Dynamisk felt i tabel
Kan man ikke få et felt, til selv at opdatere et felt i en post. Normalt bruger jeg en opdateringsforespørgsel, til at udregne et felts værdi. Dette er dog ikke optimalt efter min mening.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
At flere post indeholder et felt, som har den samme værdi.
Den samme post har også et andet felt, men disse værdier er ikke det samme. Alle disse værdier skal lægges sammen, for alle dem som har den samme værdi... hehe.. altså den samme værdi i det andet felt.
Mit eksempel gælder kun for felter i den samme post. Når du skal beregne for flere poster, er du nødt til at køre en opdateringsforespørgsel eller indsætte en Update-sætning i din formular. Der er flere eksempler på eksperten, men den er ikke samarbejdsvillig iaften. Jeg kan f.eks ikke søge på ordet "Update".
Men een ting er helt sikkert: Du kan ikke gøre det på tabelniveau.
Hvad er der iøvrigt i vejen med en opdateringsforespørgsel?
Makroer gør en db tung og langsom, så dem bør du undgå. Makroer er et fint stykke værktøj, men når de fungerer efter hensigten, bør de absolut ændres til en kodestump i VBA. Husk at denne konvertering kan du få Access til at gøre for dig.
VBA skriver du i databasens kodemodul: Åbn en formular i designvisning > Klik udenfor selve formularen på det mørkegrå område > Klik derefter på tryllestaven på din menulinie. Du kommer nu ind i formularens kodemodul. Hvis du vil skrive kode i et kontrolelement trykker du i stedet på kontrolelementet og derefter på tryllestaven. Nu kan du skrive i kontrolelementets kodevindue.
Prøv f.eks at lave en kommandoknap på din formular. Hvis Guiden Kommandoknap starter trykker du på Annuller. Derefter kan du højreklikke på kommandoknappen og vælge egenskaber. I fanen Hændelser sætter du markøren på linien VedKlik (OnClick i engelsk version). Tryk på de 3 små prikker i højre side, i boksen vælg Generator, vælger du Kodegenrrator. Du er nu inde i kommandoknappens kodevindue.
Her skriver du: DoCmd.Close, så linien ser således ud:
Private Sub Kommandoknap5_Click() DoCmd.Close End Sub
Denne kommando vil lukke den aktuelle formular, så du vender tilbage til det sted du kom fra. Hvis du udskifter Ordet Close med Quit, lukker du hele databasen og afslutter Access. Læg mærke til, at når du sætter dit punktum after DoCmd, får du en DropDown liste med alle de muligheder du har indenfor objektet DoCmd
Hvor din kode skal placeres i det aktuelle tilfælde, kan jeg ikke svare på. Det afhænger jo af, hvornår du vil have forespørgslen kørt.
- Skal det være efter oprettelsen af en ny post? - Skal det være efter, at en felt har opnået en bestemt værdi? - Skal det være når du lukker en formular? - Skal det være o.s.v.
Men kommando skal hedde: DoCmd.OpenQuery "Forespørgslens navn"
Jeg kan sende dig et par eksempler på VBA-koder i Accress97. Bruger du andre versioner, kan det sagtens konverteres. Blot læg din e-mail
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.