Newsgroup: it.comp.appl.access
Titolo: istruzione SELECT

Scusate la banalita' ma sono davvero non alle prime armi ma alle primissime 
!!
Dovrei, tramite una funzione, recuperare l'ID di una specifica fattura 
(ossia con un determinato numero e una determinata data). Sia il numero come 
la data, li passo alla funzione come parametri della stessa.
Quindi:
sNumeroDoc e' stringa ed e' = a 26658
dData e' una data ed e' = a 22/08/2007
Public Function fRitornaNumero (sNroDoc, dData)
 'recupera l'idFattura di T_Fatture in base a numero fattura e data fattura
    Dim mioDB As DAO.Database
    Dim FattureRCS As Recordset
    ' questa (dove i valori vengono passati come parametri) NON VA !!!!
    strSQL = "SELECT T_Fatture.*, T_Fatture.NumeroDoc, T_Fatture.DataDoc 
FROM T_Fatture " _
        & "WHERE (((T_Fatture.NumeroDoc)=" & sNroDoc & ") AND 
((T_Fatture.DataDoc)=" & dData & "));"
    'questa va
    strSQL = "SELECT T_Fatture.*, T_Fatture.NumeroDoc, T_Fatture.DataDoc 
FROM T_Fatture " _
        & "WHERE (((T_Fatture.NumeroDoc)='26658') AND 
((T_Fatture.DataDoc)=#8/22/2007#));"
(Peraltro, se notate, questa SELECT funziona con la formattazione della data 
"invertita"!!). Il bello e' che non sono stato io ad invertirla...: ho 
creato una query inserendo nei criteri i valori ed ho copiato la 
corrispettiva SQL.
Pur avendo inserito la data fattura nella query 22/08/2007, l'SQL me la 
riporta 8/22/2007 !!!
    Set mioDB = currentdb()
    Set FattureRCS = mioDB.OpenRecordset(strSQL, dbOpenTable)
    ................
Premetto e confesso, che questa soluzione l'ho spudoratamente copiata dalla 
guida di Access per cui sicuramente l'adattamento al mio problema, forse, 
non e' stato perfetto.
Vi sarei grato se mi deste un parere (il termine "correzione" sarebbe 
sicuramente piu' appropriato)
Grazie mille. 

 riporta 8/22/2007 !!!
SQL vuole la data in formato americano, quando inserisci una data nel
tool grafico delle query, Access la converte automaticamente. Idem se
inserisci direttamente nella finestra SQL una data evidentemente da
invertire ( 31/1/2007 ), mentre potrebbe andare in crisi se, in SQL,
inserisci una data "ambigua" (e non sa se invertirla o no).
cia'
Max

 ha scritto nel messaggio 
news:1194869155.9...@57g2000hsv.googlegroups.com...

Grazie Max!
Sto guardando la trasformazione della stringa SELECT con DLOOKUP e se ho 
capito bene dovrei fare cosi':
- creo una casella di testo e come valore in ORIGINE CONTROLLO, dovrei 
inserire il DLOOKUP che mi hai suggerito. Corretto?
Pero' ho guardato nella guida e la spiegazione mi angoscia !!!
Come trasformo la sintassi del SELECT con quella nuova del DLOOKUP ?
Non e' per pigrizia che chiedo, ma perche' ci sto perdendo la testa! 

 Come trasformo la sintassi del SELECT con quella nuova del DLOOKUP ?
Il primo argomento e' il campo che vuoi come risultato
Il secondo argomento e' la tabella/query nella quale cercare
Il terzo argomento e' la condizione (tutto quello che scriveresti in
SQL dopo il WHERE):
strWhere= "NumeroDoc=" & sNroDoc & " AND DataDoc=#" & format(dData,"mm/
dd/yyyy")  & "#"
=dlookup("ID","T_Fatture",strWhere)
Se non trova la corrispondenza, restituisce una stringa di lunghezza
zero "" (se non ricordo male)
cia'
Max

 ha scritto nel messaggio 
news:1194882642.0...@50g2000hsm.googlegroups.com...

Grazie.... Provo e casomai ti dico.
A presto.
Luca