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 |