Avatar billede eqvaliser Nybegynder
17. februar 2003 - 20:38 Der er 9 kommentarer og
1 løsning

Run-time Error '6' Overflow ?

tja hvad betyder dette ?
Arbejder med et meget simpelt database program.
Som andvender Acces-97 DB,

Som bla lægger nogle beløb sammen fra en tabel.
Og viser summen, på skærmen.

Men når summen overskrider et vis punkt(ved ik hvor)

Får jeg runtime error '6': _ overflow

Nogle forslag =?
Avatar billede eqvaliser Nybegynder
17. februar 2003 - 20:42 #1
tror sgu jeg selv lige fandt noget her

tjek det..

http://www.applecore99.com/gen/gen059.asp
Avatar billede driis Nybegynder
17. februar 2003 - 20:42 #2
Det er (højst sandsynligt) fordi du prøver at lægge en større værdi ind i en variabel, end der er plads til - f.eks. kan et signed integer ikke være større end 32767.
http://driis.mobilixnet.dk/datatyper.htm
Avatar billede driis Nybegynder
17. februar 2003 - 20:44 #3
Avatar billede miknil Nybegynder
17. februar 2003 - 20:46 #4
Som driis påpeger er en integer i VB kun 16 bit, i modsætning til de fleste andre programmeringssprog hvor den er 32 bit.

miknil
Avatar billede kabbak Professor
17. februar 2003 - 20:46 #5
jeg prøvede det samme, jeg lavede om til variant
Avatar billede driis Nybegynder
17. februar 2003 - 22:54 #6
... i øvrigt, hvis du har brug for at gemme et meget stort tal, kan du bruge datatypen Currency i VB6, det repræsenterer et 64 bits decimaltal (max 4 decimaler).

I VB .NET findes der en 64 bit integer datatype (Int64), samt en 128 bit 'float' type (datatypen Decimal)
Avatar billede eqvaliser Nybegynder
18. februar 2003 - 17:37 #7
Okay kom igen her er koden som laver fejlen..
hvad siger i jeg skal.,.  ændre DIM =?=???

*****************************************************


Private Sub CMDstatus_Click()

msg = "Der er ingen data at arbejde med"
If Data1.Recordset("ID") = "" Then
  svar = MsgBox(msg, vbOKOnly, "fejl")
  end sub
End If
 
 

Dim opdaterbelob As Integer
Dim opdaterbelob2 As Integer
Dim opdaterbelob3 As Integer
Dim opdaterbelob4 As Integer

opdaterbelob = 0
opdaterbelob2 = 0
opdaterbelob3 = 0
opdaterbelob4 = 0

  Do While Data1.Recordset.EOF = False
 
    If Data1.Recordset("antal %") = 6 Then
      opdaterbelob = opdaterbelob + Data1.Recordset("belob")
    End If
   

    If Data1.Recordset("antal %") = 8 Then
      opdaterbelob2 = opdaterbelob2 + Data1.Recordset("belob")
    End If
   
    If Data1.Recordset("antal %") = 10 Then
      opdaterbelob3 = opdaterbelob3 + Data1.Recordset("belob")
    End If
   
    Data1.Recordset.MoveNext
   
  Loop

Data1.Recordset.MoveFirst

opdaterbelob = opdaterbelob * 6
opdaterbelob = opdaterbelob / 100

opdaterbelob2 = opdaterbelob2 * 8
opdaterbelob2 = opdaterbelob2 / 100

opdaterbelob3 = opdaterbelob3 * 10
opdaterbelob3 = opdaterbelob3 / 100

BLK6BELOB.Caption = (opdaterbelob)
bilka8total.Caption = (opdaterbelob2)
fotextotal.Caption = (opdaterbelob3)
   
opdaterbelob4 = opdaterbelob4 + opdaterbelob3
opdaterbelob4 = opdaterbelob4 + opdaterbelob2
opdaterbelob4 = opdaterbelob4 + opdaterbelob

ialt.Caption = (opdaterbelob4)

End Sub
Avatar billede eqvaliser Nybegynder
18. februar 2003 - 17:39 #8
p.S har desværre ikk VB.NET  bruger den gamle vb6
Avatar billede eqvaliser Nybegynder
18. februar 2003 - 17:51 #9
currency virker fint
Avatar billede mort-gib Nybegynder
18. februar 2003 - 17:55 #10
Suk, de har ret, din var er for lille...
-Brug double den skulle kunne gøre det :-)
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
Kurser inden for grundlæggende programmering

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