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
Documenti analoghi
Gestione Errori - AccessGroup.it 2.0
l'Autocomposizione per una qualche procedura evento Access automaticamente include una
istruzione
On Error
e i codici della gestione degli errori.
Supponiamo di creare un pulsante con l'autocomposi...