Hallo zusammen.
Ich habe einen Berechnungs-Button in Form eines VBA Codes umgesetzt. Leider funktioniert der Button nur für die Berechnung (Umrechnung von Beträgen in andere Währungen) einer einzigen Zeile. Hat jemand eine Idee, wie man diese Berechnung auf eine variable anzahl an Zeilen erweitern kann, ohne dass man jedes mal auf "Berechnen" drücken muss? Vielleicht mit hilfe eines Arrays oder?
Der Code ist nicht vollständig - nur auszüge aus dem gesamten Block:
Private Sub Preisberechnung_Click()
On Error GoTo fehlerbehandlung
If Me.txtFrankenPreis > 0 Then
Me.txtEuroPreis = Null
Me.txtDollarPreis = Null
Me.txtUmrDollarinCHF = Null
Me.txtUmrEuroinCHF = Null
ElseIf Me.txtDollarPreis > 0 Then
If IsNull(Me.txtUmrDollarinCHF) Then
MsgBox "Bitte geben Sie zuerst einen Umrechnungskurs ein."
End If
Me.txtFrankenPreis = Null
Me.txtEuroPreis = Null
Me.txtUmrEuroinCHF = Null
End If
If Me.GruppenID = 1 Or Me.GruppenID = 3 Or Me.GruppenID = 7 Then
If Me.txtEuroPreis > 0 Then
Me.txtPreis = Round((Me.txtEuroPreis * Me.txtUmrEuroinCHF), 2)
ElseIf Me.txtDollarPreis > 0 Then
Me.txtPreis = Round((Me.txtDollarPreis * Me.txtUmrDollarinCHF), 2)
Hallo,
und wie erfolgt die zutreffende Auswahl der Zeilen?
Das würde man eh nicht per VBA machen, sondern per Aktualisierungsabfrage.
Hi,
Die Auswahl der Zeile erfolgt durch die Verknüpfung eines Kombinationsfeldes im Formularkopf mit einem Textfeld, das sich im Detailbereich befindet.
Um ehrlich zu sein war das ganze eher zufall, dass es geklappt hat. Bin noch ein ziemlicher Anfänger.. :'(
Hallo,
diese Aussage hilft gar nix.
Das lässt keinen Schluss zu über welche Felder die Verknüpfung erfolgt.
Hallo,
Vergiss diese Art und Weise..
Je nachdem, wie die Umrechnungskurse weiter verwendet werden sollen, benötigst Du im Prinzip eine Währungstabelle, in der die akt. gültigen Kurse gepflegt werden.
Dort, wo ein Umrechnungskurs gebraucht wird, liest Du den aktuellen und benötigten Kurs aus der Tabelle aus (z. B: mit Dlookup) und verwendest das Ergebnis weiter.
(Quick&Dirty, unchecked)
tblKurse
KursID (PK, Autowert)
FR (Währung)
Euro (Währung)
USD (Währung)
Kurs_GueltigAb (Datum/Uhrzeit)
.
Public Function fktAktKurs(Waehrung as String)
fktAktKurs=dbEngine(0)(0).Openrecordset("select top 1 [" & Waehrung & "] from tblKurse where Kurs_GueltigAb <= Date() order by Kurs_GueltigAb desc",dbopensnapshot)(0)
End Sub
im Steuerelementinhalt eines Textfeldes, das z. B. den Dollarkurs anzeigen soll, kommt dieses:
=fktAktKurs ("USD")