Modifica fonts su maschere e report

Anonimo
2013-06-06T07:44:57+00:00

Ciao a tutti!

Vorrei cambiare il font di tutte le maschere e report dell'applicativo, dal Comics Sans MS, al più leggibile Calibri.

Essendo poi il Calibri più piccolo del Comic, avrei la necessità di trasformare anche le dimensioni.

C'è questa possibilità?

Ho letto alcune soluzioni, tra cui una di Alessandro Baraldi che riporto in calce, il quale però avvertiva di averla buttata giù velocemente.

In effetti Access si blocca alla prima riga di codice e mi dice: Errore di compilazione, tipo definito dall'utente non definito.

Funzione:

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

Sub per Forms:

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 per Reports:

Sub AllReports()

    Dim obj As AccessObject, dbs As Object

    Set dbs = Application.CurrentProject

    For Each obj In dbs.AllReports

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-06-08T09:07:11+00:00

Ciao francescodiassisi,

prova così:, non sarà una bellezza ma dovrebbe funzionare.

Sub CambiaFont()

    Dim Frm As Form

    Dim Rpt As Report

    Dim Ctl As Control

    Dim i As Integer

    Dim NomeFont As String

    Dim Passo As Single

    NomeFont = "Calibri"

    Passo = 11

    'Form

    For i = 0 To CurrentProject.AllForms.Count - 1

        If CurrentProject.AllForms(i).IsLoaded = True Then

           DoCmd.Close acForm, CurrentProject.AllForms(i).Name

        End If

        DoCmd.OpenForm CurrentProject.AllForms(i).Name, acDesign

        On Error Resume Next

        For Each Ctl In Forms(CurrentProject.AllForms(i).Name)

            Ctl.FontName = NomeFont

            Ctl.FontSize = Passo

        Next

        On Error GoTo 0

        DoCmd.Close acForm, CurrentProject.AllForms(i).Name, acSaveYes

    Next

    'Report

    For i = 0 To CurrentProject.AllReports.Count - 1

        If CurrentProject.AllReports(i).IsLoaded = True Then

           DoCmd.Close acReport, CurrentProject.AllReports(i).Name

        End If

        DoCmd.OpenReport CurrentProject.AllReports(i).Name, acDesign

        On Error Resume Next

        For Each Ctl In Reports(CurrentProject.AllReports(i).Name)

            Ctl.FontName = NomeFont

            Ctl.FontSize = Passo

        Next

        On Error GoTo 0

        DoCmd.Close acReport, CurrentProject.AllReports(i).Name, acSaveYes

    Next

End Sub

Ciao

Giorgio Rancati

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-06-08T07:25:56+00:00

    Ciao francescodiassisi ,

    in Access.Object bisogna togliere il punto, modifica così:

    Public Function SetNewProperty(mOBJ As AccessObject, PropertyName As String, Value As Variant)

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-06-08T07:15:01+00:00

    Forse mancano dei Riferimenti... io uso solo i 3 di default, per non complicarmi la vita con le versioni successive di Office... ma siccome questo è un intervento che devo fare solo io, posso aggiungere quelli che servono, poi per la distribuzione li tolgo.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-06-07T14:55:43+00:00

    Eh, alla prima, cioè qui:

    Public Function SetNewProperty(mOBJ as Access.Object, PropertyName as

    String, Value as variant)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-06-07T07:22:22+00:00

    Ciao francescodiassisi,

    dovresti mostrare la riga su cui si blocca.

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento