Origine Maschera

di il
11 risposte

Origine Maschera

Ciao a tutti,
piccolo problema da sottoporre alla cortesia e competenza della community.
Ho una maschera che trae origine dati da una tabella.
Dalla tabella ho una query che visualizza solo alcuni record di quella tabella.
Vorrei fare in modo che l'azione che normalmente è possibile effettuare su una mschera con il filtrare alcuni dati della stessa fosse eseguita dalla query anzidetta che aprisse una maschera uguale (nella grafica) alla originaria.
In sostanza è possibile duplicare una maschera facendo sì che i dati d'origine siano in un caso quelli della tabella e nell'altro quelli della query, evitando di doverla "costruire" ex novo ?
Spero di essere stato chiaro.

Alle prossime e grazie in anticipo

11 Risposte

  • Re: Origine Maschera

    Si tratterebbe di sfruttare la proprietà "Origine record" della maschera. Con una macro o codice VBA dovresti continuamente cambiare il valore che sta scritto dentro.
    Con le macro dovresti usare l'azione
    ImpostaValore
    Elemento: [Maschere]![NomeMaschera].RecordSource
    Espressione: "NomeTabella" oppure "NomeQuery"

    In VBA
    Me.RecordSource = "NomeTabella"
    oppure
    Me.RecordSource = "NomeQuery"

    Spero tu sia consapevole del fatto che in ogni caso puoi vedere solo una maschera alla volta e non entrambe.
  • Re: Origine Maschera

    Ciao Madza,
    ti indico una strada....nel seguente modo la apri stessa machera due volte (senza duplicarla, la prima volta mostri i dati della tabella dalla seconda volta in poi la query.
    se vuoi aprire la stessa maschera n volte basta eliminare la prima riga.
    elimina il recordsource, come vedi qui sotto lo imposti al volo anche con la prima apertura.
    
        If collectionForms.Count = 2 Then Exit Sub
        Dim frm As tuoOggettoForm
        Set frm = New TuoOggettoForm
        collectionForms.Add frm, CStr(CLng(Rnd * (2 ^ 31)))
        frm.RecordSource = "tuaTabella"
        frm.Visible = True
        If collectionForms.Count > 1 Then frm.RecordSource = "tuaQuery"
    
    su chiusura della form chiudi tutte le maschere aperte:
    
    Private Sub Form_Close()
        Dim frm As tuoOggettoForm
        For Each frm In collectionForms
            Set frm = Nothing
        Next
    End Sub
    
    
    facci sapere.
    un saluto.
  • Re: Origine Maschera

    Ciao a tutti e grazie,
    per ora ho fatto la copia della maschera e in origine dati ho messo query anziché tabella.
    I dati vengono visualizzati correttamente ad eccezione del campo ID (che identifica il singolo record). Quando apro la maschera appoggiata sulla tabella va tutto bene, mentre quando apro la maschera appoggiata alla query il campo ID mi compare #nome?.
    Non sono ancora riuscito a mette in piedi altro. Anche per mancanza di tempo. Il prossimo passo è seguire fedelmente quanto indicato da Osvaldo e Goku.
    Grazie
  • Re: Origine Maschera

    Se ci indichi tutti i campi della tabella e come filtra la query, riusciremmo a venirne a capo meglio.
  • Re: Origine Maschera

    I campi della tabella sono : ID (contatore) + Data (data e ora con =now()) + Cognome (testo) + Nome (testo) + Recapito (testo) + Addetto (testo) + Evasa (Si/No)l La query visualizza i record con condizione sul campo Evasa su SI.
    Ciao
  • Re: Origine Maschera

    C'è qualcosa di strano che non riesco a esplicitare per bene.
    Come si chiama la tabella? Di cosa parla?
    I campi Cognome e Nome (separati) fanno pensare a una tabella Anagrafica. I restanti campi parlano di tutt'altro. Da questo punto di vista credo che la tua tabella non sia normalizzata.
    Non sarebbe questo il punto della tua domanda iniziale...ma penso che la tabella e la query, pur avendo gli stessi campi, parlano 2 linguaggi diversi.
    Non so...
  • Re: Origine Maschera

    La tabella nasce dall'esigenza di tenere traccia delle chiamate che una ditta fa ai suoi clienti. Capita che tizio (Addetto) chiami caio (Utente) per dirgli qualcosa e poi non lo trova, quindi caio chiama l'ufficio di tizio e dice:"perchè mi hai chiamato". Ora siccome in ditta al telefono risponde chiunque,succede che nessuno sa perchè è stato chiamato caio. Allora ho pensato di risolverla per come vi ho descritto il tutto. La query servirebbe a separare quello che è rimasto da fare da quello che è stato fatto, cioè le chiamate andate a buon fine da quelle da lavorare ancora. Pensandoci (solo ora ahime!!) mi rendo conto ora che avrei dovuto separare Anagrafe da Chiamate con relazione molti-a-molti. Ciao a tutti
  • Re: Origine Maschera

    Ciao a tutti,
    scusate se mi intrometto in questa discussione,
    volevo chiedere è possibile richiamare la stessa maschera per visualizzare dati di una query e anche per l' immissione di nuovi dati (se non è troppo complicato....da spiegare e soprattutto da mettere in opera)?
  • Re: Origine Maschera

    La risposta è SI, apri la Guida In linea alla Funzione OPENFORM e vedrai che impostando in modo adeguato il Parametro sulla modalità di Apertura otterrai quello che chiedi.
  • Re: Origine Maschera

    Scusa, ho formulato male la domanda.
    La maschera la riesco ad aprire sia da query che in immissione dati (con due macro lanciate dai rispettivi due pulsanti). Il mio "problema" è aprire al suo interno due sottomaschere "diverse":
    - una, con le caselle già compilate (come da query e quindi senza menù a tendina).
    - l' altra, quella per l' immissione dei dati, con le caselle da compilare (da menù a tendina).
    Adesso ho due tabelle e due sottomaschere, ma se si potessero fare le cose fatte meglio...
    Oppure la soluzione che ho adottato può già andar bene così com' è?
    Allego due foto.
    Allegati:
    9927_455fb98b7ad07f83d3f4c7c21a81cb66.jpg
    9927_455fb98b7ad07f83d3f4c7c21a81cb66.jpg

    9927_a026c53641e1c3dee51494f556f739f5.jpg
    9927_a026c53641e1c3dee51494f556f739f5.jpg
  • Re: Origine Maschera

    A me sembra che il tuo problema sia diverso da quello proposto da mazda91. Perchè non apri un nuovo thread?
Devi accedere o registrarti per scrivere nel forum
11 risposte