PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Viusal Basic


Craig
2006-02-22, 14:22:26
Möchte ihm sagen, dass er hier nur "afa = CDbl(tf_afa)" zahlen zulassen soll. Leider bringt er immer wieder eine Fehler Meldung. Bin ziemlich neu mit VB.

Andere Frage noch: Muss ich den "Option Explicit" Befehl schreiben und was bedeutet dieser?


Option Explicit

Private Sub Command2_Click(Index As Integer)
tf_ak = ""
tf_afa = ""
tf_afa.SetFocus

End Sub

Private Sub End_Click()
End

End Sub

Private Sub tf_afa_Change()
afa = CDbl(tf_afa)

End Sub

Rob
2006-02-22, 14:55:18
Hi,

Option Explicit bewirkt, dass du jede Variable explizit deklarieren musst. Ohne diese Option könntest du also mit Variablen arbeiten, die du vorher nicht per DIM deklariert hast (diese Variablen sind dann vom Variant-Datentyp). Das ist zwar bequem, kann aber ziemlich nervig sein, wenn du irgendwo mal einen Tippfehler "einbaust".

Das Double-Erzwingen kannst du am besten mittels des KeyPress-Ereignisses (http://www.aboutvb.de/khw/artikel/khwnuminput.htm) erreichen.

MfG
Rob

Craig
2006-02-22, 15:26:25
Danke für die Hinweise.


Zweiteres sollten wir aber laut Lehrer mit ak = CDBl (tf_ak) machen.

Nur bei mir funktioniert es nicht :(

Juerg
2006-02-22, 16:25:01
Möchte ihm sagen, dass er hier nur "afa = CDbl(tf_afa)" zahlen zulassen soll.Wem möchtest Du das sagen?

Leider bringt er immer wieder eine Fehler Meldung. Bin ziemlich neu mit VB. Wer er?


Andere Frage noch: Muss ich den "Option Explicit" Befehl schreiben und was bedeutet dieser?Verhindert das automatische (implizite) verwenden von Variablen, die nicht deklariert worden sind. Dies ist ein absolutes Muss.


Private Sub Command2_Click(Index As Integer)
tf_ak = ""
tf_afa = ""
tf_afa.SetFocus

End Sub

Private Sub End_Click()
End

End Sub

Private Sub tf_afa_Change()
afa = CDbl(tf_afa)

End Sub

Gelinde gesagt ist dein Code eine einzige Katastrophe. Kauf ein gutes Buch über objekt-orientiertes Programmieren in C#.

Es gibt da diverse Möglichkeiten. Eine davon wäre:
(Eine andere wäre alles ausser Ziffern gar nicht zuzulassen bei der Eingabe und/oder mit API usw...)

Option Explicit

Dim afa As Double

Private Sub tf_afa_Change()

If IsNumeric(tf_afa.Text) Then
afa = CDbl(tf_afa.Text)
Debug.Print afa
End If

End Sub

Juerg
2006-02-22, 16:48:33
Zweiteres sollten wir aber laut Lehrer mit ak = CDBl (tf_ak) machen.

Aaargll... Was zur Hölle soll dieses Statement...
VB hat die saudämliche Angenwohnheit ein Default Property auszuwählen, dass der Entwickler dieser Klasse spezifiziert hat oder eben jenes, dass VB gerade am besten passt. Was nicht in jedem Fall mit der Intention übereinstimmt. Also bitte lass den Lehrer wissen, er solle sich gefälligst zuerst weiterbilden, *bevor* man ihn auf die Allgemeinheit loslässt. grrmblll.. Und dann sag im noch

***** DAS VB DIE DÄMMLICHSTE SPRACHE AUS DIDAKTISCHEN GRÜNDEN IST *****

Habe fertig...

ak = CDbl(tf_ak.Immer_Ein_Property_Spezifizieren)