Jag gör ett program som skriver ut fakturor. Summorna ligger rätt ofta över 100.000 och innehåller dessutom decimaler. Vilken variabeltyp ska jag använda för den totala summan? double kan vara bra eller single .. Tyvärr funkar det inte. tomma ?? Det låter underligt, ta bort on error och se om ngt annat strular för dig isf ... double klarar av rätt mycket och 100 000 är små siffror för den typen .. Däremot får du se till att decimalerna skrivs med , och inte . för att vara på den säkra sidan ... Eftersom det inte är jag som använder programmet kan jag inte alltid testa mina funktioner på den andra datorn! Han som har mitt program är inte den bästa när det gäller datorer och han kan ha lite fel eftersom jag har uppdaterat hans programvara en gång. En anvädare har aldrig fel! Problemet är automatiskt ditt eftersom programmet tillåter felaktig indata. Du måste själv i programmet se till att textfält bara accepterar data som du kan använda i din rutin eller att programmet vänligt och bestämt informerar användaren vad användaren gjort för fel innan rutinen körs. Är det verkligen så bra lösning det där? Användaren kan ju mycket väl ha något annat än kommatecken som decimaltacken, ganska vanligt i USA tex... "oooooooo-la-la-la-la" Nej, det var ämnat att lösa det nämnda problemet med . och ,Stora variabler
/MickeSv: Stora variabler
se bara till att du inte använder money ... Sv: Stora variabler
Jag har satt "On error resume next" för att vara säker på att inte allt rasar. Då blir fältet tomt...Sv: Stora variabler
Sv: Stora variabler
Det här med . istället för , är ett STORT problem. På engelska maskiner används . som decimaltecken. Medan på svenska maskiner används ,
Är det någon som har en bra lösning på detta får gärna höra av sig! Jag har haft stora duskussioner ang. detta!Sv: Stora variabler
Minimikrav för felhantering kan kanske vara någon i stil med:
Private Sub Text1_Validate(Cancel As Boolean)
On Error GoTo Text1_Validate_Error
Dim dblData As Double
dblData = CDbl(Replace(Text1.Text, ".", ","))
Text1_Validate_Exit:
Exit Sub
Text1_Validate_Error:
Select Case Err
Case 13
MsgBox "Angivet värde är inte ett belopp!"
Case Else
MsgBox Error
End Select
Resume Text1_Validate_Exit:
End Sub
'On Error Resume Next' är exvivalent med att blunda, hålla för öronen. "oooooooo-la-la-la-la"Sv: Stora variabler
Sv: Stora variabler
och att i övrigt peka på att "det är inte jag som använder programmet" och "jag kan inte testa allt" inte är ett bra utgångsläge.
/Jocke