manuale

Transcript

manuale
www.riccardomazzei.roma.it
APPLICATIVO ACCESS FILES ON CD
ARCHIVIAZIONE DEI NOMI DEI FILES DI UN SUPPORTO CON I DATI DEL
PERCORSO, DATA E ORA DI ULTIMO SALVATAGGIO TIPO DI ESTENSIONE DEL
FILE E NOME DEL SUPPORTO
1. Popolazione dei dati (nomefile e caratteristiche) del supporto
da leggere per archiviazione dei dati
Nella costruzione di questa applicazione, la parte più ostica è stata quella della lettura dei
file sul supporto, ho provato diverse strade, access, excel utilizzando le API di window, ma
bastava un nome un po’ lungo oppure un carattere particolare e l’applicativo si bloccava.
Infine ho cercato in rete ed ho trovato uno shareware del costo di circa 30 $ USD, con cui
sono riuscito a leggere tutti i supporti (dischi fissi, cd, dvd, chiavette) senza alcun
problema. Inoltre il SW prevedeva l’uscita dei dati in excel, dove poi mi potevo agganciare
con il mio applicativo “Files-onCD-2000-aggto.mdb”, e pertanto per evitare perdite di
tempo inutili vi consiglio di seguire questa strada. Lo shareware si chiama Whereisit, l’ho
trovato ancora in rete, è arrivato alla revisione 2014.220 ed il costo è di circa 40 $ USD,
soldi che vi posso assicurare sono effettivamente spesi bene, specie se avete da
scandagliare centinaia di supporti CD e DVD dati come ho dovuto fare io.
Se invece volete seguire la strada del fai da te, scrivetemi e vi mando un file xls ed un
applicativo access che a me hanno funzionato a singhiozzo, proprio per il problema delle
API di windows e dei caratteri speciali che bloccano il codice VBA.
Ipotizziamo allora di aver utilizzato Whereisit, e di avere ottenuto il file excel con tutti i nomi
dei file e relative caratteristiche (dovete utilizzare quelle relative ai campi del database di
archiviazione), aggiungo come ultima colonna il nome del supporto (nome del disco fisso,
numero progressivo del CD/DVD, etc quello che utilizzate per riconoscere il supporto, a
questo punto avete il file excel da richiamare nel caricamento del database.
2. Aggiunta dei record al file access Files onCD2000-aggto
Aprire archivio “Files-onCD-2000-aggto.mdb”
nella sezione tabelle importare nela Tabella AppoggioImportDatiDaFoglio
i dati contenuti nel foglio Excel ricavato da Whereisit;
lanciare query QryEliminazioneRecordFileNullsuTabellaAPPOGGIO
lanciare query QryAccodaDaAppoggioATabellaFiles.
1
Si è così provveduto a riversare dalla tabella AppoggioImportDatiDaFoglio i dati nella
tabella TabellaFiles che contiene tutti i record di tutti i CD/DVD.
Chiudere questo file di access.
Immagine del database sezione Tabelle
Immagine della struttura delle tabelle
2
Immagine delle query presenti
AVVERTENZA
Di solito quando si copiano questi due file access, vengono perduti i riferimenti di
indirizzo degli stessi, pertanto và aggionato il collegamento della TabellaFiles nel
database di ricerca, e nello stesso bisogna accedere al codice VBA riportato nel
seguito alle pagine 15,20,21,22, contrassegnato in giallo, e mettere una path reale per
la scrittura del file excel con i risultati della ricerca.
3
3. Procedura gestione archivio tramite file access
Utilizzo del FILES ACCESS “RIC ERCA FILES CD 2000-revxx-yy.MDB”
Questo file permette di ricercare con opportune tecniche di ricerca, i files nell’archivio in
precedenza descritto, utilizzando dei criteri di ricerca molto variegati, e man mano ne
verranno implementati di nuovi, sarà incrementato il numero di revisione.
Descrizione Revisione 1-3 (agosto 2004)
Presenta una maschera di avvio e 4 maschere di ricerca con 4 diversi metodi di ricerca:
maschera di avvio
frmRicerca (1^ maschera)
NOTA BENE:
QUANTO RIPORTATO IN QUESTA GUIDA E IL CODICE UTILIZZATO NEI VARI FILES
ACCESS E’ STATO REPERITO IN RETE, SOPRATTUTTO NEL NEWSGROUP CHE
TRATTA ACCESS E NEL “SITO COMUNE” DEGLI SVILUPPATORI DI ACCESS.
PERTANTO SI RIMANDA A LORO PER L’INGEGNO E L’ARGUZIA DIMOSTRATA, IL
SOTTOSCRITTO HA SOLO INTEGRATO E MODIFICATO QUANTO GIA’ SVILUPPATO
DA ALTRI.
RICCARDO MAZZEI
4
Presenta la possibilità di inserire sino a tre parole , ognuna in un campo specifico (in File,
in Ext, in Folder).
I record risultanti compaiono nella sottomaschera, è possibile tramite casella di comando
inviare i record ad una tabella (TblRisultatoRicerca), e poi eventualmente scegliere di
stampare il report (pulsante Anteprima Report) oppure inviare i dati ad un foglio XLS
(pulsante APRI EXCEL).
FrmRicerca1 (2^ maschera)
5
Con questa maschera abbiamo la possibilità di inserire una variabile nel File e sino a 4
estensioni di file, nel caso interessino di meno, conviene mettere come variabili
integrative a quelle di interesse, parole senza senso, in modo da evitare che
l’applicazione prenda valori Null o blank.
Anche qui la possibilità di costruire una tabella, di aprire una anteprima-report e di inviare
i dati ad un foglio XLS.
6
FrmRicerca2 (3^ maschera)
Con questa maschera abbiamo la possibilità di investigare l’insieme del database dei
files su CD, inserendo sino ad 8 parole che saranno cercate nel campo Folder, due
estensioni di files, e indicare un periodo di ricerca con DataInizio e DataFine.
Anche qui non conviene lasciare le caselle di ricerca vuote o Null, ma inserire parole
senza senso che non daranno risultati.
Con il pulsante Cerca avviene la costruzione della tabella dei risultati, con gli altri
pulsanti, così come nelle maschere precedenti, la possibilità di avere la anteprima-report
o lo scarico dei dati su foglio XLS.
7
FrmRicerca4 (3^ maschera)
Con questa maschera, viene illustrato il metodo delle parole chiave.
8
Bisogna anzitutto costruire una tabella che contenga le parole chiave, per evitare che ci
siano nel DB parole che inizino con la lettera Maiuscola e poi proseguano con la lettere
minuscola, io , in mancanza di idee chiare e di tentativi per chiarire effettivamente come
funziona la query, ho inserito nella tabella le parole chiave senza lettera iniziale.
Poi ho utilizzato come tabella d’appoggio per la ricerca non il DB generale, ma una
tabella ottenuta con il metodo di ricerca 3 (8 variabili nella path, 2 estensioni di file,
periodo individuato ), da questa sono partito con una prima query di cui allego il listato sql
Qry1EsempioRicercaPerParoleChiaveManagement
SELECT TblRisultatoRicercaManagement.File, TblRisultatoRicercaManagement.Ext, TblRisultatoRicercaManagement.Size,
TblRisultatoRicercaManagement.Date, TblRisultatoRicercaManagement.Time, TblRisultatoRicercaManagement.Folder,
TblRisultatoRicercaManagement.Nome_CD
FROM ParoleChiaveManagement, TblRisultatoRicercaManagement
WHERE (((TblRisultatoRicercaManagement.File) Like "*" & ParoleChiaveManagement!Parola_chiave & "*") And
((TblRisultatoRicercaManagement.Ext) Like "*" & Forms!frmRicerca4![txtCercaExt1] & "*") And
((TblRisultatoRicercaManagement.Date) Between Forms!frmRicerca4![txtDataInizio] And Forms!frmRicerca4![txtDataFine])) Or
(((TblRisultatoRicercaManagement.File) Like "*" & ParoleChiaveManagement!Parola_chiave & "*") And
((TblRisultatoRicercaManagement.Ext) Like "*" & Forms!frmRicerca4![txtCercaExt2] & "*") And
((TblRisultatoRicercaManagement.Date) Between Forms!frmRicerca4![txtDataInizio] And Forms!frmRicerca4![txtDataFine])) Or
(((TblRisultatoRicercaManagement.File) Like "*" & ParoleChiaveManagement!Parola_chiave & "*") And
((TblRisultatoRicercaManagement.Ext) Like "*" & Forms!frmRicerca4![txtCercaExt3] & "*") And
((TblRisultatoRicercaManagement.Date) Between Forms!frmRicerca4![txtDataInizio] And Forms!frmRicerca4![txtDataFine])) Or
(((TblRisultatoRicercaManagement.File) Like "*" & ParoleChiaveManagement!Parola_chiave & "*") And
((TblRisultatoRicercaManagement.Ext) Like "*" & Forms!frmRicerca4![txtCercaExt4] & "*") And
((TblRisultatoRicercaManagement.Date) Between Forms!frmRicerca4![txtDataInizio] And Forms!frmRicerca4![txtDataFine]))
GROUP BY TblRisultatoRicercaManagement.File, TblRisultatoRicercaManagement.Ext, TblRisultatoRicercaManagement.Size,
TblRisultatoRicercaManagement.Date, TblRisultatoRicercaManagement.Time, TblRisultatoRicercaManagement.Folder,
TblRisultatoRicercaManagement.Nome_CD;
Poi viene costruita un’altra query che prende i dati dalla prima e ne estrae solo il File, l’Ext, il Size e la Data, (questo al fine di rendere
+ intelligibile l’elenco dei nomi dei files),
QryRicerca4SoloNomeFile
SELECT Qry1EsempioRicercaPerParoleChiaveManagement.File, Qry1EsempioRicercaPerParoleChiaveManagement.Ext,
Qry1EsempioRicercaPerParoleChiaveManagement.Size, Qry1EsempioRicercaPerParoleChiaveManagement.Date
FROM Qry1EsempioRicercaPerParoleChiaveManagement
GROUP BY Qry1EsempioRicercaPerParoleChiaveManagement.File, Qry1EsempioRicercaPerParoleChiaveManagement.Ext,
Qry1EsempioRicercaPerParoleChiaveManagement.Size, Qry1EsempioRicercaPerParoleChiaveManagement.Date;
Poi da questa query costruisco il relativo Report e lo stampo per avere la possibilità di
analizzare i file.
Infine Stampo oppure estraggo su excel la tabella TblRisultatoRicercaManagement.
E’ CHIARO CHE ALLA BASE DELLA 1^ QUERY POSSO INSERIRE LA TABELLA DEL
DB GENERALE INVECE DI TABELLE OTTENUTE DA PRECEDENTI RICERCHE,
L’IMPORTANTE E’ AVER CAPITO QUALI SONO I CRITERI ADOTTATI.
9
DI SEGUITO il codice relativo allo svolgimento delle maschere di cui ai metodi di ricerca
utilizzati nelle varie maschere
Form_frmMAIN
Option Compare Database
Private Sub pulsAprifrmRicerca_Click()
On Error GoTo Err_pulsAprifrmRicerca_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frmRicerca"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_pulsAprifrmRicerca_Click:
Exit Sub
Err_pulsAprifrmRicerca_Click:
MsgBox Err.Description
Resume Exit_pulsAprifrmRicerca_Click
End Sub
Private Sub pulsAprifrmRicerca1_Click()
On Error GoTo Err_pulsAprifrmRicerca1_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frmRicerca1"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_pulsAprifrmRicerca1_Click:
Exit Sub
Err_pulsAprifrmRicerca1_Click:
MsgBox Err.Description
Resume Exit_pulsAprifrmRicerca1_Click
End Sub
Private Sub pulsAprifrmRicerca2_Click()
On Error GoTo Err_pulsAprifrmRicerca2_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frmRicerca2"
10
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_pulsAprifrmRicerca2_Click:
Exit Sub
Err_pulsAprifrmRicerca2_Click:
MsgBox Err.Description
Resume Exit_pulsAprifrmRicerca2_Click
End Sub
Private Sub pulsAprifrmRicerca4_Click()
On Error GoTo Err_pulsAprifrmRicerca4_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frmRicerca4"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_pulsAprifrmRicerca4_Click:
Exit Sub
Err_pulsAprifrmRicerca4_Click:
MsgBox Err.Description
Resume Exit_pulsAprifrmRicerca4_Click
End Sub
11
Form_frmRicerca
Option Compare Database
Private Sub Aggiungi(ValoreCampo As Variant, NomeCampo As String, _
Criteri As String, NumArgomenti As Integer)
' Crea i criteri per la clausola WHERE.
If ValoreCampo <> "" Then
' Aggiunge "and" se esiste un altro criterio.
If NumArgomenti > 0 Then
Criteri = Criteri & " and "
End If
' Accoda il criterio ai criteri esistenti.
' Aggiunge ValoreCampo e l'asterisco tra virgolette.
'NOTA BENE - CRITERIO 1 il codice che segue ricerca la parola all'interno del record
'esempio per "rapa" trova anche "rapato", "rapace" ed anche "derapata"
Criteri = (Criteri & NomeCampo & "Like " & Chr(39) & Chr(42) & ValoreCampo & _
Chr(42) & Chr(39))
'selezionare un criterio anzichè l'altro
'NOTA BENE - CRITERIO 2: il codice che segue ricerca la parola che inizia nel record
'esempio per "rapa" trova anche "rapato" e "rapace"
'Criteri = (Criteri & NomeCampo & "Like " & Chr(39) & ValoreCampo & _
'Chr(42) & Chr(39))
'Aumenta il numero degli argomenti.
NumArgomenti = NumArgomenti + 1
End If
End Sub
Private Sub DisattivaControllo()
' Se attivato, disattiva il controllo nella sezione Corpo dopo
' la modifica del criterio di ricerca.
If Me!SottomascheraRicerca.Enabled Then
AttivaControl Me, acDetail, False
End If
End Sub
Private Sub cmdVisualizza_Click()
On Error GoTo Err_cmdVisualizza_Click
' Crea una clausola WHERE utilizzando i criteri di ricerca immessi
'dall 'utente
' e imposta la proprietà "RecordSource" ("Origine record") della
' SottomascheraRicerca.
Dim MioSQL As String, Criteri As String, MiaOrigineRecord As String
Dim NumArg As Integer
' Inizializza il conteggio degli argomenti.
12
NumArg = 0
' Inizializza l'istruzione SELECT.
MioSQL = "SELECT * FROM [QryRicerca] WHERE "
Criteri = ""
' Utilizza i valori immessi nelle caselle di testo dell'intestazione della
' maschera per creare criteri per la clausola WHERE.
Aggiungi [txtCercaFile], "[File]", Criteri, NumArg
Aggiungi [txtCercaExt], "[Ext]", Criteri, NumArg
Aggiungi [txtCercaFolder], "[Folder]", Criteri, NumArg
' Se non è stato specificato alcun criterio, restituisce tutti i record.
If Criteri = "" Then
Criteri = "True"
End If
' Crea l'istruzione SELECT.
MiaOrigineRecord = MioSQL & Criteri
' Imposta la proprietà "Origine record" della
'SottomascheraRicerca.
Me![SottomascheraRicerca].Form.RecordSource = MiaOrigineRecord
' Se nessun record corrisponde ai criteri, visualizza un messaggio.
' Seleziona il pulsante Cancella.
If Me!SottomascheraRicerca.Form.RecordsetClone.RecordCount = 0 Then
MsgBox "Nessun record corrisponde ai criteri immessi.", 48, "Nessun record trovato"
Me!cmdCancella.SetFocus
Else
'Attiva il controllo nella sezione Corpo.
AttivaControl Me, acDetail, True
'Seleziona la SottomascheraRicerca.
Me!SottomascheraRicerca.SetFocus
'************
'CODICE AGGIUNTO DA RIKI
'************
'Inserisco il comando per il lancio del report in anteprima
'Nota successiva: visto il notevole tempo per costruire il report si disattiva
'la casella di controllo per la selezione e pertanto si inibisce questo uso
If Me!ControlloReport = True Then
DoCmd.OpenReport "ReportRicerca", acViewPreview, , Criteri
Else
End If
'parte inserita per query parametrica con costruzione della tabella risultato ricerca
If Me!ControlloTabRisultato = True Then
DoCmd.SetWarnings False 'blocca gli avvisi
DoCmd.RunSQL "delete * from TblRisultatoRicerca"
DoCmd.OpenQuery "QryRisultatoRicerca", acViewNormal, acReadOnly
DoCmd.SetWarnings True 'ripristina gli avvisi
Beep
13
Msg = "Elaborazione Terminata, Costruzione Tabella Risultato Terminata"
Else
End If
'fine del nuovo inserimento codice
End If
Exit_cmdVisualizza_Click:
Exit Sub
Err_cmdVisualizza_Click:
MsgBox Err.Description
Resume Exit_cmdVisualizza_Click
End Sub
Private Sub cmdCancella_Click()
On Error GoTo Err_cmdCancella_Click
' Cancella i controlli nella intestazione della maschera e rimuove
' i record dalla sottomaschera.
'
Dim MioSQL As String
MioSQL = "SELECT * FROM [QryRicerca] WHERE TRUE"
' Cancella le caselle di testo contenenti i criteri di ricerca.
Me!txtCercaFile = Null
Me!txtCercaExt = Null
Me!txtCercaFolder = Null
' Reimposta la proprietà "Origine record" ("RecordSource")
' della sotto maschera per rimuovere i record.
Me![SottomascheraRicerca].Form.RecordSource = MioSQL
' Seleziona la casella di testo "txtCercaRagioneSociale".
Me![txtCercaFile].SetFocus
Exit_cmdCancella_Click:
Exit Sub
Err_cmdCancella_Click:
MsgBox Err.Description
Resume Exit_cmdCancella_Click
End Sub
Private Sub Form_Open(Cancel As Integer)
Me![txtCercaFile].SetFocus
End Sub
Private Sub txtCercaFile_AfterUpdate()
14
'Disattiva il controllo nella sezione corpo dopo
'la modifica del criterio di ricerca.
DisattivaControllo
End Sub
Private S ub txtCercaExt_AfterUpdate()
'Disattiva il controllo nella sezione corpo dopo
'la modifica del criterio di ricerca.
DisattivaControllo
End Sub
Private Sub txtCercaFolder_AfterUpdate()
'Disattiva il controllo nella sezione corpo dopo
'la modifica del criterio di ricerca.
DisattivaControllo
End Sub
Private Sub PulsOpenReportRisultato_Click()
On Error GoTo Err_PulsOpenReportRisultato_Click
Dim stDocName As String
stDocName = "RepoFromTblRisultatoRicerca"
DoCmd.OpenReport stDocName, acPreview
Exit_PulsOpenReportRisultato_Click:
Exit Sub
Err_PulsOpenReportRisultato_Click:
MsgBox Err.Description
Resume Exit_PulsOpenReportRisultato_Click
End Sub
Private Sub CmdApriFoglioExcel_Click()
On Error GoTo Err_CmdApriFoglioExcel_Click
Dim stDocName As String
DoCmd.OutputTo acOutputTable, "TblRisultatoRicerca", acFormatXLS, "D:\root\filescd\RisultatoRicerca.xls", True
Exit_CmdApriFoglioExcel_Click:
Exit Sub
Err_CmdApriFoglioExcel_Click:
MsgBox Err.Description
Resume Exit_CmdApriFoglioExcel_Click
15
End Sub
Form_frmRicerca1
Option Compare Database
Private Sub Aggiungi(ValoreCampo As Variant, NomeCampo As String, _
Criteri As String, NumArgomenti As Integer)
' Crea i criteri per la clausola WHERE.
If ValoreCampo <> "" Then
' Aggiunge "and" se esiste un altro criterio.
If NumArgomenti > 0 Then
Criteri = Criteri & " and "
End If
' Accoda il criterio ai criteri esistenti.
' Aggiunge ValoreCampo e l'asterisco tra virgolette.
'NOTA BENE - CRITERIO 1 il codice che segue ricerca la parola all'interno del record
'esempio per "rapa" trova anche "rapato", "rapace" ed anche "derapata"
Criteri = (Criteri & NomeCampo & "Like " & Chr(39) & Chr(42) & ValoreCampo & _
Chr(42) & Chr(39))
'selezionare un criterio anzichè l'altro
'NOTA BENE - CRITERIO 2: il codice che segue ricerca la parola che inizia nel record
'esempio per "rapa" trova anche "rapato" e "rapace"
'Criteri = (Criteri & NomeCampo & "Like " & Chr(39) & ValoreCampo & _
'Chr(42) & Chr(39))
'Aumenta il numero degli argomenti.
NumArgomenti = NumArgomenti + 1
End If
End Sub
Private Sub AggiungiOR(ValoreCampo As Variant, NomeCampo As String, _
Criteri As String, NumArgomenti As Integer)
' Crea i criteri per la clausola WHERE.
If ValoreCampo <> "" Then
' Aggiunge "and" se esiste un altro criterio.
If NumArgomenti > 0 Then
Criteri = Criteri & " or "
End If
' Accoda il criterio ai criteri esistenti.
' Aggiunge ValoreCampo e l'asterisco tra virgolette.
'NOTA BENE - CRITERIO 1 il codice che segue ricerca la parola all'interno del record
'esempio per "rapa" trova anche "rapato", "rapace" ed anche "derapata"
Criteri = (Criteri & NomeCampo & "Like " & Chr(39) & Chr(42) & ValoreCampo & _
16
Chr(42) & Chr(39))
'selezionare un criterio anzichè l'altro
'NOTA BENE - CRITERIO 2: il codice che segue ricerca la parola che inizia nel record
'esempio per "rapa" trova anche "rapato" e "rapace"
'Criteri = (Criteri & NomeCampo & "Like " & Chr(39) & ValoreCampo & _
'Chr(42) & Chr(39))
'Aumenta il numero degli argomenti.
NumArgomenti = NumArgomenti + 1
End If
End Sub
Private Sub DisattivaControllo()
' Se attivato, disattiva il controllo nella sezione Corpo dopo
' la modifica del criterio di ricerca.
If Me!SottomascheraRicerca1.Enabled Then
AttivaControl Me, acDetail, False
End If
End Sub
Private Sub cmdVisualizza1_Click()
On Error GoTo Err_cmdVisualizza1_Click
' Crea una clausola WHERE utilizzando i criteri di ricerca immessi
'dall 'utente
' e imposta la proprietà "RecordSource" ("Origine record") della
' SottomascheraRicerca1.
Dim MioSQL As String, Criteri As String, MiaOrigineRecord As String
Dim NumArg As Integer
' Inizializza il conteggio degli argomenti.
NumArg = 0
' Inizializza l'istruzione SELECT.
MioSQL = "SELECT * FROM [QryRicerca1] WHERE "
Criteri = ""
' Utilizza i valori immessi nelle caselle di testo dell'intestazione della
' maschera per creare criteri per la clausola WHERE.
Aggiungi [txtCercaFile1], "[File]", Criteri, NumArg
Aggiungi [txtCercaExt1], "[Ext]", Criteri, NumArg
AggiungiOR [txtCercaFile1], "[File]", Criteri, NumArg
Aggiungi [txtCercaExt2], "[Ext]", Criteri, NumArg
AggiungiOR [txtCercaFile1], "[File]", Criteri, NumArg
Aggiungi [txtCercaExt3], "[Ext]", Criteri, NumArg
AggiungiOR [txtCercaFile1], "[File]", Criteri, NumArg
Aggiungi [txtCercaExt4], "[Ext]", Criteri, NumArg
' Se non è stato specificato alcun criterio, restituisce tutti i record.
If Criteri = "" Then
Criteri = "True"
End If
17
' Crea l'istruzione SELECT.
MiaOrigineRecord = MioSQL & Criteri
' Imposta la proprietà "Origine record" della
'SottomascheraRicerca1.
Me![SottomascheraRicerca1].Form.RecordSource = MiaOrigineRecord
' Se nessun record corrisponde ai criteri, visualizza un messaggio.
' Seleziona il pulsante Cancella.
If Me!SottomascheraRicerca1.Form.RecordsetClone.RecordCount = 0 Then
MsgBox "Nessun record corrisponde ai criteri immessi.", 48, "Nessun record trovato"
Me!cmdCancella1.SetFocus
Else
'Attiva il controllo nella sezione Corpo.
AttivaControl Me, acDetail, True
'Seleziona la SottomascheraRicerca1.
Me!SottomascheraRicerca1.SetFocus
'************
'CODICE AGGIUNTO DA RIKI
'************
'parte inserita per query parametrica con costruzione della tabella risultato ricerca
If Me!ControlloTabRisultato1 = True Then
DoCmd.SetWarnings False 'blocca gli avvisi
DoCmd.RunSQL "delete * from TblRisultatoRicerca1"
DoCmd.OpenQuery "QryRisultatoRicerca1", acViewNormal, acReadOnly
DoCmd.SetWarnings True 'ripristina gli avvisi
Beep
Msg = "Elaborazione Terminata, Costruzione Tabella Risultato Terminata"
Else
End If
'fine del nuovo inserimento codice
End If
Exit_cmdVisualizza1_Click:
Exit Sub
Err_cmdVisualizza1_Click:
MsgBox Err.Description
Resume Exit_cmdVisualizza1_Click
End Sub
Private Sub cmdCancella1_Click()
On Error GoTo Err_cmdCancella1_Click
' Cancella i controlli nella intestazione della masche ra e rimuove
' i record dalla sottomaschera.
'
Dim MioSQL As String
18
MioSQL = "SELECT * FROM [QryRicerca1] WHERE TRUE"
' Cancella le caselle di testo contenenti i criteri di ricerca.
Me!txtCercaFile1 = Null
Me!txtCercaExt1 = Null
Me!txtCercaExt2 = Null
Me!txtCercaExt3 = Null
Me!txtCercaExt4 = Null
' Reimposta la proprietà "Origine record" ("RecordSource")
' della sotto maschera per rimuovere i record.
Me![SottomascheraRicerca1].Form.RecordSource = MioSQL
' Seleziona la casella di testo "txtCercaRagioneSociale".
Me![txtCercaFile1].SetFocus
Exit_cmdCancella1_Click:
Exit Sub
Err_cmdCancella1_Click:
MsgBox Err.Description
Resume Exit_cmdCancella1_Click
End Sub
Private Sub Form_Open(Cancel As Integer)
Me![txtCercaFile1].SetFocus
End Sub
Private Sub txtCercaFile1_AfterUpdate()
'Disattiva il controllo nella sezione corpo dopo
'la modifica del criterio di ricerca.
DisattivaControllo
End Sub
Private Sub txtCercaExt1_AfterUpdate()
'Disattiva il controllo nella sezione corpo dopo
'la modifica del criterio di ricerca.
DisattivaControllo
End Sub
Private Sub txtCercaExt2_AfterUpdate()
'Disattiva il controllo nella sezione corpo dopo
'la modifica del criterio di ricerca.
DisattivaControllo
End Sub
Private Sub txtCercaExt3_AfterUpdate()
'Disattiva il controllo nella sezione corpo dopo
'la modifica del criterio di ricerca.
DisattivaControllo
19
End Sub
Private Sub txtCercaExt4_AfterUpdate()
'Disattiva il controllo nella sezione corpo dopo
'la modifica del criterio di ricerca.
DisattivaControllo
End Sub
Private Sub PulsOpenReportRisultat1_Click()
On Error GoTo Err_PulsOpenReportRisultat1_Click
Dim stDocName As String
stDocName = "RepoFromTblRisultatoRicerca1"
DoCmd.OpenReport stDocName, acPreview
Exit_PulsOpenReportRisultat1_Click:
Exit Sub
Err_PulsOpenReportRisultat1_Click:
MsgBox Err.Description
Resume Exit_PulsOpenReportRisultat1_Click
End Sub
Private Sub CmdApriFoglioExcel1_Click()
On Error GoTo Err_CmdApriFoglioExcel1_Click
DoCmd.OutputTo acOutputTable, "TblRisultatoRicerca1", acFormatXLS, "D:\root\filescd\RisultatoRicerca1.xls", True
Exit_CmdApriFoglioExcel1_Click:
Exit Sub
Err_CmdApriFoglioExcel1_Click:
MsgBox Err.Description
Resume Exit_CmdApriFoglioExcel1_Click
End Sub
20
Form_frmRicerca2
Option Compare Database
Private Sub PulsOpenReportRisultato2_Click()
On Error GoTo Err_PulsOpenReportRisultato2_Click
Dim stDocName As String
stDocName = "RepoFromTblRisultatoRicerca2"
DoCmd.OpenReport stDocName, acPreview
Exit_PulsOpenReportRisultato2_Click:
Exit Sub
Err_PulsOpenReportRisultato2_Click:
MsgBox Err.Description
Resume Exit_PulsOpenReportRisultato2_Click
End Sub
Private Sub CmdApriFoglioExcel2_Click()
On Error GoTo Err_CmdApriFoglioExcel2_Click
DoCmd.OutputTo acOutputTable, "TblRisultatoRicerca2", acFormatXLS, "D:\root\filescd\RisultatoRicerca2.xls", True
Exit_CmdApriFoglioExcel2_Click:
Exit Sub
Err_CmdApriFoglioExcel2_Click:
MsgBox Err.Description
Resume Exit_CmdApriFoglioExcel2_Click
End Sub
Private Sub cmdCreaTblRisultatoRicerca2_Click()
On Error GoTo Err_cmdCreaTblRisultatoRicerca2_Click
DoCmd.SetWarnings False 'blocca gli avvisi
DoCmd.RunSQL "delete * from TblRisultatoRicerca2"
DoCmd.OpenQuery "QryRisultatoRicerca2", acViewNormal, acReadOnly
DoCmd.SetWarnings True 'ripristina gli avvisi
Beep
Msg = "Elaborazione Terminata, Costruzione Tabella Risultato Terminata"
21
Exit_cmdCreaTblRisultatoRicerca2_Click:
Exit Sub
Err_cmdCreaTblRisultatoRicerca2_Click:
MsgBox Err.Description
Resume Exit_cmdCreaTblRisultatoRicerca2_Click
End Sub
Private Sub cmdCancella2_Click()
On Error GoTo Err_cmdCancella2_Click
' Cancella i controlli nella intestazione della maschera e rimuove
' i record dalla sottomaschera.
'
' Cancella le caselle di testo contenenti i criteri di ricerca.
Me!txtDataInizio = Null
Me!txtDataFine = Null
Me!txtCercaExt1 = Null
Me!txtCercaExt2 = Null
Me!txtCercaFolder1 = Null
Me!txtCercaFolder2 = Null
Me!txtCercaFolder3 = Null
Me!txtCercaFolder4 = Null
Me!txtCercaFolder5 = Null
Me!txtCercaFolder6 = Null
Me!txtCercaFolder7 = Null
Me!txtCercaFolder8 = Null
' Seleziona la casella di testo "txtCercaFolder1".
Me![txtCercaFolder1].SetFocus
Exit_cmdCancella2_Click:
Exit Sub
Err_cmdCancella2_Click:
MsgBox Err.Description
Resume Exit_cmdCancella2_Click
End Sub
22
Form_frmRicerca4
Option Compare Database
Private Sub Comando20_Click()
On Error GoTo Err_Comando20_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frmRicerca4bis"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Comando20_Click:
Exit Sub
Err_Comando20_Click:
MsgBox Err.Description
Resume Exit_Comando20_Click
End Sub
23
Modulo FunzioniUtilità
Option Compare Database
Function AttivaControl(frm As Form, strSezione As Integer, intStato As Boolean) As
Boolean
'Attiva o disattiva i controlli in sezione specificata della maschera
'Utilizza l'oggetto Form, la costante di sezione e specifica gli argomenti
'passati all routine AttivaControl
Dim ctl As Control
'Imposta intStato per tutti i controlli nella sezione specificata.
For Each ctl In frm.Controls
If ctl.Section = strSezione Then
On Error Resume Next
ctl.Enabled = intStato
Err = 0
End If
Next ctl
AttivaControl = True
End Function
24