PDA

View Full Version : [ACCESS]Passaggio Argomenti Vuoti Funzione


Do85
07-01-2009, 15:09
Ho un problema con una query di access. Ho creato una funzione in Visual Basic che viene richiamata da una query e che mi da come risultato un valore numerico. Alla funzione do 4 argomenti di tipo string che mi danno poi il valore numerico di cui ho bisogno. Il mio problema è che questi argomenti possono anche essere vuoti ma access non mi chiama la funzione se non ha uno di questi argomenti. Non c'è un modo per chiamarla ugualmente, onestamente mi sembra un pò una cavolata...

Se conoscete una soluzione...! :D
Grazie mille

MarcoGG
07-01-2009, 15:17
Devi dichiarare Optional i parametri che prevedi possano essere vuoti, e poi, all'interno della Function puoi testare la loro eventuale mancanza con la funzione IsMissing()... ;)

Do85
07-01-2009, 15:38
Devi dichiarare Optional i parametri che prevedi possano essere vuoti, e poi, all'interno della Function puoi testare la loro eventuale mancanza con la funzione IsMissing()... ;)

Ti ringrazio per la risposta ed ho provato a farlo ma non gli piace, è proprio dalla query che non viene chiamata la funzione in quanto uno degli argomenti è nullo. In modalità debug quando un campo è nullo non entra nemmeno nella funzione...
Ho parzialmente risolto passando gli argomenti nella funzione NZ([Argomento]), si allunga la call ma se non avete altra soluzione non so come fare...

MarcoGG
07-01-2009, 17:29
Ti ringrazio per la risposta ed ho provato a farlo ma non gli piace, è proprio dalla query che non viene chiamata la funzione in quanto uno degli argomenti è nullo. In modalità debug quando un campo è nullo non entra nemmeno nella funzione...
Ho parzialmente risolto passando gli argomenti nella funzione NZ([Argomento]), si allunga la call ma se non avete altra soluzione non so come fare...

A questo punto se non vedo la Query e la Function non so come continuare.
Se puoi, postale.

Do85
08-01-2009, 08:38
Mmm posso dirvi un altro problema!?
Vorrei mettere un criterio in una query che prenda il valore dal campo in una maschera. Usando una funzione di questo tipo

Function CtrlOp() As String
Dim Maschera As Form

Set Maschera = Forms!CopiaNuovaMaschera
If Not IsNull(Maschera!C_OPER) = True Then
CtrlOp = Maschera!C_OPER
End If

End Function

vorrei che vba mettesse nel criterio della query il valore contenuto nel campo della maschera se presente.
ma appena apro la query mi da errore dicendo "nessun valore nell'espressione immessa" e selezionando la riga sottolineata.