Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Grenzwerte abhängig von Kombinationsfeld

Begonnen von myhanni, Juni 25, 2010, 22:26:56

⏪ vorheriges - nächstes ⏩

myhanni

Hallo,
ich bin ein totaler VBA-Neuling. Also hier mein Problem:
Ich habe ein Formular, in welchem ich über ein Kombinationsfeld verschiedene Produkte auswählen kann. Die Frequenzen dieser Produkte sollen in einem bestimmten Bereich liegen. Daher steht in der 1. Spalte des Kombinationsfeldes das Produkt, in der 2. die untere Grenze und in der 3. die obere Grenze. Weiters gibt es in diesem Formular dann 10 Felder in denen die Frequenzen zu dem ausgewählten Produkt eingetragen werden.
Ziel wäre, dass, wenn die gemessene Frequenz außerhalb des Bereichs liegt eine Meldung erscheint und der Wert rot geschrieben wird.


Private Sub txtFrequenz1_AfterUpdate()
   If Me!txtFrequenz1 < Me!cboProdukte.Column(1) Or _
      Me!txtFrequenz1 > Me!cboProdukte.Column(2) Then
       MsgBox "Wert liegt außerhalb des akzeptablen Bereichs!"
       Me!txtFrequenz1.ForeColor = 255
     Else
       Me!txtFrequenz1.ForeColor = 0
   End If
End Sub


Ich habe weitere 9 Felder für die Frequenzeingabe in diesem Formular. Hab dann im Code einfach txtFrequez2 usw. geschrieben.
Wenn ich jetzt eine Frequenz eingebe, dann kommt aber immer die Meldung und der Wert wird immer rot geschrieben, egal ob der Wert innerhalb oder außerhalb des Bereichs liegt.

Wo ist da der Fehler???

Bitte kann mir jemand weiterhelfen, denn ich verzweifle schon langsam :-[

database

#1
Hallo,

versuch mal das:


Private Sub txtFrequenz1_AfterUpdate()
If Me!txtFrequenz1 < Me!cboProdukte.Column(1) Then
   MsgBox "Wert liegt außerhalb des akzeptablen Bereichs!"
   Me!txtFrequenz1.ForeColor = 255
ElseIf Me!txtFrequenz1 < Me!cboProdukte.Column(2) Then
   MsgBox "Wert liegt außerhalb des akzeptablen Bereichs!"
   Me!txtFrequenz1.ForeColor = 255
Else
   Me!txtFrequenz1.ForeColor = 0
End If
End Sub

myhanni

Hallo,

es funktioniert einfach nicht. Habs jetzt mit deinem Code probiert, aber es geht auch nicht. Ganz egal, ob der Wert innerhalb oder außerhalb der Grenze liegt, es kommt immer die Meldung und die Zahl wird rot geschrieben.
Hab jetzt eine Bsp-DB angehängt. Vielleicht mache ich ja sonst irgendwas falsch. Kenn mich in Access ja noch nicht so gut aus...
Im Kombinationsfeld hab ich 4 Spalten, bei der ersten hab ich die Breite auf 0 gestellt, das kann ja nicht das Problem sein, oder?

Wäre toll, wenn mir jemand weiterhelfen könnte.


[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,
ich habe zunaächst mal die Beziehungen geändert. Wenn ein Autowert vorhanden ist, nimmt man den als PK.
Für einen Zahlenvergleich solltest Du noch in einen Ganzahl konvertieren mit CInt(). Kombifelder machen aus Zahlen Texte.
Ich habe jetzt nicht großartig getestet, ob das Ergebnis stimmt. Aber die meldungen kommen jedenfalls richtig.

DB anbei.



[Anhang gelöscht durch Administrator]
Gruß
Klaus

myhanni

Super, jetzt funktioniert es!
Vielen Dank!
Hast mir mein Wochenende gerettet!!! ;D