Questione : Come posso riempire una casella di riepilogo che mostra se nessun contatto sia stato stabilito in ultimi 90 giorni e nessuna lima si è aggiunta ad un dispositivo di piegatura specifico in ultimi 90 giorni nelle forme di accesso del ms con VBA?


Ho i seguenti insiemi del codice. Questi codici generano gli allarmi quando ci non è stato contatto in ultimi 90 giorni, o il dispositivo di piegatura non è stato aggiornato in 90 giorni.

questa parte è per i contatti

  Se DateDiff (“d„, DMax (“DateTime1„, “ComCon„, “FundName='" & Me.FundName & “'"), data) > 90

questa parte è per le lime (controllo se una nuova lima generata in un dispositivo di piegatura specifico in ultimi 90 giorni oppure no)
Funzione pubblica NewestFileInFolder (strFolderPath come stringa) come numero intero
    objFSO fioco come FileSystemObject, objFolder come oggetto, objFile come lima, intTemp come numero intero, bolFirstPass come booleani
    Regolare il objFSO = CreateObject (“Scripting.FileSystemobject„)
    Regolare il objFolder = objFSO.GetFolder (strFolderPath)
    i bolFirstPass = allineano
    Per ciascuno objFile in objFolder.Files
        intTemp = DateDiff (“d„, objFile.DateCreated, data)
        Se bolFirstPass allora
            NewestFileInFolder = intTemp
            bolFirstPass = falso
        Altrimenti
            Se estremità < NewestFileInFolder="" Then="" NewestFileInFolder="intTemp        del intTemp se
    Dopo
    objFile stabilito = niente
    Regolare il objFolder = niente
    Regolare il objFSO = niente
Concludere la funzione

Questi entrambi inseriscono in un Form10 che è specifico per un'entrata (specific per un fondo). Questi sono soltanto per un fondo.

Vorrei generare la stessa cosa che va e cerca tutti i fondi e metto in evidenza tutti i campi richiesti l'attenzione nell'intera base di dati. E li elenca su una casella di riepilogo.

grazie
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:
36:
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:
Form_Current secondario riservato ()
        
    Se DateDiff (“d„, DMax (“DateTime1„, “ComCon„, “FundName='" & Me.FundName & “'"), data) > 90 allora
        Me.lstAlerts.AddItem (“UpdateContacts, aggiorna i contatti: è stato dei più di 90 giorni„)
    Concluder se
    
    Se >= 90 di NewestFileInFolder (Me.Folder) allora

     Me.lstAlerts.AddItem (“UpdateFiles, aggiorna le lime: è stato dei più di 90 giorni„)
'Me.lstAlerts.AddItem (“UpdateFiles, aggiorna le lime: è stato dei più di 90 giorni„)

    Concluder se

    
    
    

Concludere il sommergibile

Form_Load secondario riservato ()

    intX fioco come numero intero
    
    Per intX = 0 a Me.lstAlerts.ListCount - 1
        Me.lstAlerts.RemoveItem (intX)
    intX seguente
    
    
    Sommergibile dell'estremità

lstAlerts_DblClick secondario riservato (annullamento come numero intero)

    Selezionare il caso Me.lstAlerts.Value
        Mettere “UpdateContacts„
            DoCmd.OpenForm “comform„, “FundName='" & Me.FundName & “'„, acDialog
    Estremità prescelta
    
     
Sommergibile dell'estremità


Funzione pubblica NewestFileInFolder (strFolderPath come stringa) come numero intero
    objFSO fioco come FileSystemObject, objFolder come oggetto, objFile come lima, intTemp come numero intero, bolFirstPass come booleani
    Regolare il objFSO = CreateObject (“Scripting.FileSystemobject„)
    Regolare il objFolder = objFSO.GetFolder (strFolderPath)
    i bolFirstPass = allineano
    Per ciascuno objFile in objFolder.Files
        intTemp = DateDiff (“d„, objFile.DateCreated, data)
        Se bolFirstPass allora
            NewestFileInFolder = intTemp
            bolFirstPass = falso
        Altrimenti
            Se intTemp  < NewestFileInFolder="" Then="" NewestFileInFolder="intTemp" End="" If="" Next="" Set="" objFile="Nothing" Set="" objFolder="Nothing" Set="" objFSO="Nothing" End="" Function="" with="" help="" from="">
           

Risposta : Come posso riempire una casella di riepilogo che mostra se nessun contatto sia stato stabilito in ultimi 90 giorni e nessuna lima si è aggiunta ad un dispositivo di piegatura specifico in ultimi 90 giorni nelle forme di accesso del ms con VBA?

Potreste sviluppare entrambi controlli nei test di verifica di domanda.  Potete comunicare le informazioni necessarie del fondo in ogni funzione e può restituire indietro il numero dei giorni.  Tuttavia, secondo quanto fondi avete, questo potrebbe essere realmente lento fare in moto.  Potrebbe essere migliore costruire una tabella di lavoro con le informazioni ed allora permettere che l'utente le rinfreschi se necessario.  Allora potete basare il listbox su quella tabella di lavoro.

O, potete denormalize una punta ed immagazzinare il LastContactDate e il LastFileDate nella tabella del fondo, rinfrescante secondo i bisogni quelle.  Quella probabilmente sarebbe la mia preferenza.  Nel nostro negozio, indichiamo i campi calcolati con un suffisso di _CALC in modo che nessuno permetta erroneamente che l'utente lo cambi nel UI.
Altre soluzioni  
 
programming4us programming4us