| Modules |
| 5.4 Compilare e salvare i moduli di un mdb da un altro mdb. |
| Valentino Casarini |
|
Questa funzione compila e salva tutti i moduli dei database passati alla funzione stessa con il loro percorso completo in formato stringa. In questo caso: 1) la funzione prende in considerazione database gestiti con la sicurezza a livello di utente (gruppo di lavoro .mdw, users e relative password. '2) si presuppone che il gruppo di lavoro, l'amministratore e la password siano gli stessi per tutti i db.
Function CompilaAltriDb(ParamArray dbs() As Variant)
'Creata da Valentino Casarini il 3/1/2001 - valentcas@tin.it
'Testata su Access 97 - windows 98
'Molta parte del codice è stata presa dal sito The Access Web (Dev Ashish)
'http://www.mvps.org/access/
Dim db As Database
Dim ctr As Container
Dim strDB As String
Dim strCmd As String
Dim objAppl As Access.Application
Dim i As Integer
Dim utente As String, pswd As String
For i = 0 To UBound(dbs)
'Tanti cicli quanti sono gli argomenti
'(percorsi db) passati alla funzione
utente = InputBox("digitare nome user")
If utente = "" Then Exit Function
pswd = InputBox("digitare password di user " & User)
strDB = dbs(i)
strCmd = SysCmd(acSysCmdAccessDir) & "\MSAccess.exe " _
& strDB & " /wrkgrp " & DBEngine.SystemDB _
& " /user " & utente & " /pwd " & pswd
Call Shell(strCmd, vbNormalFocus)
Set objAppl = GetObject(strDB)
If Not objAppl.IsCompiled = True Then
Set db = objAppl.CurrentDb
Set ctr = db.Containers!Modules
If ctr.Documents.Count > 0 Then
objAppl.DoCmd.OpenModule ctr.Documents(0).Name
Else
Set ctr = db.Containers!Forms
objAppl.DoCmd.OpenForm ctr.Documents(0).Name, acDesign
objAppl.DoCmd.RunCommand acCmdViewCode
End If
objAppl.DoCmd.RunCommand acCmdCompileAndSaveAllModules
objAppl.DoCmd.Close acModule, ctr.Documents(0).Name
objAppl.DoCmd.Close acForm, ctr.Documents(0).Name
End If
objAppl.DoCmd.Quit acQuitPrompt
Next i
End Function
Sub prova()
CompilaAltriDb "C:\Prova\db.mdb", "C:\Prova\db2.mdb"
End Sub
|