Newsgroup: it.comp.appl.access
Titolo: Come cambiare font su tutto l'applicativo ?

Ho una richiesta un po' strana (almeno per me)
Mi chiedono di cambiare il font di tutte le textbox, label, command insomma 
di tutte le scritte che appaiono in una procedura Access nel font xxxx
Come si fa a scorrere su tutti gli oggetti di un certo tipo su form e report 
e modificarne l'attributo tipo font ?
Ciao e grazie
RobertoA 


Dim ctl As Control
For Each ctl In Controls
ctl.FontName = "times new roman"
Next ctl
-- 
Ciao
Geppo

 ha scritto nel messaggio
news:475a...@newsgate.x-privat.org...

Non hai specifiato una cosa FONDAMENTALE, vale a dire se questa cosa deve
essere estesa
a tutte le FORMS/REPORTS in modo definitivo oppure se il cliente deve poter
MODIFICARE il tutto.
L'esempio di Geppo è molto limitato in questo caso e direi poco funzionale
proprio per la
frequente presenza di SubForm e SubReport.
Ti allego una funzione buttata giù velocemente , che non ho provato ma
dovrebbe andare,
eventualmente un pò di DEBUG vedrai che è semplice...!
Se devi consentire la modifica al CLIENTE devi eseguire la FUNZIONE su
EVENTO LOAD di Forms/Reports
Quindi devi trovare il sistema di SALVARE in una variabile AMBIENTE
NOMEPROPRIETA' e VALORE Es:
NomeProp="FONTNAME"
PropValue="ARIAL"
Su LOAD(per le Form) e su OPEN(Per i Report):
    Call SetNewProperty(Me,NomeProp,PropValue)
Se invece la richiesta del CLIENTE è fine a se stessa, vale a dire che il
FONT non deve essere
poi gestibile, ma semplicemente vuole un FONT specifico allora ti conviene
gestire una ROUTINE
da un Modulo che apre in modalità DESIGN tutti gli OGGETTI(FORMS/REPORTS) e
sempre con la
Routine di prima modifichi.
La metti in un Modulo, per come è strutturata si aspetta un'oggetto
Form/Report che sia Aperto in Design
o in Runtime mode...!
Nel primo caso dovrai Salvare al rientro dalla Funzione, nel 2° no...!
' #######################
' ROUTINE DI MODIFICA
' #######################
Public Function SetNewProperty(mOBJ as Access.Object, PropertyName as
String, Value as variant)
   Dim ctl as Access.Control
   On Error Resume Next
   For each ctl in mObj.Controls
       Select case ctl.ControlType
             Case acSubForm
                    If mObj.Type= acForm then
                         Call SetNewProperty(ctl.Form, PropertyName , Value)
                    ElseIf mobj.Type=acReport Then
                         Call SetNewProperty(ctl.Report, PropertyName ,
Value)
                    End if
            Case Else
                If ctl.Visible then
ctl.Properties(PropertyName).Value=Value
        End Select
    Next
End Function
Chiaramente per ciclare tutti gli Oggetti(Solo in caso di modifica
DEFINITIVA) hai a disposizione :
Sub AllForms()
    Dim obj As AccessObject, dbs As Object
    Set dbs = Application.CurrentProject
    For Each obj In dbs.AllForms
        If obj.IsLoaded = True Then
            Docmd.Close acForm obj.Name
        End If
        DoCmd.OpenForm obj.Name, acDesign
        DoEvents
        Call SetNewProperty(obj, "FONTNAME", "Tahoma")
        DoCmd.Close acForm, obj.Name, acSaveYes
    Next obj
End Sub
Sub AllReports()
    Dim obj As AccessObject, dbs As Object
    Set dbs = Application.CurrentProject
    For Each obj In dbs.AllReports
        .....        ' STESSA COSA SOLO ADATTATA AI REPORTS    Next obj
End SubE' solo un suggerimento chiaramente, quindi anche se quasi
completamente fuinzionante... dovrai di certo
verificarlo e correggere qualche imprecisione.
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------

 verificarlo e correggere qualche imprecisione.
Era quello che mi serviva, veramente la procedura nel mio caso era da fare 
una-tantum ma vedendo come hai pensato la cosa credo che potrei anche 
inserire la possibilita' di modifica per l'utente finale
Un mattoncino in piu' per le prossime realizzazioni
Grazie molte ad entrambi
Ciao
RobertoA