Newsgroup: it.comp.appl.access
Titolo: Funzione SvuotaTabelle in un colpo solo

Ciao, spero faccia comodo a qualcuno:
Funzione per svuotare tutte le tabelle in un colpo solo, cioe' con unu
solo clic.
Versione per Tabelle e Maschere sullo stesso DB:
------------------------------------------------
Function EmptyTables()
On Error GoTo ErrEmpty
    Dim SQL As String
    Dim DB As Database
    Dim RS As Recordset
    Dim Tabella As String
    Dim SQLdel As String
    Dim Message
 
    SQL = "SELECT Name, Type FROM MSysObjects Where Type=1 AND Name
Not Like 'Msys*'"
'Type 1 č per le tabelle sullo stesso mdb della funzione    
 
    Set DB = Application.CurrentDb
    Set RS = DB.OpenRecordset(SQL)
 
    If RS.EOF And RS.BOF Then
        Exit Function
    Else
        DoCmd.SetWarnings False
        Message = MsgBox("Svuotare tutti gli archivi e cancellare i
dati definitivamente?", vbApplicationModal + vbQuestion + vbYesNo)
 
        If Message = vbNo Then
            Exit Function
        Else
            Do While Not RS.EOF
                Tabella = RS("Name")
                SQLdel = "Delete * FROM " & Tabella
                DoCmd.RunSQL SQLdel
                Debug.Print SQLdel
                RS.MoveNext
            Loop
 
            DoCmd.SetWarnings True
            MsgBox "Il database non contiene piů nessun archivio.",
vbApplicationModal + vbExclamation + vbOKOnly
 
        End If
 
    End If
 
    DoCmd.SetWarnings True
 
 
ErrEmpty:
    If Err.Number = 0 Then
        DoCmd.SetWarnings True
        Exit Function
    Else
        DoCmd.SetWarnings True
        MsgBox "Errore: " & Err.Number & " - " & Err.Description
    End If
    Exit Function
 
End Function
-----------------------------------------------
Versione per tabelel su back.end collegato (in un altro file mdb)
------------------------------------------------
Function EmptyTables()
'Autore:    yQy
'Data:      23/07/2003
'Ora:       03:40
On Error GoTo ErrEmpty
    Dim SQL As String
    Dim DB As Database
    Dim RS As Recordset
    Dim Tabella As String
    Dim SQLdel As String
    Dim Message
 
    SQL = "SELECT Name, Type FROM MSysObjects Where Type=6 AND Name
Not Like 'Msys*'"
 
    Set DB = Application.CurrentDb
    Set RS = DB.OpenRecordset(SQL)
 
    If RS.EOF And RS.BOF Then
        Exit Function
    Else
        DoCmd.SetWarnings False
        Message = MsgBox("Svuotare tutti gli archivi e cancellare i
dati definitivamente?", vbApplicationModal + vbQuestion + vbYesNo)
 
        If Message = vbNo Then
            Exit Function
        Else
            Do While Not RS.EOF
                Tabella = RS("Name")
                SQLdel = "Delete * FROM " & Tabella
                DoCmd.RunSQL SQLdel
                Debug.Print SQLdel
                RS.MoveNext
            Loop
 
            DoCmd.SetWarnings True
            MsgBox "Il database non contiene piů nessun archivio.",
vbApplicationModal + vbExclamation + vbOKOnly
 
        End If
 
    End If
 
    DoCmd.SetWarnings True
 
 
ErrEmpty:
    If Err.Number = 0 Then
        DoCmd.SetWarnings True
        Exit Function
    Else
        DoCmd.SetWarnings True
        MsgBox "Errore: " & Err.Number & " - " & Err.Description
    End If
    Exit Function
 
End Function
---------------------------------------
Se da errori fatemelo sapere :)

 ha scritto nel messaggio
news:5oprhvk5kg1mgu3mv...@4ax.com...

Ammesso che non ci siano relazioni...
In questo caso non č detto che funzioni.
Giorgio

 -----------------------------------------------
NB: i due trattini (--) rappresentano sezioni di codice eliminate, le
aggiunte sono inframmezzate.
Resta da analizzare il problema delle tabelle relazionate.
Ciao
Sib

 
il mago del quoting?
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
+-------



[cuttato]
Thanx Sèrge ! :)
Difatti era una soluzione MIA personale...usata su un db con tabelle
collegate ma senza relazioni pesanti, solo quelle essenziali, senza
integrita'...
Ovviamente piu migliorie vengono fatte piu torna utile a tutti :)
Ciao e grazie per l'ottimizzazione!
Am' Mazza :)