Newsgroup: it.comp.appl.access
Titolo: #ERROR in un campo calcolato e maschera "Blank"

Ciao a tutti.
Domanda forse banalissima ma non riesco a trovare una risposta.
Ho una maschera che, in funzione di una serie di scelte, compone, via visual 
basic una query parametrica abbastanza complessa.
2 problemi
1. in fondo alla maschera ho una serie di campi calcolati che, quando apro 
la maschera, mi visualizzano "#errore". So che deve essere una stupidata ma 
non riesco a trovare il modo di cancellare questo odioso "#errore" prima di 
eseguire la query (a query eseguita appare il risultato). Magari sarebbe 
bello che apparissero tutti 0 ma anche se imposto il valore di default del 
campo a 0...non succede nulla.
2. se la query non produce alcun risultato, ovvero se non trova record, la 
maschera si cancella ovvero spariscono tutti i campi e rimane solo lo 
sfondo. come mai? dov'e'  l'errore?
Grazie per l'aiuto
Francesco 
---
avast! Antivirus: In partenza messaggio pulito.
Virus Database (VPS): 0526-0, 27/06/2005
Controllato il: 27/06/2005 21.40.39
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com

[CUT]
Ciao,
per la prima domanda ti rimando a questo link 
http://www.mvps.org/access/forms/frm0022.htm
 ...per la seconda non sò che 
dirti :-(
Alla prossima :-)
Gaspare

 
http://www.avast.com
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 Francesco
Ciao.
-- 
Sergio MAZZA 

Ciao a tutti
ringrazio chi mi ha risposto al precedente messaggio, ovvero MA, Gaspare e 
Sergio, ma purtroppo nessun suggerimento ha funzionato, quindi devo supporre 
di essermi spiegato male. La cosa strana e' che cercando su internet non 
trovo alcuna risposta ai miei problemi (....forse cerco male???).
In teoria la cosa e' abbastanza semplice.
Si tratta di una maschera (senza alcuna sottomaschera) che ha nella parte 
superiore una serie di opzioni, e nella parte inferiore una serie di campi 
calcolati, che vanno dal classico "count([nome campo tabella])" all'ancor 
piu' classico Sum([nome campotabella])  piu' qualche semplice divisione e 
percentuale. Una volta che l'utente sceglie le varie opzioni (range di date 
e filtri vari) per filtrare i dati, preme il classico pulsante "Search!" e 
vai codice viene generata una query SQL piu' o meno lunga e complessa (in 
funzione delle scelte) che interroga una o piu' tabelle messe in relazione 
tramite un semplice INNER JOIN. Tra l'altro la tabella principale ha circa 
1.300.000 record che si incrementano di circa 70.000 al mese, quindi ho 
creato una Gif che fa apparire una maschera con il classico "Please wait 
query in progress" che ondeggia, gestito tramite una semplice routine che 
sfrutta, DoEvents per visualizzare questa maschera fintanto che la query e' 
in esecuzione (non ho trovato nulla di meglio per gestire l'attesa viste le 
dimensioni del database).
L'interrogazione e' in sola lettura e la maschera ha quindi come source la 
stringa SQL:
    Me.RecordSource = strSQL
    Me.Requery
La cosa funziona se non fosse per quegli "orribili" #ERRORE che appaino sui 
campi calcolati della maschera prima dell'esecuzione della query. Ho provato 
il suggerimento di inserire la funzione iserror([nomecampo]), che 
effettivamente inserisce 0 in presenza dell'errore......ma il campo rimane 0 
dopo l'esecuzione della query...e quindi non e' il massimo.
Poi c'e' l'altro errore che mi rende "blank" la maschera se la stringa sql 
non trova record. Sara' pure normale ma mi aspetterei un bel 0 in tutti i 
campi calcolati non totale scomparsa di tutti i campi dalla maschera.
La query interroga in sola lettura le varie tabelle. non vengono create 
tabelle temporanee.
il database viene aperto un modalita' DAO (anche se, visto che la query 
interroga e' in sola lettura, forse non ce n'e' bisogno)
Grazie per l'aiuto
Francesco
---
avast! Antivirus: In partenza messaggio pulito.
Virus Database (VPS): 0526-1, 28/06/2005
Controllato il: 29/06/2005 7.40.47


 ha scritto nel messaggio 
news:tvqwe.13155$h5.7...@news3.tin.it...

Hai controllato i nomi dei controlli? Quel tipo di errore lo presenta se uno 
dei nomi indicati nelle funzioni non esiste...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:d9tsmo$pfa$1...@domitilla.aioe.org...

Si
Il problema e' che tutti i controlli danno #ERRORE prima del lancio della 
query. Poi danno il risultato corretto.
Il fatto che diano #ERRORE probabilmente e' anche giusto, visto che fino a 
che non lancio a query i campi a cui si riferiscono le varie funzioni sum() 
e count() di fatto non esistono. Volevo solo sapere se si poteva baypassare 
questo e far apparire qualcos'altro (.....magri un bello 0)
ciao
Francesco 
---
avast! Antivirus: In partenza messaggio pulito.
Virus Database (VPS): 0526-2, 29/06/2005
Controllato il: 30/06/2005 7.44.56



Ciao Francesco
provo ad integrare quanto ti hanno già suggerito.
su evento caricamento della maschera che contiene i controlli:
IIf IsError([NomeControllo]), "0", [NomeControllo]
IIf IsError([NomeControllo1]), "0", [NomeControllo1] ecc.
---
Daniele


Sì, mancano solo le parentesi.



Suggerirei di non mettere il =count([campo]) e via dicendo come origine dati
nella casella di controllo, ma di eseguirla alla fine della routine.
Se suppongo che la SQL sia tipo: SELECT campo1, campo2 FROM tabella; o cose
del genere, il pulsante che avvia l'interrogazione eseguirà la query e se
strSQL.RecordCount > 0, allora farà: caselladicontrollo1 = count([campo1]),
caselladicontrollo2 = sum([campo2]) e roba del genere.
Ciao
Riccardo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Francesco
Ma allora apri la form in modalità invisibile e quando ha il recordset la visualizzi...
Ciao.
-- 
Sergio MAZZA