Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

di il
8 risposte

Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

È un periodo che sto spulciando diversi manuali di access, per acquisire le nozioni che mi servono per andare avanti con il database musicale e, in uno di questi manuali, mi imbatto nella procedura per creare una maschera di zoom dove inserire una casella di testo dalle dimensioni decisamente maggiori, per poter far visualizzare per intero il testo di una casella con lunghezza caratteri elevata ed evitare quindi di dover avere caselle di testo di dimensioni abnormi su più maschere diverse.

Per esempio ho notato che se digito 10 caratteri con formattazione "carattere: Bookman Old Style; dimensione carattere: 12" occupo una larghezza di 3 cm per un'altezza di poco superiore agli 0,6 cm sulla casella di testo di una qualsiasi maschera

Prendendo in esame alcuni campi del mio database musicale, io ho:

il campo Titolo della Tabella "Titoli", e il campo Note della tabella "Canzoni" di tipo "Testo breve" lungo 150 caratteri
Il campo "Dati Aggiuntivi" della tabella "Dischi", di tipo "Testo Breve" lungo 200 caratteri
il campo "Testo Canzone" della tabella "Canzoni", di tipo "Testo Lungo" etc...

Ora se io ho:

Maschera1.campo1 collegato a Titoli.Titolo, se io provo a digitare in maschera un titolo di più di 150 caratteri, il cursore si blocca dopo che ho inserito il carattere n° 150 e non mi fa più andare avanti.

La domanda a questo punto è: è possibile, nel momento in cui una delle caselle di testo collegate a questo tipo di campi in tabella richiama la maschera di zoom, intercettare il valore di lunghezza massima della stringa che può essere inserita nella casella di testo chiamante ed usarlo per impostare la lunghezza massima della stringa da poter inserire nella casella di testo chiamata?

Grazie per l'attenzione e buona giornata.

8 Risposte

  • Re: Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

    Hai pensato, prima di imbatterti in codici complessi, di usare una form nativa di zoom...?

    RunCommand acCmdZoomBox
  • Re: Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

    @Alex ha scritto:


    Hai pensato, prima di imbatterti in codici complessi, di usare una form nativa di zoom...?

    RunCommand acCmdZoomBox
    ho provato a mettere quel codice, ma access mi risponde con l'errore "Chiamata di Routine o argomento non validi" c'è per caso un qualche riferimento
    dal menù strumenti del VBA che devo selezionare?
  • Re: Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

    Manca il Doxmd....
    DoCmd.RunCommand acCmdZoomBox
    
    Devi metterlo su DoppioClick della textbox da editare o su Click di un commandbutton ma prima devi spostare il focus sulla textbox.
  • Re: Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

    @Alex ha scritto:


    Manca il Doxmd....
    DoCmd.RunCommand acCmdZoomBox
    
    Devi metterlo su DoppioClick della textbox da editare o su Click di un commandbutton ma prima devi spostare il focus sulla textbox.

    codice usato:
    Private Sub txtTesto_DblClick(Cancel As Integer)
    
       DoCmd.RunCommand acCmdZoomBox
    
    End Sub
    
    risultato: "Chiamata di Routine o argomento non validi"
  • Re: Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

    Che versione di Access usi...?
    Da A2007 con SHIF+F2 si apre la zoombox..., prova e verificato, di cui il codice vba suggerito è l'equivalente per aprirla... deve funzionare.
  • Re: Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

    @Alex ha scritto:


    Che versione di Access usi...?
    Da A2007 con SHIF+F2 si apre la zoombox..., prova e verificato, di cui il codice vba suggerito è l'equivalente per aprirla... deve funzionare.
    Io uso Access 2016. Ho provato il comando SHIFT+F2 e funziona, ma la riga di comando corrispondente sull'editor VBA continua a non funzionare.

    Una cosa simile mi è capitata quando, seguendo un video tutorial su come gestire un'immagine memorizzando nella tabella il percorso del file per poi farlo visualizzare in maschera, il codice
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    fd.Show
    mi dava lo stesso problema e, chiedendo a chi aveva creato il tutorial, mi è stato detto che dovevo aggiungere un riferimento, selezionandolo sotto il menù dell'Editor VBA --> Strumenti --> Riferimenti (in questo caso erano 2: la "Microsoft Office 16.0 Object Library" e la "Microsoft Scripting Runtime")

    In questo momento i riferimenti che ho attivi sull'editor VBA sono:

    Visual Basic for Application
    Microsoft Access 16.0 Object Library
    OLE Automation
    Microsoft Office 16.0 Access database engine object library
    Microsoft Office 16.0 Object Library
    Microsoft Scripting Runtime

    Può essere che mi manchi il riferimento giusto per far sì che quel codice funzioni? Se così fosse, tu sai quanti e quali siano i riferimento che devo selezionare?
  • Re: Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

    Per il filedialog non è proprio come ti hanno detto... diciamo che quella è la soluzione per chi non ha grandi visioni di sviluppo.
    Nel tuo caso attuale nulla a che vedere... ma sincerame non ho altronda suggerirti...
  • Re: Ricavare la lunghezza massima del campo di una tabella, nel campo della maschera a cui è collegato.

    @Alex ha scritto:


    Che versione di Access usi...?
    Da A2007 con SHIF+F2 si apre la zoombox..., prova e verificato, di cui il codice vba suggerito è l'equivalente per aprirla... deve funzionare.
    ho installato ieri office pro 2019, ho riprovato il comando ed ora funziona.

    Si vede che con la versione scorsa non tutto era stato installato in maniera corretta.

    Grazie per il suggerimento.
Devi accedere o registrarti per scrivere nel forum
8 risposte