Newsgroup: it.comp.appl.access
Titolo: 2 Perplessità

Ho 2 perlessità che spero che qualcuno di voi mi aiuti a risolvere.
Oggi stavo impostando una query contenente una formula sui campi piuttosto
complessa, così mi sono deciso a creare una function.
Tutto bene, nessun problema tranne che per un particolare, ho un campo che
può essere un valore o null, il dim è stato fatto con un variant proprio per
questo motivo.
Ad un certo punto devo far una divisione per questo valore, ma solo se è un
valore (non è mai 0)
Non riesco a creare un if capace di capirlo, ho provato paragonandolo a:
<>"",   is null,   null,    not null.
Ho creato una variabile imponendola = null ma niente.
Seguendo il calcolo passo per passo e posizionandomi sopra con il mouse vedo
che il valore è null, ma non riesco a trovare un termine di paragone per il
mio if.
Alla fine ho risolto intercettando l'errore che avevo nella divisione e
facendola escludere in qesto modo ma qualcuno sa spiegarmi perché o come
fare?
Secondo:
Ho costruito una query parametrica che effettua delle selezioni con dei
valori posti in una maschera.
La query funziona perfettamente.
Però quando parto da questa query per costruirne un'altra a campi incrociati
mi restituisce errore dicendo che non può farlo.
Sottolineo che se la stessa selezione la faccio direttamente sulla query di
partenza togliendo il legame con la maschera il tutto funziona
perfettamente.
L'help in linea non mi ha aiutato.
Anche in questo caso ho risolto con un piccolo trucco il problema ma non
capisco il perché??
Io uso A97.
Grazie.
Cristiano 1972

 ha scritto nel messaggio
news:CLFgb.182233$hE5.6...@news1.tin.it...

Prima di tutto ti invito a usare, per il futuro, subject più significativi per le tue
richieste: aumenterà di molto la probabilità di ricevere aiuto. Per il primo quesito
ti consiglio di testare il valore, anzichè con IsNull,  con la arcinota funzione
IsNothing (io l'ho tratta dai sacri testi del Viescas):
Function IsNothing(varToTest As Variant) As Integer
'  Tests for a "logical" nothing based on data type
'  Empty and Null = Nothing
'  Number = 0 is Nothing
'  Zero length string is Nothing
'  Date/Time is never Nothing
    IsNothing = True
    Select Case VarType(varToTest)
        Case vbEmpty
            Exit Function
        Case vbNull
            Exit Function
        Case vbBoolean
            If varToTest Then IsNothing = False
        Case vbByte, vbInteger, vbLong, vbSingle, vbDouble, vbCurrency
            If varToTest <> 0 Then IsNothing = False
        Case vbDate
            IsNothing = False
        Case vbString
            If (Len(varToTest) <> 0 And varToTest <> " ") Then IsNothing = False
    End Select
End Function
Per il secondo quesito, vista l'ora e il fatto che hai comunque risolto, difficile
dire senza vedere la struttura delle query :)
Ciao
Galliano

 Cristiano 1972
Ma la maschera è aperta quando lanci le query? E come hai risolto?
Namor
-- 
------------------------------
Siamo tutti nella stessa barca (alcuni incatenati ai remi, altri con la
frusta in mano)!
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Si la maschera è aperta.
Ho risolto convertendo la query di selezione in query di creazione tabella
"Temp-01"
La query a campi incrociati punta a questa nuova tabella "Temp-01" e
funziona benissimo
Nel codice del bottone che mi apre la query a campi incrociati ho agginto un
disabilita avvisi e un lancia la query di creazione tabella.
Metodo poco ortodosso ma funzionante.
Cristiano 1972






