Sottomaschere, piccola conferma

di il
11 risposte

Sottomaschere, piccola conferma

Ciao a tutti, vorrei solo avere da voi una piccola conferma:
non è possibile modificare l'etichetta di una sottomaschera aggiungendo delle formule, giusto?
Nel mio caso specifico nelle sottomaschere a più tab ho degli elenchi tabulari (filtrati), e mi piacerebbe scrivere un numero all'interno dell'etichetta della sottomaschera che indichi il numero di elementi presenti in ciascuna tabella, senza dover necessariamente entrare in ciascuna tab.
Grazie

11 Risposte

  • Re: Sottomaschere, piccola conferma

    Per quello che ne so io, non è che non si può fare. Piuttosto è sconveniente in quanto dovresti con una azione macro o codice VBA continuamente stuzzicare la proprietà Etichetta (Caption). Molto più semplicemente potresti usare una "casella di testo" dove dentro ci scrivi la formula che deve calcolare quello che tu hai deciso di calcolare...e lo fa in automatico.
  • Re: Sottomaschere, piccola conferma

    Direi che proprio NON SI PUO' FARE invece...!

    I motivi sono sostanzialmente 2:
    1) Si tratta di SubForm, quindi visualizzazione continua, significa che l'etichetta di TUTTI i Records visualizzati avrebbe la stessa valorizzazione per tutti, cosa chiaramente non corretta.
    2) Usare un'etichetta per queste cose E' ERRATO, proprio perchè con Maschere Continue, i CALCOLI si effettuano nelle Query di Origine, ed il risultato del campo calcolato deve essere associato ad un controllo DataBound, e l'etichetta non lo è...

    Saluti
  • Re: Sottomaschere, piccola conferma

    Grazie per le risposte! Nel frattempo sono riuscito a risolvere, più o meno nel modo suggerito da Osvaldo. So che con una casella di testo sarebbe stato molto più semplice, ma è una soddisfazione vedere il numerino direttamente sulla etichetta della tab e non su una casella di testo esterna
    Forse, tra l'altro, non avevo spiegato bene ciò che volevo fare: io ho un controllo struttura a scheda con due tab, all'interno delle quali ci sono due sottomaschere in cui è contenuto un numero limitato di record, che è proprio ciò che vorrei contare e visualizzare nell'etichetta delle tab della struttura a schede.
    Ho risoldo in VBA così:
    Private Sub Form_Current()
         Me.Parent.Etichetta5.Caption = "Numero records: " & Me.RecordsetClone.recordcount
     End Sub
    Due volte, una per ogni sottomaschera, nell'evento current.
    Che ne pensi Alex, ti sembra (anche solo concettualmente) errato?

    Grazie ancora,
    Raul
  • Re: Sottomaschere, piccola conferma

    Se sei in visualizzazioen SINGOLA, va bene, altrimenti è assolutamente sbagliato, e te ne devi accorgere visto che tutte le LABEL ad ogni spostamento Record assumeranno lo stesso valore...!!

    Poi fai un'ulteriore test passando al NUOVO RECORD...
  • Re: Sottomaschere, piccola conferma

    Perdona l'ignoranza, cos'è la visualizzazione "singola"?
    Credo di essere in questo caso, perché funziona bene passando tra un record e l'altro
  • Re: Sottomaschere, piccola conferma

    Queste sono domande che puoi porre alla guida... decisamente, resto stranito dall'avere una SubForm in modalità Maschera Singola, ma forse i dubbi sono altri...
  • Re: Sottomaschere, piccola conferma

    Ah scusa, con una rapida ricerca ho capito cosa intendi con "Maschera singola"... Il problema è che ho imparato (quel poco che so di) Access su una guida inglese, per cui i nomi a volte mi risultano poco familiari.
    Quindi confermo: la maschera principale è assolutamente in modalità maschera singola, mentre all'interno di ciascuna tab della struttura a scheda ci sono due sottomaschere (che in realtà è praticamente la stessa maschera in due modalità differenti), una in modalità foglio dati - per avere un elenco completo dei contatti con la data persona) e l'altra in modalità maschera singola, posizionata di default sul record nuovo - che viene utilizzata, principalmente, per aggiungere un nuovo record. Quello che faccio è contare i record contenuti in una di queste due sottomaschere e scriverlo nell'etichetta della struttura a scheda, idem per l'altra tab.
    Tutta la maschera, in pratica, visualizza una singola persona alla volta dell'elenco delle persone, e per questa persona mostra i contatti passati e da la possibilità di aggiungerne dei nuovi. Ti sembra un approccio poco ortodosso? Sono sempre pronto ad imparare nuovi (e migliori) metodi!
  • Re: Sottomaschere, piccola conferma

    La modalità foglio dati è poco gestibile in quanto non formattabile, solitamente è preferibile usare una modalità Continua rendendo graficamente coerenti i controlli al fine di dare l'aspetto richiesto.

    In tutti i casi avere una maschera con all'interno sotto-maschere con la stessa origine dati... è solo una tua decisione..., che io non condivido, ma che resta fattibile.

    Detto questo tuttavia risulta ancora più strano il fatto che tu voglia visualizzare il Numero dei Records contando quelli della SubForm, quando sono gli stessi della form...

    L'uso poi di una maschera come sottomaschera, piena di dati in quanto anch'essa con la medesima Origine, ma in modalità inserimento è assurda.

    Insomma non si tratta tanto di approccio, ma di metodo di utilizzo dello strumento, decisamente da rivedere, chiaramente poi ognuno fa come crede...
  • Re: Sottomaschere, piccola conferma

    Uhm, no, non è la stessa origine dei dati: la maschera è relativa a una tabella (nel caso specifico "persone", contenente i dati relativi alla persona - email, telefono, nome, cognome, etc), la sottomaschera contiene i dati di un'altra tabella (contatti, che contiene le informazioni relative alle interazioni avute con le varie persone). Le tabelle sono collegate, ovviamente, in quanto le "interazioni" sono fatte con delle persone prese dalla tabella "persone" (collegate attraverso l'ID).
    La sottomaschera, in particolare, è la tabella "contatti" filtrata secondo la persona visualizzata nella maschera principale.
    Ti sembra, spiegata così, che abbia più senso?
  • Re: Sottomaschere, piccola conferma

    Ora va meglio.
    Se invece di usare la maschera(SottoMaschera) in modalità FoglioDati(DatasheetView) usassi la continua, ti basterebbe usare il Pie di pagina ed inserire una TextBox con la Formula =Conteggio(..)
    per sapere quanti Records ci sono...

    Ciao
  • Re: Sottomaschere, piccola conferma

    Bene, mi fa piacere sapere di avere fatto qualcosa di non completamente assurdo.
    Avevo pensato alla textbox (che sarebbe stata sicuramente più semplice da fare), ma non nel pié di pagina, in quanto, ho altre due sottomaschere (praticamente analoghe ma relative ad un'altra tabella con altri tipi di informazioni) nell'altra tab del controllo a schede, e ciò che voglio è avere i due conteggi disponibili senza dover entrare in entrambe le schede. Avrei potuto mettere delle textbox esterne alla struttura a schede, ma a quel punto mi è sembrato stilisticamente più carino scrivere il numero dei record conteggiati direttamente nell'etichetta della scheda relativa!
    Grazie comunque per l'aiuto e la discussione, che contribuisce sempre ad accrescere l'esperienza.
Devi accedere o registrarti per scrivere nel forum
11 risposte