Newsgroup: it.comp.appl.access
Titolo: Compattare BE con psw

Vorrei compattare il BE di un gestionale da me realizzato. Per tale motivo
ho scaricato il codice presente sul Sito Comune.
Ho un problema!!!
Avendo un BE provvisto di password, la routine va in errore
3031-Not a valid password.
Come faccio a bypassare questo ostacolo.
Ringrazio anticipatamente.
Andrea

 wrote in message
news:9nj9rj$7pn$1...@lacerta.tiscalinet.it...

Inserendo la PWD nella stringa di connessione:
vale a dire dove c'č ";Database=TuoDb.mdb;PWD=TuaPassword" che ovviamente
devi sapere....
@Alex.
P.S. se non ti č chiaro la prossima volta POSTA un pņ di codicillo, non
vorrai che ognuno vada sul SC a scaricare l'esempio per risponderti....
-- 
Posted from  [62.98.48.146] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 vorrai che ognuno vada sul SC a scaricare l'esempio per risponderti....
Scusami per il codice non allegato.
Supponiamo che la password sia "ZX750" dove deve essere messo nel codice
allegato?
Con visual Basic sto facendo i primi passi adesso.
Codice:
On Error GoTo gestErr
Dim backend As String
Dim strSQL As String
Dim rs As Recordset
Dim risp As Integer
Dim copia As String
Dim msg As String
strSQL = "SELECT Trim([Database])AS DB " & _
"FROM MSysObjects " & _
"GROUP BY Trim([Database]), MSysObjects.Type " & _
"HAVING (((MSysObjects.Type)=6));"
Set rs = CurrentDb.OpenRecordset(strSQL)
If rs.EOF And rs.BOF Then GoTo ESCI
risp = MsgBox("Procedere con salvataggio e compattazione?", _
vbQuestion + vbYesNo)
If risp <> vbYes Then Exit Sub
DoCmd.Hourglass True
DoCmd.SetWarnings False
rs.MoveFirst
msg = ""
Do
backend = rs![db]
msg = backend & vbCrLf & msg
DBEngine.RepairDatabase backend
DBEngine.CompactDatabase backend, backend & ".new"
copia = Dir(backend & ".bak")
If copia <> "" Then Kill backend & ".bak"
Name backend As backend & ".bak"
Name backend & ".new" As backend
rs.MoveNext
Loop Until rs.EOF
   MsgBox "Compattazione terminata per i seguenti DB:" & _
   vbCrLf & msg, vbExclamation
ESCI:
   rs.Close
   DoCmd.SetWarnings True
   DoCmd.Hourglass False
   Exit Sub
gestErr:
   MsgBox err.Number & " - " & err.Description
   GoTo ESCI
Mille grazie
Andrea

 DBEngine.CompactDatabase backend, backend & ".new"
Scusa se ho troncato parte del tuo Post, ma il nuovo sistema di Replay č
strano....
La tua domanda non č stupida, e forse l'ho sottovalutata, ma guardando bene
ti accorgerai che la Funzione COMPACTDATABASE ha delle proprietą:
---> DBEngine.CompactDatabase oldDB, newDB, [locale], [option], [password]
nel tuo caso locale e option non servono, ma Password č quella che dicevi,
non l'ho mai usato, ma credo sia da inserire solo la satringa della PWD
vale a dire una cosa del genere credo.....(sostituisci l'istuz. seguente)
--->DBEngine.CompactDatabase backend, backend & ".new", , , "ZX750"
prova ciao @Alex.
-- 
Posted from  [62.98.31.185] 


Per connettersi invece al BE con password, dove si deve mettere il nr della
password?
On Error GoTo gestErr
Dim backend As String
Dim strSQL As String
Dim rs As Recordset
Dim risp As Integer
Dim copia As String
Dim msg As String
strSQL = "SELECT Trim([Database])AS DB " & _
"FROM MSysObjects " & _
"GROUP BY Trim([Database]), MSysObjects.Type " & _
"HAVING (((MSysObjects.Type)=6));"
Set rs = CurrentDb.OpenRecordset(strSQL)
If rs.EOF And rs.BOF Then GoTo ESCI
risp = MsgBox("Procedere con salvataggio e compattazione?", _
vbQuestion + vbYesNo)
If risp <> vbYes Then Exit Sub
DoCmd.Hourglass True
DoCmd.SetWarnings False
rs.MoveFirst
msg = ""
Do
backend = rs![db]
msg = backend & vbCrLf & msg
DBEngine.RepairDatabase backend
DBEngine.CompactDatabase backend, backend & ".new"
copia = Dir(backend & ".bak")
If copia <> "" Then Kill backend & ".bak"
Name backend As backend & ".bak"
Name backend & ".new" As backend
rs.MoveNext
Loop Until rs.EOF
   MsgBox "Compattazione terminata per i seguenti DB:" & _
   vbCrLf & msg, vbExclamation
ESCI:
   rs.Close
   DoCmd.SetWarnings True
   DoCmd.Hourglass False
   Exit Sub
gestErr:
   MsgBox err.Number & " - " & err.Description
   GoTo ESCI
Ciao a tutti
Luigi

 Luigi
Non ho capito perchè hai postato tutto il codice che mi pare non abbia nulla
a che fare con la tua domanda....!!! (SBAGLIO !!)
Poi se vuoi connetterti ad un BE con Password, se hai Tabelle Linkate
basta eseguire il Relink con DAO del quale c'è il codice sul S.C., poi 
nella Stringa di connessione inserire la PWD, isrtuzione Opendatabase(F1)
Eventualmente POSTA il tuo codice... e vediamo...
@Alex.
-- 
Posted from  [62.98.49.45] 


 --->DBEngine.CompactDatabase backend, backend & ".new", , , "ZX750"
ma ora mi appare il codice errore 3170 - Impossibile trovare ISAM
installabile
Dalla lettura delle istruzioni,  si dice che "Questo file è necessario per
collegare tabelle esterne, diverse dalle tabelle di database ODBC o
Microsoft Jet." e questo non è il nostro caso dato che la tabella collegata
è in fomato mdb.
Conosci una soluzione al problema?
Le istruzioni parlano di correggere il registro di configurazione di
Windows.
Sai una soluzione al problema?
Grazie per l'aiuto.
Andrea

 wrote in message
9nj9rj$7pn$1...@lacerta.tiscalinet.it...

Ti allego il codice che avevo memorizzato per possibili futuri usi.
 Si puo' aprire, da codice, un mdb protetto con password?
 S possibile modificare tale password da codice?
 Autore: Federico Luciani
 Si S possibile utilizzando il metodo OpenDatabase e passandogli la password
 come parametro.
 Ad esempio, per accedere a 'mioDB.mdb' la cui password S 'pippo' basta
aprire
 il db in questo modo:
     Dim dbs As Database
     Set dbs = OpenDatabase("mioDB.mdb", False, False, "; pwd=pippo")
     ' ci fate quel che volete
     Set dbs = Nothing
 inoltre S possibile modificare la password utilizzando il metodo
NewPassword
 dell'oggetto Database ed impostando a True il secondo  parametro
 (accesso esclusivo):
     Dim dbs As Database
     Set dbs = OpenDatabase("mioDB.mdb", True, False, ";pwd=pippo")
     dbs.NewPassword "pippo", "paperino"
     Set dbs = Nothing
Sergio

 Andrea
Purtroppo ho trovato l'esempio su un Libro di VB6 di McManus relativo
proprio all'accesso ai DB, e non è molto esplicito su questo caso
anche perchè dedica più spazio ad ADO che tra le altre cose non ha
la possibilità di eseguire queste operazioni,"Credo...!!"
Mi spiace, anche se credo che l'errore segnalato forse possa essere aggirato
se nella strPWD inserisci anche i riferimenti a Jet3.51 come se realizzassi
una connessione.....(è un tentativo da disperazione).
Ciao @Alex.
-- 
Posted from  [62.98.28.199] 


Grazie a tutti per l'aiuto, proverò le vs. soluzioni e se gli esiti saranno
positivi ve lo farò sapere
Andrea