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


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.