Valore Height troppo grande che genera errore di runtime

di il
6 risposte

Valore Height troppo grande che genera errore di runtime

Il mio scopo è ridimensionare una sottomaschera - visualizzata come maschera continua - in base al numero dei record contenuti, in modo da evitare la barra di scorrimento e vedere tutto subito.
Il codice che utilizzo è questo:

Dim NumRec As Long
Dim Altezza As Long
Dim Totale As Long
NumRec = Me.sottomaschera.Form.RecordsetClone.RecordCount
Altezza = 2000
Totale = Altezza * NumRec
Me.sottomaschera.Height = Totale
Me.caselladicontrollo.Value = Totale
Così come è adesso con un numero di record bassi non da errore, ma io ho la necessità di portare quel valore di Altezza almeno a 6000 e poi anche i record possono diventare venti o in rari casi anche di più; quindi 6000 * 20 = 120000 e mi arriva l'errore alla riga:

Me.sottomaschera.Height = Totale
quindi ne evinco che Me.sottomaschera.Height non può superare un determinato valore (che sia 32768 come le costanti Integer?)...
Come aggirare questo ostacolo? Inoltre (ma questa è una mia curiosità) quel valore dato alla variabile Altezza in che unità di misura è espresso?
Grazie, spero in un aiuto...

6 Risposte

  • Re: Valore Height troppo grande che genera errore di runtime

    Gli oggetti in Access hanno dimensioni limite definite... ora a memoria non ricordo ma le trovi in MSDN.
    Detto questo, le subform hanno la barra di scorrimento apposta... perché dovresti renderle altissime e non sfruttare la barra laterale..?
    Integer accetta fino a 65535 non 32768.
    Le misure da codice sono in Twips una misura specifica di Access proporzionale ai Pixels adattata dal rapporto x/y della risoluzione e dal numero di pixels/cm

    Di fatto io non ho capito cosa vuoi fare.
  • Re: Valore Height troppo grande che genera errore di runtime

    Ciao Alex,
    io vorrei evitare di avere una barra di scorrimento dal momento che le mie sottomaschere non verranno altissime. Siccome ho diverse tabelle collegate tra loro pensavo di fare una maschera principale che ricavi direttamente solo i dati della tabella principale, poi agire con una serie di annidamenti di sottomaschere per poter ottenere come ultimo risultato vedere tutti i dati all'interno di un'unica maschera. Pensavo fosse il metodo giusto ma evidentemente mi sbagliavo dal momento che mi dici di non aver capito, poiché evidentemente non si usa fare così.
  • Re: Valore Height troppo grande che genera errore di runtime

    giancarlo75 ha scritto:


    una serie di annidamenti di sottomaschere
    Questo concetto rischia di essere controproducente su molti fronti. Premesso che non conosciamo la tua struttura tabelle...ipotizzo:
    1. C'è qualcosa di sbagliato a livello progettuale
    2. Forse molte tabelle annidate possono invece essere prese in considerazione "a cascata" con una serie di caselle combinate...
    3. Se troppi annidamenti risultano scomodi, molto meglio usare le "maschere collegate"

    ...sono andato un po' a ruota libera...ma proprio perchè non capiamo cosa vuoi fare, andrebbe chiarito l'intero tuo scenario...
  • Re: Valore Height troppo grande che genera errore di runtime

    giancarlo75 ha scritto:


    Ciao Alex,
    io vorrei evitare di avere una barra di scorrimento dal momento che le mie sottomaschere non verranno altissime. Siccome ho diverse tabelle collegate tra loro pensavo di fare una maschera principale che ricavi direttamente solo i dati della tabella principale, poi agire con una serie di annidamenti di sottomaschere per poter ottenere come ultimo risultato vedere tutti i dati all'interno di un'unica maschera. Pensavo fosse il metodo giusto ma evidentemente mi sbagliavo dal momento che mi dici di non aver capito, poiché evidentemente non si usa fare così.
    Personalmente ritengo più utile concentrarsi prima sulla sostanza...
    Credo che ti convenga dimensionare la SubForm alla altezza Massima disponibile... e ti dedichi a cose più strutturali.
    Io non metterei mai una cosa simile in un mio applicativo... ma se lo reputi indispensabile... valuta anche di confrontare la dimensione assegnata con la dimensione della maschera ospite e soprattutto allo schermo... perché se esce appaiono sempre le barre... non sulla form ma sul desktop... la tua soluzione è troppo semplicistica.
  • Re: Valore Height troppo grande che genera errore di runtime

    Eccomi, con un po' di ritardo...
    Dunque, per quanto riguarda la struttura del database questa dovrebbe già essere definita, se ci saranno queste saranno solo piccole variazioni. In definitiva mi mancano maschere, report ecc...
    Per quanto riguarda le maschere se io voglio progettarne una che riassuma i dati presenti in più di una tabella che io sappia ho due strade percorribili: o agisco con delle sottomaschere che è quello che volevo fare, oppure faccio una query di unione e baso la maschera sulla query. Ci sono altri mezzi?
  • Re: Valore Height troppo grande che genera errore di runtime

    Per me non si può parlare troppo sulle generali (maschere e/o sottomaschere). Occorre conoscere la STRUTTURA generale di tutte le tabelle. Di conseguenza si attua una strategia mirata ad ottimizzare quello che si vuole.
    Per rispondere nei dettagli a queste domande, apri una nuova discussione, ormai siamo fuori dal titolo principale di questa.
Devi accedere o registrarti per scrivere nel forum
6 risposte