|
| |

Visual-Basic Einsteiger| Verflixtes Komma | |  | | Autor: Andrew | | Datum: 10.01.02 09:37 |
|
Hey, ich hab bei deinem Code wirklich alles verglichen,letztendlich wollte er dann nur noch ein Komma,aber nicht mehr rechnen.Ich schick dir mal meinen ganzen Code,ich weiß wirklich nicht wo der Haken hängt!
Eigentlich soll er nur ein Komma akzeptieren und wichtig wenn nichts eingegeben ist und Umrechnen gedrückt wird,schmeißt er wieder so nen Laufzeitfehler raus!
Falls du ne Lösung hast,wär das echt super,kann auch ruhig ein bisschen dauern,aber ich knacke an diesen Sachen schon so lange herum und morgen müsste ich es fertig haben!
Ich schicke dir deinen Code als erstes noch mit!Falls du da noch was vergleichen möchtest!
Super vielen Dank im Voraus!
Option Explicit
Private Sub euroanzeigen_KeyPress(KeyAscii As Integer)
Dim intresponse1 As Integer
Select Case KeyAscii
Case 48 To 57, 8, 32, 44, 46
' Nur Zahlen, Backspace, Space, Komma und Punkt
' Punkt wird zu Komma
If KeyAscii = 46 Then KeyAscii = 44
' nur ein Komma zulässig
If InStr(euroanzeigen.Text, ",") > 0 And KeyAscii = 44 Then
KeyAscii = 0
End If
Case Else
' alle anderen Tasten (Zeichen) werden ignoriert
KeyAscii = 0
End Select
End Sub
Private Sub umrechnen_Click()
' Falls die erste Währung dem Euro entspricht,
' dann wird durch die If-Bedingung die zweite Währung
' mit dem entsprechenden Umrechnungsfaktor bestimmt
' und dann der errechnete Wert auf zwei Stellen
' hinter dem Komma gerundet im Labelfeld ausgegeben.
'
' Sonst überprüft die Select Case Fkt.weitere mögliche
' Währungen.
Dim cur_Euro_betrag As Currency
Dim cur_DM_betrag As Currency
Dim cur_Dollar_betrag As Currency
Select Case ErsteWährung.Caption
Case "Euro"
If (ZweiteWährung.Caption = "DM") Then
cur_Euro_betrag = CCur(euroanzeigen.Text)
cur_DM_betrag = cur_Euro_betrag * 1.95583
AnzeigeFremdwährung.Caption = Str(Round(cur_DM_betrag, 2))
Else
cur_Euro_betrag = CCur(euroanzeigen.Text)
cur_Dollar_betrag = cur_Euro_betrag * 0.9
AnzeigeFremdwährung.Caption = Str(Round(cur_Dollar_betrag, 2))
End If
Case "DM"
If (ZweiteWährung.Caption = "Euro") Then
cur_DM_betrag = CCur(euroanzeigen.Text)
cur_Euro_betrag = cur_DM_betrag * 0.511292
AnzeigeFremdwährung.Caption = Str(Round(cur_Euro_betrag, 2))
Else
cur_DM_betrag = CCur(euroanzeigen.Text)
cur_Dollar_betrag = cur_DM_betrag / 2.2
AnzeigeFremdwährung.Caption = Str(Round(cur_Dollar_betrag, 2))
End If
Case "Dollar"
If (ZweiteWährung.Caption = "Euro") Then
cur_Dollar_betrag = CCur(euroanzeigen.Text)
cur_Euro_betrag = cur_Dollar_betrag * 1.1
AnzeigeFremdwährung.Caption = Str(Round(cur_Euro_betrag, 2))
Else
cur_Dollar_betrag = CCur(euroanzeigen.Text)
cur_DM_betrag = cur_Dollar_betrag * 2.2
AnzeigeFremdwährung.Caption = Str(Round(cur_DM_betrag, 2))
End If
End Select
End Sub
Mein Code:
Option Explicit
'Euroumrechner2'
'Allgemeine Variablen'
Dim intresponse1 As Integer
Dim intresponse As Integer
Dim cur_DM_betrag As Currency
Dim cur_Euro_betrag As Currency
Dim cur_Dollar_betrag As Currency
'Die Optionbuttons wurden als Steuerelemente erfasst und nummeriert und damit läßt sich jeder einzelne Optionbutton
'überprüfung und abfragen, ob dieser angeklickt wurde'
'Trifft die Nummer des Steuerelements mit der in der Select Case Funktion geählten Nummer überein'
'So schreibt er die jeweiligen angegebenen Währung in die entsprechenden vorgegegebenen Labels'
'Stimmt die Nummerierung nicht überein,so verfährt er nach der selben Überprüfungsmethode weiter'
Private Sub Auswahl1_Click(Index As Integer)
Select Case Index
Case 0
If Auswahl1(0) Then
ErsteWährung.Caption = "DM"
ZweiteWährung.Caption = "Euro"
End If
Case 1
If Auswahl1(1) Then
ErsteWährung.Caption = "DM"
ZweiteWährung.Caption = "Dollar"
End If
Case 2
If Auswahl1(2) Then
ErsteWährung.Caption = "Euro"
ZweiteWährung.Caption = "DM"
End If
Case 3
If Auswahl1(3) Then
ErsteWährung.Caption = "Euro"
ZweiteWährung.Caption = "Dollar"
End If
Case 4
If Auswahl1(4) Then
ErsteWährung.Caption = "Dollar"
ZweiteWährung.Caption = "DM"
End If
Case 5
If Auswahl1(5) Then
ErsteWährung.Caption = "Dollar"
ZweiteWährung.Caption = "Euro"
End If
End Select
euroanzeigen.SetFocus 'Setzt den Cursor für die Neuberechnung wieder ins Eingabefeld'
End Sub
Private Sub Eingabe_Click() 'Durch Anklicken des Commandbuttons Neue Eingabe'
'werden Eingabe- und Ausgabefelder der Währung(Text- u.Labelfeld) gelöscht'
euroanzeigen.Text = Empty
euroanzeigen.SetFocus 'Setzt den Cursor für die Neuberechnung wieder ins Eingabefeld'
AnzeigeFremdwährung.Caption = Empty
End Sub
Private Sub euroanzeigen_KeyPress(KeyAscii As Integer)
Dim intresponse1 As Integer
Select Case KeyAscii
Case 48 To 57, 60 To 69, 8, 44, 46: ' Durch die Select Case Fkt. sind hier nur die Nummerntasten'
' auswählbar.'
If KeyAscii = 46 Then ' Der Punkt wird in ein Komma umgewandelt.'
KeyAscii = 44
End If
Case Else
euroanzeigen.Text = Empty ' Falls andere Tasten gedrückt werden,werden die sofort gelöscht'
KeyAscii = 8
End Select
End Sub
Private Sub Umrechnung_Click()
'Falls die erste Währung dem Euro entspricht,dann wird durch die If-Bedingung die'
'zweite Währung mit dem entsprechenden Umrechnungsfaktor bestimmt'
'und dann der errechnete Wert auf zwei Stellen hinter dem Komma gerundet im Labelfeld ausgegeben.'
'Sonst überprüft die Select Case Fkt.weitere mögliche Währungen.'
Select Case ErsteWährung.Caption
Case "Euro"
If (ZweiteWährung.Caption = "DM") Then
cur_Euro_betrag = euroanzeigen.Text
cur_DM_betrag = cur_Euro_betrag * 1.95583
AnzeigeFremdwährung.Caption = Str(Round(cur_DM_betrag, 2))
Else: cur_Euro_betrag = euroanzeigen.Text
cur_Dollar_betrag = cur_Euro_betrag * 0.9
AnzeigeFremdwährung.Caption = Str(Round(cur_Dollar_betrag, 2))
End If
Case "DM"
If (ZweiteWährung.Caption = "Euro") Then
cur_DM_betrag = euroanzeigen.Text
cur_Euro_betrag = cur_DM_betrag * 0.511292
AnzeigeFremdwährung.Caption = Str(Round(cur_Euro_betrag, 2))
Else: cur_DM_betrag = euroanzeigen.Text
cur_Dollar_betrag = cur_DM_betrag / 2.2
AnzeigeFremdwährung.Caption = Str(Round(cur_Dollar_betrag, 2))
End If
Case "Dollar"
If (ZweiteWährung.Caption = "Euro") Then
cur_Dollar_betrag = euroanzeigen.Text
cur_Euro_betrag = cur_Dollar_betrag * 1.1
AnzeigeFremdwährung.Caption = Str(Round(cur_Euro_betrag, 2))
Else: cur_Dollar_betrag = euroanzeigen.Text
cur_DM_betrag = cur_Dollar_betrag * 2.2
AnzeigeFremdwährung.Caption = Str(Round(cur_DM_betrag, 2))
End If
Case Else
intresponse = MsgBox(" Bitte geben Sie erst die Währungen ein, Danke !!! ", vbCritical + vbOKOnly, "Fehlermeldung")
End Select
End Sub
'Aufruf einer Messagebox durch den Commandbutton "Beenden",der bei Bestätigung'
'der Messagebox das Programm beendet.'
'Durch die Eingabe von "J" (Asciicode 6 = J) wird das Programm schneller beeendet'
Private Sub Ende_Click()
intresponse = MsgBox("Wollen Sie das Programm wirklich beenden ?", vbYesNoCancel + vbDefaultButton1 + vbExclamation, "Programm beenden")
If intresponse = 6 Then
End
End If
End Sub
Hoffentlich kannst du mir helfen!
MFG Andrew |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|