Newsgroup: it.comp.appl.access
Titolo: password sbagliata / eliminare tabelle

Salve,
vorrei impostare una password all'apertura del database,
nel caso si sbagli a digitare la password o si clicca annulla vorrei che si 
cancellassero tutte le tabelle.
è possibile ?
grazie. 
 
 


Vuoi anche l'autodistruzione del PC...?
 
Rifletti bene, prima di farlo...!
Se hai relazioni prima devi rimuovere le relazioni... accedi alla Collection REOLATIONS ed effettua il DELETE di tutte... quindi accedi alla Collection Tabledefs ed anche li... DELETE...
 
@Alex

 č possibile ?



 
Se non hai un minimo di dimestichezza con il codice non puoi fare una cosa simile... nemmeno COPIA/INCOLLANDO codice scritto da altri...
Per farlo mi sa che ti tocca studiare un po sulla guida in linea...!
 
Cerca prima TableDefs e cerchi di capire di cosa parliamo:
 
Class TableDefs
    Membro di DAO
 
Poi cerchi il Metodo DELETE associato a TABLEDEFS
 
Sub Delete(Name As String)
    Membro di DAO._DynaCollection
 
Ora cerchi RELATIONS
 
Class Relations
    Membro di DAO
 
ed il suo metodo DELETE che è uguale a quello di prima solo applicato a questo Oggetto...!
 
Provi a leggere bene anche gli esempi e provi TU a buttare giù un po di righe di codice... se poi non vanno allora ti diamo aiuto... ma scriverti il codice direi che non è una cosa così diffusa...
 
@Alex

@Alex
 
 
ok...provo in settimana...grazie...ti faccio sapere ;)
ciao !
 
 
 
 


cancellare o svuotare?
nel secondo caso la cosa si semplifica di molto
 
ciao
BFS
 


 
    Svuotare mi va bene....l'importante è che non si leggano i dati delle 
tabelle......
puoi dirmo come si fa ?
grazie ! 
 
 


non ho capito cosa serve cancellare i dati...sarebbe più comodo non far 
accedere al db e stop se si sbaglia la psw. cmq:
semplifico
in apertura del tuo db o tramite macro o tramite una maschera richiami 
questo codice
 
If InputBox("Digita la psw", "psw") <> "pswScelta" Then
     DoCmd.SetWarnings False
     DoCmd.RunSQL "delete * from nometabella1"
     DoCmd.RunSQL "delete * from nometabella2"
 
 
     etc etc
 
     DoCmd.SetWarnings True
     MsgBox "dati azzerati"
End If
 
devi cancellare le tabelle in ordine di relazione
 
c'è da dire che se uno vuole leggere i dati può anche collegarsi da un 
altro db e linkarti o importarti le tabelle.
 
quindi se trovi uno che sa le basi di access (anche meno) le tabelle te 
le legge lo stesso
 
 
 
ciao
BFS
 
 
 
 


 
    no.....mi serve una cancellazione totale alla password sbagliata
all'apertura del database .
grazie lo stesso !
 
 

Apocalisse used his keyboard to write :

Prova a dargli una spazzolata così...
===========================
Public Sub DeleteRelAndTbl()
Dim i
 
Set i = CurrentDb.Relations
Do While i.Count > 0
    i.Delete i(0).Name
Loop
 
For Each i In CurrentDb.TableDefs
    If Left(i.Name, 4) <> "MSys" Then
        DoCmd.DeleteObject acTable, i.Name
    End If
Next
 
End Sub
===========================
 
Bruno
 
PS
Attenzione che non si torna indietro!

 Prova a dargli una spazzolata cosģ...


 password ;)
 
Quando sbagli la password ci sarà un messaggio che ti
comunica qualcosa...
 
Ci sarà un:
    MegBox "Hai sbagliato password..."
sostituisci quella riga con:
    DeleteRelAndTbl
 
Autoexec è un'altra roba... macro non VBA che qui
non c'entra niente, ma puoi lasciarla come nome
del Modulo che contoiene DeleteRelAndTbl.
 
Comunque tutto ciò ti serve poco: hai a che fare
con dei furbi che di questi trucchetti
ne han visti più d'uno.
 
Quello che hai inventato tu...
intanto anche cancellando Relazioni e Tabelle il
database rimane bello grosso come prima e se non
vi appare nulla il sospetto è legittimo.
Ma se anche risultasse poi striminzito (bisognerebbe
compattarlo on-the-fly e questo porterebbe via
tempo eventualmente rilevabile), come giustificheresti
un database completamente vuoto di tabelle?
Bisognerebbe cancellare solo poche tabelle il che implica
tenere due contabilità separate e indipendenti.
 
Bruno

 Bruno