Errore creazione sottomaschera

di il
6 risposte

Errore creazione sottomaschera

Buongiorno a tutti,
mi sono creato una form in cui ho definito una maschera continua ed una combo box.
Per popolare la maschera utilizzo una query in cui è presente funzione dsum nella quale riporto fra i criteri , ([Maschere]![NomeMaschera]![nome elemento] ),il valore di una casella di testo che è valorizzata tramite evento click della combo.
All’apertura della maschera ovviamente non esistono dati calcolati, e solo dopo la selezione della combo questi vengono visualizzati.
Fin qui tutto bene, il problema e quando faccio diventare questa maschera una sottomaschera, che all’apertura di quest’ultima mi viene mostrato l’errore “immettere errore parametro” ed il path con nomemaschera!nomecaselladitesto.
Sono ormai due giorni che cerco soluzioni ma non riesco a trovare soluzioni, qualcuno è in grado di darmi una mano.

6 Risposte

  • Re: Errore creazione sottomaschera

    Troppo generiche le denominazioni "una maschera", "una combo", "funzione DSum"...
    Fornisci:
    - i nomi propri di tutti questi oggetti
    - come hai costruito DSum
    - codice VBA dell'evento click
    Poi parli della maschera che diventa sottomaschera...non si capisce...fornisci nomi propri.
  • Re: Errore creazione sottomaschera

    Ciao.
    Vado a memoria, ma un un errore: "immettere errore parametro" non lo ricordo.
    Praticamente ti chiede di immettere un valore per un dato presente nella query ma che non trova collegamento con campi esistenti nella query?
    Devi modificare il percorso del controllo nella query o nella fonte dati.
    Se l hai trasformata in una sottomaschera, forse devi aggiungere anche il nome della maschera padre, o verificare che non hai cambiato nome alla maschera che hai trasformato in sottomaschera. Sopratutto se hai usato una creazione guidata per includerla nel form padre access l avrà rinominata da pincopallino a sottomascherapincopallino, senza però cambiare i riferimenti ai controlli ed alle query.
  • Re: Errore creazione sottomaschera

    Il programma che sto realizzando mi serve per la gestione del mio "orto", di circa 2000 mq che è stato suddivisi in strisce di terreno dette prode, per ognuna di queste registro su base annua le piante e lo spazio occupato.
    Ho quindi creato una serie di tabelle tblProdeDim in cui sono registrare il numero prode e le relative dimensioni, TblProdeFile in cui sono registrati per numero proda le culture impiantate, ed altre tabelle in cui ho riporto il tipo di ortaggio e la famiglia botanica.
    La maschera che mi proponevo di realizzare si basa sulla tabella tblProdeDim e ricerca per anno, nella tabella TblProdeFile tutte le prode e tramite la funzione dsum, in cui sono contenuti dei criteri, somma quanto terreno è stato coltivato quando è da coltivare e se vi sono culture già previste e non ancora messe a dimora. Nella fase successiva alla realizzazione di questa Maschera "UtilizzoProde" , mi proponevo di fare un ulteriore maschera "Culture" in cui visualizzo, per numero di prode tutte le culture in essere ho estirpate, queste due maschere le avrei poi riportate come sottomaschera in un unica maschera "Prode".
    Per visualizzare nella maschera UtilizzoProde 4 anni di colture, che rappresenta il ciclo di rotazione delle piante sullo stesso terreno,
    ho utilizzato, per selezionare l'anno che diventa uno dei criteri della Dsum, un Cbo chiamato "CboAnno" che popolo con una sua tabella, e sulla base dell'anno selezionato estraggo i dati dei quattro anni precedenti che riporto sulla maschera UtilizzoProde.
    Questo il risultato
    [img][
    ProdeMA.png
    ProdeMA.png

    ]
    Per ogni colonna presente sulla maschera ho scritto nella query la seguente instruzione
    A0Pia: Nz(DSum("[imp]";"tblprodfile";"[proda] ='" & [Proda] & "' and [anno]= '" & [Maschere]![UtilizzoProde]![TxtA0] & "' and [Stato]='p'");0)
    dove TxtAO è il valore ottenuto dalla CA mediante ottenuto mediante il comando click della stessa :
    [Private Sub CboAnno_Click()
        Me.TxtA0.Value = CboAnno.Column(0)
        Me.TxtA1.Value = str(Val(CboAnno.Column(0)) - 1)
        Me.TxtA2.Value = str(Val(CboAnno.Column(0)) - 2)
        Me.TxtA3.Value = str(Val(CboAnno.Column(0)) - 3)
        Me.Requery
    End Sub][code]
    Il problema e che quando vado ad inserire MA come sottomaschera in Prode mi da l'errore
    [img][
    ProdeMC.png
    ProdeMC.png

    ]


    Ringrazio Fratac per il suggerimento di cambiare il percorso alla query della maschera
    [A0Pia: Nz(DSum("[imp]";"tblprodfile";"[proda] ='" & [Proda] & "' and [anno]= '" & [Maschere]![UtilizzoProde]![TxtA0] & "' and  [Stato]='p'");0)][code]
    ma così le due maschere non sarebbero indipendenti, non so se ci sono altri modi per evitare l'errore.
  • Re: Errore creazione sottomaschera

    Dovresti mostrare per intero il predicato Sql della query che è l'origine record della sottomaschera.
  • Re: Errore creazione sottomaschera

    [SELECT TblProdDim.Proda, TblProdDim.Dim, [TblProdDim]![Dim]-Nz([a0pia],0)-Nz([A0Cul],0) AS A0Lib, DSum("[imp]","tblprodfile","[proda] ='" & [TblProdDim]![Proda] & "' and [anno]= '" & [Maschere]![UtilizzoProde]![TxtA0] & "' and  [Stato]='p'") AS A0Pia, DSum("[imp]","tblprodfile","[proda] ='" & [TblProdDim]![Proda] & "' and [anno]= '" & [Maschere]![UtilizzoProde]![TxtA0] & "' and  [Stato]='s'") AS A0Cul, DSum("[imp]","tblprodfile","[proda] ='" & [TblProdDim]![Proda] & "' and [anno]= '" & [Maschere]![UtilizzoProde]![TxtA0] & "' and  [Stato]='N'") AS A0Est
    FROM TblProdDim
    GROUP BY TblProdDim.Proda, TblProdDim.Dim, DSum("[imp]","tblprodfile","[proda] ='" & [TblProdDim]![Proda] & "' and [anno]= '" & [Maschere]![UtilizzoProde]![TxtA0] & "' and  [Stato]='p'"), DSum("[imp]","tblprodfile","[proda] ='" & [TblProdDim]![Proda] & "' and [anno]= '" & [Maschere]![UtilizzoProde]![TxtA0] & "' and  [Stato]='s'"), DSum("[imp]","tblprodfile","[proda] ='" & [TblProdDim]![Proda] & "' and [anno]= '" & [Maschere]![UtilizzoProde]![TxtA0] & "' and  [Stato]='N'");
    ]
    Eccolo e grazie
  • Re: Errore creazione sottomaschera

    Inserisci un controllo non associato nelle sottomaschere che chiamerai “MyAnno” ed al posto di chiamare nella query Form!…etc chiamerai MyAnno.

    Il MyAnno lo popoli con la combo ed esegui requery

    Rileggendo vedo che il controllo non associato esiste già mi chiedo senza il riferimento form!..etc funziona?

    Altrimenti devo andare a vedere come ho risolto in un mio db.

Devi accedere o registrarti per scrivere nel forum
6 risposte