Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: YvS am August 26, 2014, 09:04:13

Titel: Berechnungs-Button
Beitrag von: YvS am August 26, 2014, 09:04:13
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)

Titel: Re: Berechnungs-Button
Beitrag von: MzKlMu am August 26, 2014, 09:22:36
Hallo,
und wie erfolgt die zutreffende Auswahl der Zeilen?

Das würde man eh nicht per VBA machen, sondern per Aktualisierungsabfrage.
Titel: Re: Berechnungs-Button
Beitrag von: YvS am August 26, 2014, 09:38:36
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.. :'(
Titel: Re: Berechnungs-Button
Beitrag von: MzKlMu am August 26, 2014, 09:55:08
Hallo,
diese Aussage hilft gar nix.
Das lässt keinen Schluss zu über welche Felder die Verknüpfung erfolgt.
Titel: Re: Berechnungs-Button
Beitrag von: DF6GL am August 26, 2014, 10:04:41
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")