Frage : Wie kann ich einen Listenkasten füllen, der zeigt, wenn kein Kontakt an den letzten 90 Tagen aufgenommen worden sind und keine Akte einer speziellen Mappe an den letzten 90 Tagen in den Mitgliedstaat-Zugangsformen mit VBA hinzugefügt worden ist?


Ich habe die folgenden Zeichnefolgen. Diese Codes erzeugen Alarme, wenn es nicht Kontakt an den letzten 90 Tagen gegeben hat, oder Faltblatt ist nicht an 90 Tagen aktualisiert worden.

dieses Teil ist für die Kontakte

  Wenn DateDiff („d“, DMax („DateTime1“, „ComCon“, „FundName='" u. Me.FundName u. „'"), Datum) > 90

dieses Teil ist für die Akten (Überprüfung, wenn eine neue Akte hergestellt in einer speziellen Mappe in den letzten 90 Tagen oder nicht)
Allgemeine Funktion NewestFileInFolder (strFolderPath als Schnur) als ganze Zahl
    Schwaches objFSO als FileSystemObject, objFolder als Gegenstand, objFile als Akte, intTemp als ganze Zahl, bolFirstPass, wie Boolesch
    objFSO = CreateObject („Scripting.FileSystemobject“) einstellen
    objFolder = objFSO.GetFolder (strFolderPath) einstellen
    bolFirstPass = richten aus
    Für jedes objFile in objFolder.Files
        intTemp = DateDiff („d“, objFile.DateCreated, Datum)
        Wenn bolFirstPass dann
            NewestFileInFolder = intTemp
            bolFirstPass = falsch
        Sonst
            Wenn intTemp < NewestFileInFolder="" Then="" NewestFileInFolder="intTemp        Ende wenn
    Zunächst
    Gesetztes objFile = nichts
    objFolder einstellen = nichts
    objFSO einstellen = nichts
Funktion beenden

Diese beide ziehen in ein Form10 ein, das für eine Eintragung spezifisch ist (spezifisch für eine Kapital). Diese sind nur für eine Kapital.

Ich möchte die gleiche Sache verursachen, die alle Kapital geht und sucht, und bringe alle Aufmerksamkeit erforderlichen Felder in der vollständigen Datenbank heraus. Und verzeichnet sie auf einem Listenkasten.

danke
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
Privates VorForm_Current ()
        
    Wenn DateDiff („d“, DMax („DateTime1“, „ComCon“, „FundName='" u. Me.FundName u. „'"), Datum) > 90 dann
        Me.lstAlerts.AddItem („UpdateContacts, aktualisieren die Kontakte: es ist mehr als 90 Tage“ gewesen)
    Beenden wenn
    
    Wenn NewestFileInFolder (Me.Folder) >= 90 dann

     Me.lstAlerts.AddItem („UpdateFiles, aktualisieren die Akten: es ist mehr als 90 Tage“ gewesen)
'Me.lstAlerts.AddItem („UpdateFiles, aktualisieren die Akten: es ist mehr als 90 Tage“ gewesen)

    Beenden wenn

    
    
    

Unterseeboot beenden

Privates VorForm_Load ()

    Schwaches intX als ganze Zahl
    
    Für intX = 0 zu Me.lstAlerts.ListCount - 1
        Me.lstAlerts.RemoveItem (intX)
    Folgendes intX
    
    
    Enden-Unterseeboot

Privates VorlstAlerts_DblClick (Löschen als ganze Zahl)

    Fall Me.lstAlerts.Value vorwählen
        „UpdateContacts“ umkleiden
            DoCmd.OpenForm „comform“, „FundName='" u. Me.FundName u. „'“, acDialog
    Ende auserwählt
    
     
Enden-Unterseeboot


Allgemeine Funktion NewestFileInFolder (strFolderPath als Schnur) als ganze Zahl
    Schwaches objFSO als FileSystemObject, objFolder als Gegenstand, objFile als Akte, intTemp als ganze Zahl, bolFirstPass, wie Boolesch
    objFSO = CreateObject („Scripting.FileSystemobject“) einstellen
    objFolder = objFSO.GetFolder (strFolderPath) einstellen
    bolFirstPass = richten aus
    Für jedes objFile in objFolder.Files
        intTemp = DateDiff („d“, objFile.DateCreated, Datum)
        Wenn bolFirstPass dann
            NewestFileInFolder = intTemp
            bolFirstPass = falsch
        Sonst
            Wenn intTemp  < NewestFileInFolder="" Then="" NewestFileInFolder="intTemp" End="" If="" Next="" Set="" objFile="Nothing" Set="" objFolder="Nothing" Set="" objFSO="Nothing" End="" Function="" with="" help="" from="">
           

Antwort : Wie kann ich einen Listenkasten füllen, der zeigt, wenn kein Kontakt an den letzten 90 Tagen aufgenommen worden sind und keine Akte einer speziellen Mappe an den letzten 90 Tagen in den Mitgliedstaat-Zugangsformen mit VBA hinzugefügt worden ist?

Sie konnten beide Überprüfungen in Fragenkriterien errichten.  Sie können die notwendigen Kapitalsinformationen in jede Funktion vermitteln und sie kann die Zahl Tagen zurück zurückbringen.  Jedoch abhängig von, wievielen Kapital Sie haben, könnte dieses wirklich langsam sein, schnell zu tun.  Es konnte besser sein, eine Arbeitstabelle mit den Informationen zu errichten und dem Benutzer dann zu erlauben, sie erforderlichenfalls zu erneuern.  Dann können Sie das listbox auf dieser Arbeitstabelle gründen.

Oder, Sie können eine Spitze denormalize und das LastContactDate und das LastFileDate in der Kapitalstabelle speichern und die falls erforderlich erneuern.  Die würde vermutlich meine Präferenz sein.  In unserem Geschäft kennzeichnen wir berechnete Felder mit einem Suffix von _CALC, damit niemand irrtümlich dem Benutzer erlaubt, es im UI zu ändern.
Weitere Lösungen  
 
programming4us programming4us