Programm für Berechnung Rechteck

Hallo,

ich bin VB Newbie und möchte in Access zur Übung ein Programm zur Berechnung eines Rechtecks schreiben.

  1. der Nutzer kann frei entscheiden, welche Werte gegeben sind, zum Beispiel Seite a und b. Daraus kann man dann den Flächeninhalt und den Umfang berechnen. Oder es können die Seite b und der Umfang gegeben sein, dann kann man a und den Flächeninhalt berechnen.

  2. es müssen immer mindestens 2 Werte eingegeben werden.
    Siehe http://www.mathepower.com/rechteck.php.

Ich weiß nicht, wie ich prüfen kann, welche Werte gerade aktuell gegeben sind. Die Realisation sollte so erfolgen, dass geprüft wird, welches Feld nicht leer ist und das dann anhand der Werte das Ergebnis berechnet wird? Ich hatte es so probiert:

If not isEmpty(a) and not isEmpty(B) Then
Me.f = me.a+me.b
Me.u = 2*me.a+2*me.b
End If

Leider funktioniert das nicht richtig. Wer kann helfen?

Hallo,
Nach dem ‚a‘ und ‚b‘ ja Zahlen sind (und sein sollen) würde ich die Prüfung so machen:

If a > 0 and b > 0 Then

End If

Ich gehe mal davon aus, dass Negativ-Werte eh’ nicht erlaubt sind!!

Wenn ‚a‘ und ‚b‘ noch Zeichenketten (= Strings = Eingaben vom User sind), dann musst Du ‚a‘ und ‚b‘ noch vorher in Zahl umkonvertieren. Das kann man z.B. gleich im ‚If … Then‘ selber erledigen.

If Clng(a) > 0 and Clng(b) > 0 Then

End If

CInt() … siehe Hilfe
CLng() … siehe Hilfe
CSng() … siehe Hilfe
CDbl() … siehe Hilfe
DDec() … siehe Hilfe

Mit ‚On Error‘ (siehe Hilfe), kannst Du dann den Laufzeit-Fehler abfangen, wenn der Benutzer Dir statt Zahlen einen Blödsinn eingibt und Du versuchst diesen Schmarrn in eine Zahl zu konvertieren … das funktioniert dann nämlich nicht!!

greets from michL

Um zu überprüfen welches feld der User eingegeben hat, kannst du das Event KeyPress verwenden.

Bsp:
Im Header des Forms oder Modul:
Private meWitchKey as FieldKeyPressedEnum
Public Enum FieldKeyPressedEnum
Field1 = 1
Field2 = 2
Field3 = 4
Field4 = 8
End Enum

Private Sub myField1_KeyPress(KeyAscii As Integer)
If KeyAscii => 48 AND KeyAscii [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]