PDA

Visualizza la versione completa : [SQL] campi di tipo Valuta x DB ACCESS


Marvellous
13-06-2005, 20:44
Ho una tabela con il campo "prezzo_vendita" di tipo "Valuta".

La seguente query non funziona:

SELECT * FROM vista_Proposte WHERE 1=1
AND Prezzo_Vendita >= € 5.000,50

e nemmeno questa:

SELECT * FROM vista_Proposte WHERE 1=1
AND Prezzo_Vendita >= 5000,50

Esiste una sintassi specifica per confrontare campi di tipo valuta con virgola?

Grazie
MM

Mods
13-06-2005, 21:32
sostituisci la virgola con il punto e funzionerà il tutto :D

Marvellous
13-06-2005, 22:17
Ahh...
Perchè 5,2 e 5.2 sono equivalenti x Access?
Quindi il valore '1.000,50' deve trasformarsi in '1000.50 'dico bene?

Il valore € 5.000,50 viene preso da una TextBox dove era stato precedentemente applicato sull'evento Validate la seguente funzione


Public Function ConvertiInValuta(str As String) As String
Dim Prezzo As Currency
If Trim(str) = "" Then Exit Function
Prezzo = str
ConvertiInValuta = FormatCurrency(Prezzo, 2)
End Function

Che funzione posso utilizzare ora per formattare di nuovo il vaore nel modo corretto?

LeleFT
13-06-2005, 22:29
Originariamente inviato da Marvellous

SELECT * FROM vista_Proposte WHERE 1=1
AND Prezzo_Vendita >= € 5.000,50

Curiosità... a che ti serve mettere una condizione sempre vera come 1 = 1? :)


Ciao. :ciauz:

Marvellous
13-06-2005, 22:58
La query viene creata dinamicamente per cui sull'evento LOAD della FORM gli passo una condizione sempre vera per non farla andare in errore dopodichè mi basterà concatenare gli END in base ai campi compilati e fare un Refresch.

MM

Mods
14-06-2005, 18:13
Originariamente inviato da Marvellous
Ahh...
Perchè 5,2 e 5.2 sono equivalenti x Access?
Quindi il valore '1.000,50' deve trasformarsi in '1000.50 'dico bene?

Il valore € 5.000,50 viene preso da una TextBox dove era stato precedentemente applicato sull'evento Validate la seguente funzione


Public Function ConvertiInValuta(str As String) As String
Dim Prezzo As Currency
If Trim(str) = "" Then Exit Function
Prezzo = str
ConvertiInValuta = FormatCurrency(Prezzo, 2)
End Function

Che funzione posso utilizzare ora per formattare di nuovo il vaore nel modo corretto?

Visual Basic a livello GUI si adatta automaticamente alle impostazioni di sistema. A livello visuale vedi la ",". Al contrario quando vai ad operare in SQL, convertendolo in numero VBA ci mette il ".". Basta quindi ke in SQL converti la valuta in numero con un CDBL() anke perché le valute in Access vengono gestiti come numeri.

Loading