Neuigkeiten:

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

Mobiles Hauptmenü

Berechnungs-Button

Begonnen von YvS, August 26, 2014, 09:04:13

⏪ vorheriges - nächstes ⏩

YvS

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)


MzKlMu

Hallo,
und wie erfolgt die zutreffende Auswahl der Zeilen?

Das würde man eh nicht per VBA machen, sondern per Aktualisierungsabfrage.
Gruß Klaus

YvS

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.. :'(

MzKlMu

Hallo,
diese Aussage hilft gar nix.
Das lässt keinen Schluss zu über welche Felder die Verknüpfung erfolgt.
Gruß Klaus

DF6GL

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")
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access