MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 14.06.2018, 14:41   #1
Bobby1504
MOF User
MOF User
Standard Acc2016 - Loop

Hallo zusammen,

ich hab folgenden Code erstellt. Der funktioniert zwar überaschenderweise, weil ich von VBA nicht so viel Ahnung habe, aber ist der Code auch "sauber"?

Code:

Private Sub Form_Current()

Do Until Me.Recordset.EOF

If Me.Gültigkeit_bis < Date Then

Me.Archiv = True

End If

Me.Recordset.MoveNext

Loop

End Sub
Danke

Bobby
Bobby1504 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 14:45   #2
Ohrkester
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,
ja, aber das Ereignis
Code:

Private Sub Form_Current()
ist falsch gewählt.
Es würde damit bei jedem Datensatzwechsel stattfinden.
Leg es lieber erstmal auf einen Button und überlege, wo es weiterhin sinnvoll wäre.
Ohrkester ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 14:55   #3
Bobby1504
Threadstarter Threadstarter
MOF User
MOF User
Standard

Und wenn ich Form Load() nehme?
Bobby1504 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 14:57   #4
Ohrkester
MOF Koryphäe
MOF Koryphäe
Standard

Servus,
wäre eine überlegenswerte Möglichkeit. Aber ich kenne Deine DB nicht.
Bei jedem Datensatzwechsel wäre es falsch.
Ohrkester ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 15:01   #5
Bobby1504
Threadstarter Threadstarter
MOF User
MOF User
Standard

Okay, Danke. Ich will halt nur sicher gehen, wenn ein Datum bei Gültigkeit_bis in der Zukunft liegt, dass beim Öffnen des Formulars, diese Datensätze ggf. auf Archiv=true gesetzt werden.
Bobby1504 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 15:08   #6
Ohrkester
MOF Koryphäe
MOF Koryphäe
Standard

Servus,
man muss nun unterscheiden, ob mehrere Anwender in der DB unterwegs sind.
Da müsste man dann nochmal neu überlegen.
Dafür bräuchte man dann etwas mehr Details Deiner DB.
Ohrkester ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 15:12   #7
el_gomero
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

Massenänderungen erledigt man am besten per Aktualisierungsabfrage.

__________________

Gruß
Jürgen
el_gomero ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 15:15   #8
Ohrkester
MOF Koryphäe
MOF Koryphäe
Standard

Servus el_gomero,
schon klar, aber es geht erst mal darum, an welchem Zeitpunkt.
Der Code von Bobby1504 ist in Ordnung, wenn auch eher eine Schnecke
verglichen mit der Performance eines SQL-Statements.
Ohrkester ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 15:22   #9
el_gomero
MOF Koryphäe
MOF Koryphäe
Standard

Hi Ohrkester,

ja, man kann nur raten, auch wenn beim Öffnen des Forms genannt wurde. Die anderen Fragmente lassen durchaus Spielraum für andere Lösungen.

__________________

Gruß
Jürgen
el_gomero ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 16:51   #10
ebs17
MOF Guru
MOF Guru
Standard

Öfters ist es hilfreich, erst einmal über Abläufe und Strukturen nachzudenken, ehe man Code zusammenklopft.

Das Setzen eines Archivfeldes auf True ist überflüssig (=> redundante Information), weil bereits der Vergleich Gültigkeit_bis < Date() die gleiche Information enthält und in der Datenherkunft (Abfrage) des Formulars vorgenommen werden kann.

Daneben ist es nicht so durchdacht, bei Datensätzen mit älterer Gültigkeit das Feld Archiv jedes Mal neu auf True zu setzen (sollte ja schon True sein). Im Form_Load findet das nur etwas weniger häufiger statt als beim Current. Einmal würde ausreichen, bzw. wie gesagt (und geübte Datenmodellierer würden mir zustimmen) gar nicht, weil die Information bereits vorhanden ist.

Erst wenn solche Fragen geklärt sind, würde ich über "Sauberkeit" eines konkreten Codes nachdenken.

Wenn es allerdings darum geht, den Rechner ordentlich und ergebnisfrei zu beschäftigen, ziehe ich meine Hinweise zurück.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende

Geändert von ebs17 (14.06.2018 um 17:08 Uhr).
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.