Newsgroup: it.comp.appl.access
Titolo: nuovo anno nuovo database X CarloCos

 Ciao, Carlo
ciao come da  te consigliato ho levato le parentesi di troppo e i 
dbRefeshCache, qui sotto trovi la versione ripulita
Dim title
Dim valori As String
Dim default
Dim messaggio
messaggio = "Nuovo Database"
title = "Inserire Nome e Percorso Nuovo Database"
default = "c:\temp\"
strinput = InputBox(title, messaggio, default)
If StrPtr(strinput) = 0 Then
MsgBox "Azione Annullata"
    End If
DoEvents
Dim wrkPredefinita As Workspace
Dim dbsNuovo As Database
Dim prpCiclo As Property
Set wrkPredefinita = DBEngine.Workspaces(0)
Set dbsNuovo = wrkPredefinita.CreateDatabase(strinput, dbLangGeneral, 
dbEncrypt)
DoEvents
DoCmd.TransferDatabase acExport, "Microsoft Access", strinput, acTable, 
"cedente", "cedente", True
End Function
tuttavia mi dà sempre lo stesso errore, non trova il db quando invece 
esiste.
cosa intendi per controllo dell'estensione  ".mdb" come si crea, il db 
creato ha già estensione .mdb, non mi sembra necessario creare una routine 
per verificare l'esistenza del file se questo già esiste mi dà errore.
Spero che mi darai una mano.
Ciao Mario

 ha scritto nel messaggio
news:i_wi7.20226$%a4.7...@news.infostrada.it...

Sarò lungo.
Questa la funzione che ho scritto:
Private Function CreaEIncollaDatabaseTabelle()
Dim title
Dim valori As String, strinput As String
Dim default
Dim messaggio
messaggio = "Nuovo Database"
title = "Inserire Nome e Percorso Nuovo Database"
default = "c:\temp\Prova.mdb" 'qui ho inserito un nome di fantasia...non
troppo
strinput = InputBox(title, messaggio, default)
If StrPtr(strinput) = 0 Then
MsgBox "Azione Annullata"
    End If
DoEvents
Dim wrkPredefinita As Workspace
Dim dbsNuovo As DATABASE
Dim prpCiclo As Property
Set wrkPredefinita = DBEngine.Workspaces(0)
Set dbsNuovo = wrkPredefinita.CreateDatabase(strinput, dbLangGeneral,
dbEncrypt)
DoEvents
DoCmd.TransferDatabase acExport, "Microsoft Access", strinput, acTable,
"Carico", "Carico", True ' o False se vuoi trsferire anche i dati
End Function
Questa funzione ripete, grosso modo, la tua. Tutto funzione se il db da
creare non esiste.
Se il bd esiste ti dà errore...al più potrebbe trasferire la singola tabella
gestendo l'errore 3204 "Database già esistente" e passando all'istruzione
"TransferDatabase ".
Ecco quello che ti volevo dire con "se NON esiste il database".
Qui devi decidere tu: puoi cancellare il database esistente con "Kill" (vedi
nella guida) o trasferire una tabella che ancora non esiste nel db di
destinazione.
Se il databse esiste puoi ancora cancellare la tabella di destinazione e
rimpizzarla con la nuova...tutto dipende da cosa devi fare.
In sintesi. Verificare cosa ha scritto l'utente; verificare se il DB esiste;
decidere cosa trasferire e/o creare-trafserire.
Per cancellare il db puoi scrivere la funzione in questo modo:
Dim title
Dim valori As String, strinput As String
Dim default
Dim messaggio
messaggio = "Nuovo Database"
title = "Inserire Nome e Percorso Nuovo Database"
default = "c:\temp\Prova.mdb"
strinput = InputBox(title, messaggio, default)
If StrPtr(strinput) = 0 Then
MsgBox "Azione Annullata"
    End If
DoEvents
Dim wrkPredefinita As Workspace
Dim dbsNuovo As DATABASE
Dim prpCiclo As Property
Set wrkPredefinita = DBEngine.Workspaces(0)
On Error GoTo errore
Set dbsNuovo = wrkPredefinita.CreateDatabase(strinput, dbLangGeneral,
dbEncrypt)
DoEvents
DoCmd.TransferDatabase acExport, "Microsoft Access", strinput, acTable,
"Carico", "Carico", True ' o False se vuoi trsferire anche i dati
errore:
    If Err.Number = 3204 Then
    Kill strinput
    Set dbsNuovo = wrkPredefinita.CreateDatabase(strinput, dbLangGeneral,
dbEncrypt)
    DoEvents
    DoCmd.TransferDatabase acExport, "Microsoft Access", strinput, acTable,
"Carico", "Carico", True ' o False se vuoi trsferire anche i dati
    End If
End Function
Per quanto riguarda la inputbox, se scrivi: "default = "c:\temp\" e non
"default = "c:\temp\NomeDb.mdb", rischi che l'utente , pur scrivendo
qualcosa, non scrive il nome del badatase (estensione mdb o altri errori nel
percorso).
E' chiaro che dovrai "verificare cosa l'utente ha scritto" e in particolare
se ha usato l'estensione mdb o ha scritto, per esempio, MDC. Se l'utente non
mette l'estensione, Access provvede da solo alla mancanza ma se l'utente ha
scritto per errore "MioDb.MDX", poi non troverai più il db.
Per fare questo puoi servirti di InStr, Mid$ ecc.
Spero di esserti stato utile.
Ciao, Carlo