Avatar billede rookie44 Juniormester
08. november 2018 - 09:39 Der er 18 kommentarer og
1 løsning

Fejl i løkke

Jeg har et varekartotek med 9501 varenumre. Når jeg laver en opdatering på alle varer, får jeg en fejl ved antal 9494, selv om tælleren er sat til Integer.

Når jeg sletter nogle varer 10-15 stykker, så virker opdateringen igen.

Er der nogen der har bud på hvad der kan være galt.
08. november 2018 - 10:25 #1
Kan du afsløre, hvilken opdatering det du laver?
Avatar billede fdata Forsker
08. november 2018 - 11:09 #2
Hvilken fejl får du?
Det kunne være fejl i dine fødedata (tomt felt eller typefejl eller ...).
Avatar billede supertekst Ekspert
08. november 2018 - 11:13 #3
Måske skal "Komprimer og reparer DB" udføres.
Avatar billede rookie44 Juniormester
08. november 2018 - 11:24 #4
Guru
Disponibel beholdning = beholdning
Forsker
Det tyder det ikke på, hvis jeg tracer derfra hvor fejlen opstår og bruger F8, så kører den resten fint igennem.
Ekspert
Det er gjort.
Avatar billede fdata Forsker
08. november 2018 - 11:34 #5
Har du prøvet at slette poster FØR linjen, hvor fejlen opstår, f.eks. de første 9400 poster (bare for at tjekke evt. datafejl i de sidste 101 poster)?
Avatar billede rookie44 Juniormester
08. november 2018 - 12:23 #6
Forsker
Ja, jeg har prøvet at slette 10-15 varenumre, og så kører det OK.
08. november 2018 - 12:33 #7
Sorry - det bliver man ikke meget klogere af...
Er der noget VBA kode vi kan få lov til at se?
Avatar billede rookie44 Juniormester
08. november 2018 - 12:52 #8
For xVa = To Antalvarer
    rstVare.Edit
      rstVare!DispBehold = rstVare!Beholdning
  rstVare.Update
  rstVare.MoveNext
Next

xVa er erklæret Integer
08. november 2018 - 13:06 #9
Hvad med at skifte til

rstvare.movefirst
Do while not rstVare.eof
    rstVare.Edit
      rstVare!DispBehold = rstVare!Beholdning
  rstVare.Update
  rstVare.MoveNext
Loop
Avatar billede terry Ekspert
08. november 2018 - 13:19 #10
For xVa = To Antalvarer ?
Avatar billede terry Ekspert
08. november 2018 - 13:21 #11
DoCmd.RunSQL "Update YourTable Set DispBehold = Beholdning"
Avatar billede rookie44 Juniormester
08. november 2018 - 13:48 #12
Forsker
Det prøver jeg.
terry
der skal selvfølgelig stå For xVa=1 To Antalvarer
Jeg har problemer med SQL sætninger, du har før hjulpet mig, Men jeg prøver dit forslag også.
Avatar billede terry Ekspert
08. november 2018 - 13:50 #13
you just need to replace YourTable with the name of the table

execute the line of code in vba
Avatar billede rookie44 Juniormester
08. november 2018 - 14:03 #14
Forsker
Den giver samme fejl
terry
Den virker

Kan det være noget med at når jeg bruger en løkke, så kan den ikke nå at opdatere databasen, der ligger for sig selv.
Avatar billede terry Ekspert
08. november 2018 - 14:20 #15
"Kan det være noget med at når jeg bruger en løkke, så kan den ikke nå at opdatere databasen, der ligger for sig selv."

if the code is correct then it should work, but why loop every record when you can do it in one line of code ;-)
Avatar billede rookie44 Juniormester
08. november 2018 - 15:01 #16
Jeg bruger løkker fordi jeg så har mulighed for at trace, og se hvor der er fejl bl.a. i data. Jeg er ikke ret ferm til SQL.
Avatar billede fdata Forsker
08. november 2018 - 15:44 #17
... men hvilken fejl får du, når du kører løkken?
Avatar billede rookie44 Juniormester
08. november 2018 - 15:57 #18
Den springer bare ud af løkken, når den når til nr. 9494. Hvis jeg tracer mig igennem fra nr. 9494 til 9501 ved brug af F8, så går det fint.
Avatar billede fdata Forsker
08. november 2018 - 16:25 #19
Meget mystisk !
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