Metodo VBA per definire posizione di un controllo

di il
6 risposte

Metodo VBA per definire posizione di un controllo

Ciao a tutti,
ho il seguente problema: data una maschera, vorrei sapere la posizione dei vari controlli presenti nella stessa. Ho visto che ogni elemento ha le proprietà "da margine superiore" e "sinistra" che fanno al mio caso, il problema è dovuto alla proprietà "da margine superiore" che indica la distanza in funzione non dall'inizio della maschera, ma dall'inizio della sezione (intestazione, corpo e piè pagina), per esempio posso avere 2 oggetti che hanno la proprietà "da margine superiore" uguale a zero, uno nell'intestazione e uno nel corpo della pagina.
La mia domanda quindi è la seguente: esiste una proprietà o una funzione che permette di sapere a quale parte della maschera un oggetto fa parte?

6 Risposte

  • Re: Metodo VBA per definire posizione di un controllo

    Leggi la
    
    Property Section As Integer
    che restituirà una Valore appartenente alla
    
    Enum AcSection
        Membro di Access
    che esporrà queste
    
    Const acDetail = 0
        Membro di Access.AcSection
    Const acHeader = 1
        Membro di Access.AcSection
    Const acFooter = 2
        Membro di Access.AcSection
    ecc...
  • Re: Metodo VBA per definire posizione di un controllo

    Intanto grazie (di nuovo) per la pronta risposta
    Il problema è che la proprietà Section non è utilizzabile negli oggetti di tipo Control (non so se ti ricordi il mio problema, cmq in sintesi ciclo su tutte le maschere del programma, poi su tutti i controlli della maschera e infine su tutte le proprietà del controllo), quindi non so se devo trasformare l'oggetto control nello specifico controllo (Section è applicabile a oggetti Label, TextBox ecc...)
  • Re: Metodo VBA per definire posizione di un controllo

    Secondo me non hai ben chiaro le cose...!

    Dire
    
    Me!NomeControllo.Section
    Equivale a dire
    
    Me.Controls("NomeControllo").Section
    o per generalizzare
    
    frm.Controls("NomeControllo").Section
    dove [frm] è un'oggetto Form passato per argomento.
    Quindi la tua affermazione è errata, oppure spiegati meglio perchè così come l'hai esposta è assurda.
  • Re: Metodo VBA per definire posizione di un controllo

    No non mi è chiara la situazione allora

    Ho provato a scrivere il seguente codice:
    
    Dim frm         As Access.Form
    Dim ctl         As Access.Control
    Dim section As Integer
    ....................................
    (codice che assegna valori a frm e ctl)
    ....................................
    Set section = frm.Controls(ctl.Name).section
    
    Questo codice mi da "Errore di compilazione - Necessario oggetto" :\
  • Re: Metodo VBA per definire posizione di un controllo

    Le parole riservate come "SECTION" credi si possano usare a "cavolo"...?
    Il VBA quando legge SECTION esige un'oggetto in quel modo...
    
    Dim frm         As Access.Form
    Dim ctl         As Access.Control
    Dim iSect       As Integer
    ....................................
    (codice che assegna valori a frm e ctl)
    ....................................
    iSect  = frm.Controls(ctl.Name).section
    Leggiti anche il metodo di assegnazione delle Variabili e degli Oggetti... visto che hai usato in modo IMPROPRIO il SET...
  • Re: Metodo VBA per definire posizione di un controllo

    Scusami ma sono abituato a Eclipse che le parole chiave le evidenzia

    Si in effetti il modello a oggetti di VBA non ce l'ho molto chiaro, ma visto che non è che mi interessi particolarmente sviluppare codice in VBA, l'ho letto rapidamente tanto per farmi un'idea su quello a cui andavo incontro.

    Cmq grazie per la risposta, funziona correttamente adesso
Devi accedere o registrarti per scrivere nel forum
6 risposte