Newsgroup: it.comp.appl.access
Titolo: Funzioni da richiamare nelle query

Ciao a tutti
chiedo aiuto per creare due Funzioni da richiamare nelle query sulla base di 
queste due query
 
1-SELECT TbCarichi.IDOrdine, Max(IIf(IsNull([DataCarico]) Or ([nPallet]=0 
And [nColli]=0) Or IsNull([IdProdotto]),0,-1)) AS Conferma_A
FROM TbCarichi LEFT JOIN [TbDettagli] ON TbCarichi.IDCarico = 
[TbDettagli].IDCarico
GROUP BY TbCarichi.IDOrdine;
 
 
2-SELECT TbCarichi.IDCarico, Max(IIf(IsNull(DataCarico) Or (nPallet=0 And 
nColli=0)Or IsNull([IdProdotto]),0,-1)) AS Conferma_B
FROM TbCarichi LEFT JOIN TbDettagli ON TbCarichi.IDCarico = 
TbDettagli.IDCarico
GROUP BY TbCarichi.IDCarico;
 
Grazie
 
 

CUT
Public Function ConfermaOrdine() As Boolean
 
Dim Rst As DAO.Recordset
Dim strSql As String
 
strSql = "SELECT TbCarichi.IDOrdine, TbDettagli.* FROM TbCarichi LEFT JOIN 
TbDettagli ON TbCarichi.IDCarico = TbDettagli.IDCarico;"
Set Rst = CurrentDb().OpenRecordset(strSql)
Rst.MoveFirst
 
????????????????????????---------------codice mancante--------------
ora come devo fare per avere nella variabile ConfermaOrdine() l'equivalente 
di questa espressione?
 Max(IIf(IsNull(TbCarichi.DataCarico) Or (nz(TbDettagli.nPallet)=0 And 
nz(TbDettagli.nColli)=0);0;-1))
 
 
 
Set Rst = Nothing
End Function
 
Grazie 
 
 

Non è che si capisce molto,
 
Proviamo a vedere le cose al contrario
 
Hai la tabella TbCarichi  con i campi:
- ........
- ..........
- .........
 
Hai la tabella TbDettagli  con i campi:
- ........
- ..........
- .........
 
Poi spiegaci cosa vuoi ottenete nella query
 
Facci sapere

Non č che si capisce molto,

grazie Mancini
il risultato di questa espressione


CUT..............
 
ho creato questa funzione
Public Function ChiusuraCarico() As Boolean
Dim db As Dao.Database
Dim rs As Dao.Recordset
Dim DataChiusura As Date
 
Set db = CurrentDb
Set rs = db.OpenRecordset("TbCarichi", dbOpenDynaset)
 
Do Until rs.EOF
    If IsNull(DataChiusura) Then
    ChiusuraCarico = -1
    Else
    ChiusuraCarico = 0
    End If
    rs.MoveNext
Loop
End Function
 
ma nella Query ho lo stesso risultato sia che c'è o che non c'è la data
 
Grazie 
 
 

 nz(TbDettagli.nColli)=0);0;-1))
Hai una variabile ConfermaOrdine()... con le due parentesi?
Poi che cosa significa "l'equivalente di un'espressione"?
Se intendi il RISULTATO di un'espressione avrai:
    Variabile = Max(IIf(IsNull(...
 
Bruno



ciao Bruno e grazie
 
a parte che con  Max mi da errore
 
ma cmq togliendolo(Max)ho in tutti i record -1 cioè un risultato errato
 
ho provato anche cosi, ma nulla di fatto:
Public Function ConfermaCarico() As Boolean
ConfermaCarico = DLookup("Conf_Carico", "Q_Valore_Carico", "IdCarico")
End Function
 
 
 
 

CUT........
 
 
strSql = "SELECT TbCarichi.IDCarico, Max(IIf(IsNull([DataCarico]) Or 
(nz([nPallet])=0 And nz(nColli])=0),0,-1)) AS Conf_Carico FROM TbCarichi 
LEFT JOIN TbDettagli ON TbCarichi.IdCarico = TbDettagli.IDCarico GROUP BY 
TbCarichi.IDCarico;"
Set Rst = CurrentDb().OpenRecordset(strSql)
 
ConfermaCarico = Rst!Conf_Carico
 
ora come devo fare perchè l'idCarico di questa query sia uguale all'idCarico 
della query dove
andrò ad inserire la variabile ConfermaCarico()?
 
Grazie