Avatar billede zack Nybegynder
09. juli 2002 - 21:52 Der 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.
Avatar billede mugs Novice
09. juli 2002 - 22:22 #1
Hvad hedder felterne? Hvilket felt skal opdateres til hvad?

Et kort svar for et tekstfelt kan være:

If felt1 = "A" Then
fel2 = "B"
End If

Eller med tal:

If felt1 = 2 Then
felt2 = felt1 * 4
End If
Avatar billede zack Nybegynder
09. juli 2002 - 22:43 #2
Et beløb skal udregnes f.eks.

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.
Avatar billede mugs Novice
09. juli 2002 - 22:52 #3
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?
Avatar billede zack Nybegynder
09. juli 2002 - 23:06 #4
hmmm... den kan gå kold, når der er mange poster, og man kan "komme til", ikke at have sat den til at køre, når det er nødvendigt.
Avatar billede mugs Novice
10. juli 2002 - 14:40 #5
Man kan "ikke komme" til ikke at køre den. Det har du programmeret i din db. Hvis kørslen skal være afhængig af en betingelse:

If et eller andet Then
Do.CmdOpenQuery "et eller andet"
End If
Avatar billede zack Nybegynder
10. juli 2002 - 14:57 #6
Jeg bruger normalt makroer. Hvor skal man skrive denne tekst... i Moduler?
Avatar billede mugs Novice
10. juli 2002 - 16:43 #7
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
Avatar billede zack Nybegynder
10. juli 2002 - 17:33 #8
97 er fint

jesperknudsen@inet.uni2.dk
Avatar billede mugs Novice
10. juli 2002 - 18:09 #9
Sendt
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