Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Datumsumwandlung für Schleife
zurück: Dialog zur Pfadauswahl? Gibt es sowas in VBA? weiter: Jeder Benutzer eigenes Formular Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
10Martin
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Dez 2006, 23:53
Rufname:
Wohnort: Lugau bei Chemnitz

Datumsumwandlung für Schleife - Datumsumwandlung für Schleife

Nach oben
       Version: Office 2003

Hallo,

brauche ein Datumsumwandlung in String für die DMax un DMin diese sollen die End- oder Beginnwerte einer Schleife werden.

Habe schon alles aus dem Forum probiert mit dem Ergebniss:

1. Überlauf
2. Typen unverträglich
Code:
DMin(????ent_valuedate?????, "ent_entrys")
Danke für eure Bemühungne
Nouba
nicht ganz unwissend :)


Verfasst am:
29. Dez 2006, 00:45
Rufname:
Wohnort: Berlin


AW: Datumsumwandlung für Schleife - AW: Datumsumwandlung für Schleife

Nach oben
       Version: Office 2003

Hallo Martin,

kannst Du Dein Vorhaben präzisieren, denn ich weiß nicht wo der Schuh drückt und was es mit der Schleife auf sich hat.

PS: Domänenaggregatfunktionen gelten als langsam, weil sie keinen Gebrauch von Indizierungen machen. In Schleifen und Abfragen sollte man deshalb darauf möglichst verzichten.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Gast



Verfasst am:
29. Dez 2006, 19:30
Rufname:

AW: Datumsumwandlung für Schleife - AW: Datumsumwandlung für Schleife

Nach oben
       Version: Office 2003

Hi Nouba,

das mit den DomFunktion ist mir bekannt, was ich eigentlich auch gerade umgehen wollte.

Erstmal zu den o.g. Wünschen:

Die DMin soll für die Schleife den Beginn liefern wo Sie Daten aus einer Tabelle auslesen soll. (Also das kleinste Datum der Tabelle aber evtl. auch ein Datum vom User)

Die DMax soll eigentlich das Ende der Schleife sein und hier somit auch wieder ein Datum. (Also das größte Datum der Tabelle oder evtl. ein durch den User angegebenes Enddatum)

So nun zum Ziel der Sache:

Wie bekannt sind die Domfkt. extrem langsam und zusätzlich bei vielen Daten kommt es zu einer Meldung wie "zu viele Tabellen ID" oder so, was darauf hingedeutet wird das es eine maximale Anzahl von im Hintergrund geöffneteten Tabellen gibt.
Da ich einen Rückgriff bei der Berechnung von durchschnittlich 1000-1500 DS auf die Summe des vorherigen DS machen muss ist dies mit der eigentlichen DomWert-Funktion nicht mehr machbar.
So habe ich die ganze Sache in eine Schleife gepackt die mir jeden berechenten DS in eine Tabelle schreibt und von dort den Wert immer wieder neu holt. Das funkt auch sehr gut und so auch "relativ schnell" auf jeden Fall tausendmal schnelle als DomWert allein!
Noch dazu:

Klassisch gesehen ist DMin das I und DMax-DMin das X für die Schleife.

Danke Razz
Willi Wipp
Moderator


Verfasst am:
30. Dez 2006, 02:54
Rufname:
Wohnort: Raum Wiesbaden

Re: Datumsumwandlung für Schleife - Re: Datumsumwandlung für Schleife

Nach oben
       Version: Office 2003

Hi 10Martin,

leider wird mir aus Deiner Beschreibung das eigentliche Problem immer noch nicht klar.
Was willst Du mit dem min und dem max Datum machen?
Was soll in der Schleife passieren?
Ist ueberhaupt VB-Code noetig, Kannst Du das nicht auch direkt mt einer Abfrage machen?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
10Martin
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Jan 2007, 19:21
Rufname:
Wohnort: Lugau bei Chemnitz


AW: Datumsumwandlung für Schleife - AW: Datumsumwandlung für Schleife

Nach oben
       Version: Office 2003

10Martin am 13. Jan 2007 um 23:03 hat folgendes geschrieben:
Hallo Ihr Zwei,

hab mich jetzt zu großen Buchwerk durchgerungen und mir "Das Access-VBA Codebook" von Addison-Wesley zugelegt.

Dabei habe ich schon mein Fehler erkannt. Werd jetzt mal VBA von Anfang an durchpauken, versuchen, versuchen und Lösungen finden. Sollte ich in stocken kommen werde ich mich melden.

Danke trotzdem nochmal Very Happy

Hi,

so Thema gelöst (mit Buch, immer wieder zu empfehlen Wink )

Ergebniss:
Code:
On Error GoTo fehler
    Dim DBS As ADODB.Recordset
    Dim Conn As New ADODB.Connection
    Dim DBS_II As ADODB.Recordset
    Dim zaeler As Integer
    Dim datdate As Date
    Dim ent_valuedate_old As Date
    Dim ent_totalamount_old As Currency
    Dim ent_totalamount_new As Currency
    Dim ent_interestdays As Integer
    Dim ent_interestamount As Currency

    zaeler = 0
    datdate = Now
    Set DBS = CurrentProject.Connection.Execute( _
        "SELECT ent_id, ent_entrydate, ent_valuedate, " & _
               "ent_resonforpayment,ent_datline, ent_account, " & _
               "ent_contraaccount, ent_totalamount, ent_repayment, " & _
               "ent_interestpayment, ent_debitcreditindicator " & _
          "FROM tbl_entrys " & _
      "ORDER BY ent_valuedate; ", , adCmdText)
    Do Until DBS.EOF
        zaeler = zaeler + 1
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'1. Datensatz bearbeiten und Zinstage auf Null setzen
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        If zaeler = 1 Then
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'Für den nächsten Datensatz die Zins-Berechnungsdatum und den Saldo festhalten
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
            ent_valuedate_old = DBS!ent_valuedate
            ent_totalamount_old = DBS!ent_totalamount
            ent_interestdays = 0
'            Debug.Print zaeler & vbTab & datdate & vbTab & DBS!ent_id & _
'                        vbTab & DBS!ent_entrydate & vbTab & _
'                        DBS!ent_valuedate & vbTab & ent_valuedate_old & _
'                        vbTab & ent_interestdays & vbTab & _
'                        DBS!ent_totalamount
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'Datensatz in die Tabelle schreiben
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
            Set Conn = CurrentProject.Connection
            Set DBS_II = New ADODB.Recordset
            With DBS_II
                .Open "tbl_entrys_temp", Conn, adOpenKeyset, adLockOptimistic
                .AddNew
                .Fields("ent_id_old_temp") = DBS!ent_id
                .Fields("ent_num_temp") = zaeler
                .Fields("ent_date_temp") = datdate
                .Fields("ent_entrydate_temp") = DBS!ent_entrydate
                .Fields("ent_valuedate_temp") = DBS!ent_valuedate
                .Fields("ent_resonforpayment_temp") = DBS!ent_resonforpayment
                .Fields("ent_datline_temp") = DBS!ent_datline
                .Fields("ent_account_temp") = DBS!ent_account
                .Fields("ent_contraaccount_temp") = DBS!ent_contraaccount
                .Fields("ent_totalamount_temp") = ent_totalamount_old
                .Fields("ent_interestdays_temp") = 0
                .Fields("ent_interestamount_temp") = 0
                .Fields("ent_totalamount_new_temp") = ent_totalamount_old
                .Fields("ent_repayment_temp") = DBS!ent_repayment
                .Fields("ent_interestpayment_temp") = DBS!ent_interestpayment
                .Fields("ent_debitcreditindicator_temp") = _
                                                  DBS!ent_debitcreditindicator
                .Update
                .Close
            End With
            Set DBS_II = Nothing
            Set Conn = Nothing
          Else
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'Zinstage berechnen
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
            ent_interestdays = DateDiff("m", ent_valuedate_old, _
                                        DBS!ent_valuedate, _
                                        vbUseSystemDayOfWeek, _
                                        vbUseSystem) * 30 + _
                               DateDiff("d", Day(ent_valuedate_old), _
                                        Day(DBS!ent_valuedate), _
                                        vbUseSystemDayOfWeek, vbUseSystem)
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'Zins berechnen
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
            ent_interestamount = (ent_totalamount_old * 0.09 * _
                                  ent_interestdays) / 36000
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'Endbetrag errechnen
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
            If DBS!ent_debitcreditindicator = -1 Then
                ent_totalamount_new = DBS!ent_totalamount * -1 + _
                                      ent_totalamount_old + ent_interestamount
              Else
                ent_totalamount_new = DBS!ent_totalamount + _
                                      ent_totalamount_old + ent_interestamount
            End If
       
'            Debug.Print zaeler & vbTab & datdate & vbTab & DBS!ent_id & _
'                        vbTab & DBS!ent_entrydate & vbTab & _
'                        DBS!ent_valuedate & vbTab & ent_valuedate_old & _
'                        vbTab & ent_interestdays & vbTab & _
'                        DBS!ent_totalamount & vbTab; ent_interestamount & _
'                        vbTab & ent_totalamount_new
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'Datensatz in die Tabelle schreiben
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
            Set Conn = CurrentProject.Connection
            Set DBS_II = New ADODB.Recordset
            With DBS_II
                .Open "tbl_entrys_temp", Conn, adOpenKeyset, adLockOptimistic
                .AddNew
                .Fields("ent_id_old_temp") = DBS!ent_id
                .Fields("ent_num_temp") = zaeler
                .Fields("ent_date_temp") = datdate
                .Fields("ent_entrydate_temp") = DBS!ent_entrydate
                .Fields("ent_valuedate_temp") = DBS!ent_valuedate
                .Fields("ent_resonforpayment_temp") = DBS!ent_resonforpayment
                .Fields("ent_datline_temp") = DBS!ent_datline
                .Fields("ent_account_temp") = DBS!ent_account
                .Fields("ent_contraaccount_temp") = DBS!ent_contraaccount
                .Fields("ent_totalamount_temp") = DBS!ent_totalamount
                .Fields("ent_interestdays_temp") = ent_interestdays
                .Fields("ent_interestamount_temp") = ent_interestamount
                .Fields("ent_totalamount_new_temp") = ent_totalamount_new
                .Fields("ent_repayment_temp") = DBS!ent_repayment
                .Fields("ent_interestpayment_temp") = DBS!ent_interestpayment
                .Fields("ent_debitcreditindicator_temp") = _
                                                  DBS!ent_debitcreditindicator
                .Update
                '.Close
            End With
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'Für den nächsten Datensatz die Zins-Berechnungsdatum und den Saldo festhalten
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
            ent_valuedate_old = DBS!ent_valuedate
            ent_totalamount_old = ent_totalamount_new
        End If
        DBS.MoveNext
    Loop
    DBS.Close
    Set DBS = Nothing
    DBS_II.Close
    Set DBS_II = Nothing
    Set Conn = Nothing
    Exit Sub
fehler:
    MsgBox Err.Number & " " & Err.Description
Für Empfehlungen bin ich immer offen.

Danke an euch zwei! Very Happy
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Schleife in Abfrage erstellen - Geburtstagsabfrage 2 martinthebest 392 23. Jun 2012, 12:47
martinthebest Schleife in Abfrage erstellen - Geburtstagsabfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Änderungsabfrage in Schleife 15 Kevin_T 790 24. Nov 2009, 09:08
Marmeladenglas Änderungsabfrage in Schleife
Keine neuen Beiträge Access Berichte: Wie komme ich bei "NEIN" aus der Schleife? 2 Roland100 384 11. Feb 2008, 11:37
Roland100 Wie komme ich bei "NEIN" aus der Schleife?
Keine neuen Beiträge Access Formulare: Schleife zum Kopieren 21 Yves2 1415 22. Feb 2007, 19:44
Yves02_1 Schleife zum Kopieren
Keine neuen Beiträge Access Programmierung / VBA: Access / VBA Programmierung einer Schleife 0 wwwnesta 1823 24. Jan 2007, 20:09
wwwnesta Access / VBA Programmierung einer Schleife
Keine neuen Beiträge Access Berichte: Kleines Problem beim Aufsummieren mittels Schleife 19 DieterB 1716 18. Dez 2006, 20:56
DieterB Kleines Problem beim Aufsummieren mittels Schleife
Keine neuen Beiträge Access Programmierung / VBA: Schleife + Uhrzeit 5 TimeOut 598 30. Nov 2006, 10:21
KlausMz Schleife + Uhrzeit
Keine neuen Beiträge Access Programmierung / VBA: Textfelder als controls überprüfen (schleife) 5 fdsa 1204 24. Okt 2006, 22:03
derArb Textfelder als controls überprüfen (schleife)
Keine neuen Beiträge Access Formulare: Schleife für DELETE-Anweisung 8 Stefan1982 691 30. Sep 2006, 00:19
Willi Wipp Schleife für DELETE-Anweisung
Keine neuen Beiträge Access Programmierung / VBA: Speichern von Worddoks aus Access mit hilfe einer schleife? 12 Marama 599 19. Sep 2006, 13:23
Gast Speichern von Worddoks aus Access mit hilfe einer schleife?
Keine neuen Beiträge Access Programmierung / VBA: SQL in Schleife funktioniert nicht 2 pointer 3009 24. Aug 2006, 13:13
pointer SQL in Schleife funktioniert nicht
Keine neuen Beiträge Access Programmierung / VBA: Abbruch des Codes bei Ausdruck eines Berichts in e. Schleife 1 Gast 684 25. Apr 2006, 08:04
Gast Abbruch des Codes bei Ausdruck eines Berichts in e. Schleife
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Editoren Forum