Avatar billede cgleerup Nybegynder
09. januar 2002 - 15:13 Der er 16 kommentarer og
1 løsning

After Update

Jeg har x antal felter med after update funktioner - men den beregning der foretages i disse felter skal nu ændres - det vil sige at de poster der ligger i databasen på nuværende tidspunkt skal ændres efter disse nye beregninger!

Kan det være rigtigt at jeg skal opdatere disse manuelt, på hver eneste og i hvert eneste felt eller kan man lave et lille trick der opdatere alt? i alle poster
Avatar billede mugs Novice
09. januar 2002 - 15:19 #1
Koden opdaterer tabellens Ja/Nej felt til False:

DoCmd.RunSQL \"UPDATE Tabelnavn SET Tabelnavn.Feltnavn = False;\"
Avatar billede cgleerup Nybegynder
09. januar 2002 - 15:22 #2
Måske jeg er lidt træls, men kan du uddybe det lidt, hvad er det jeg sætter til false og hvordan skal det kunne opdatere alle felter i alle poster!
Avatar billede terry Ekspert
09. januar 2002 - 15:27 #3
cgleerup>If you make your calculations in th e BEFORE update event then the data isnt in th e database yet, and you can CANCEL th eupdate, make your changes and then continee updating again.

There is a parameter in the (forms) BEFORE UPDATE event
set this to true (CANCEL = TRUE) if you wnat too cancle the update

If a+b > 100 then Cancel = TRue
Avatar billede cgleerup Nybegynder
09. januar 2002 - 15:29 #4
Jeg har after updates, og de skal opdaters uden at man skal klikke dem allesammen igennem heletiden - er det muligt ?
Avatar billede mugs Novice
09. januar 2002 - 15:30 #5
Koden svarer til en opdateringsforespørgsel, der ændrer data i tabellen.
I mit tilfælde ændrer du i tabellen Tabelnavn i feltet Feltnavn, som du giver værdien False.
Avatar billede cgleerup Nybegynder
09. januar 2002 - 15:38 #6
jeg tror vi misforstår hinanden.

jeg har 200 poster som alle indeholder de samme felter, men nogle af disse felter er beregnet ud fra nogle andre felter i postern, altså en kalkulering der foretages med en after update eksempelvis.

som eksempel:

på feltet felt2 sidder følgende funktion -
after update, felta + 10

nu skal tallet så ikke længere være + 10 men + 15 i stedet for, og så skal alle poster opdateres efter dette - men det er ikke blot et felt der har ændred sig - det er ganske mange der er beregnet på denne måde - så en måde til at opdatere disse ville være perfekt.

Altså vil jeg gerne have en funktion der aktivere after update på samtlige felter i samtlige poster - kan det lade sig gørè?
Avatar billede tjacob Juniormester
09. januar 2002 - 15:46 #7
I sagens natur ER posterne opdateret i After_Update eventet.

Kan du ikke flytte koden til Before_Update?
Avatar billede terry Ekspert
09. januar 2002 - 15:54 #8
If I understand you correctly the existing records have been calculated wrongly and you now want to update them ALL in one go. Then for new records use the CORRECT calculation, IKKE?
In the debug window (CTRL+G) enter

DoCmd.RunSQL \"UPDATE YourTable SET YourTable.Felta =  YourTable.Felta + 5\"

I am adding only 5 here to make up for the error.
Avatar billede cgleerup Nybegynder
09. januar 2002 - 15:56 #9
kan man slet ikke lave en macro det aktivere after update funktionen.
Avatar billede terry Ekspert
09. januar 2002 - 15:59 #10
DOO YOU WANT TO COORECT YOUR ERROR ONCE or EVERY TIME?
Avatar billede mugs Novice
09. januar 2002 - 16:01 #11
Jeg tror ikke vi misforstår hinanden. Jeg har lavet en lille testdb. læg din email, så sender jeg den.
Avatar billede cgleerup Nybegynder
09. januar 2002 - 16:02 #12
Det er ikke en fejl, men nogle forhold der har ændret sig - og det gør de måske igen. Desuden har jeg før manglet en løsning på problemet hvor jeg har klarret mig med noget der minder om de forslag her - men nu vil jeg have fundet ud af op alle disse handlinger ikke kan kaldes via makroer.

Således at én makro løber alle handlinger igennem så disse afvikles, og det for alle poster.
Avatar billede mugs Novice
09. januar 2002 - 16:05 #13
Du behøver ikke at lave en makro - du kan nøjes med den Update som både Terry og jeg har skitseret!
Avatar billede cgleerup Nybegynder
09. januar 2002 - 16:14 #14
Kan i forklare den lidt bedre for jeg forstår den ikke helt! ?
Avatar billede mugs Novice
09. januar 2002 - 16:21 #15
Hmm - Jeg tror min testdb forklarer en hel del. Men:
Nedenstående kode opdaterer felt3, som er afhængig af felterne felt 1 og felt 2

Private Sub felt2_BeforeUpdate(Cancel As Integer)
felt3 = felt1 + felt2
End Sub

Nu har du så indset, at f.eks er en fejl i beregningen af felt3. Denne skal så rettes, det gør du ved hjælp af en SQL-sætning i en kommandoknap. DENNE SQL GENNEMLØBER ALLE POSTER I Tabel1, OG RETTER DEM TIL DEN NYE UDREGNING:

Private Sub Kommandoknap6_Click()
DoCmd.RunSQL \"UPDATE Tabel1 SET Tabel1.Felt3 = Felt1 - Felt2;\"
Me.Refresh
End Sub

Sender stadig gerne min testdb.
Avatar billede mugs Novice
17. januar 2002 - 07:19 #16
cgleerup > Hvordan går det? Hvis dit problem er løst, burde spørgsmålet kunne lukkes.
Avatar billede cgleerup Nybegynder
17. januar 2002 - 08:51 #17
Beklager ventetiden....

...så var der point til mugs!
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