Per le date io uso nel form valuebox con type date, quando riempio il valuebox nel form: vbdatamia.Value = MyRS!datamia , quando salvo nel db : MyRS!datamia = vbdatamia.Value
Per i decimali uso nel form un semplice textbox e nel db decimal(10,2). Poi ho 2 funzioni (grazie fsurfing) per formattare, una per salvare e una per inserire nel form. Te le passo al più presto come anche la query, adesso scappo ancora
PUBLIC SUB formtvaluta(stringa AS String) AS String
DIM p, p1, itemp, itemp1 AS Integer
DIM initstringa AS String
''''sostituzione o aggiunta della virgola
IF InStr(stringa, ",") <> 0 THEN
stringa = Replace(stringa, ",", ".")
ENDIF
IF InStr(stringa, ".") <> 0 THEN
stringa = Replace(stringa, ".", ",")
ELSE
stringa = stringa & ",00"
ENDIF
'''''arrotondamento a due decimali
p = InStr(stringa, ",")
p1 = Len(stringa) - p
initstringa = Left(stringa, p - 1)
IF p1 = 2 THEN
stringa = stringa
ELSE IF p1 <= 1 THEN
stringa = stringa & "0"
ELSE IF p1 > 2 THEN
itemp = CInt(Mid(stringa, p + 1, 2))
itemp1 = CInt(Mid(stringa, p + 1 + 2, 1))
IF itemp1 >= 5 THEN
INC itemp
ENDIF
IF itemp = 100 THEN
stringa = CString(CInt(initstringa) + 1) & ",00"
ELSE
stringa = initstringa & "," & CString(itemp)
ENDIF
ENDIF
'''''''''''aggiunta puntini ogni 1000
IF Len(stringa) >= 7 THEN
stringa = Mid(stringa, 1, (Len(stringa) - 6)) & "." & Right(stringa, 6)
ENDIF
IF Len(stringa) >= 11 THEN
stringa = Mid(stringa, 1, (Len(stringa) - 10)) & "." & Right(stringa, 10)
ENDIF
IF Len(stringa) >= 15 THEN
stringa = Mid(stringa, 1, (Len(stringa) - 14)) & "." & Right(stringa, 14)
ENDIF
IF Len(stringa) >= 19 THEN
stringa = Mid(stringa, 1, (Len(stringa) - 18)) & "." & Right(stringa, 18)
ENDIF
RETURN stringa
END
PUBLIC SUB trasfvaluta(stringa AS String) AS String
''se scrivo l'importo con separatore decimale "." anzichè ","
IF Left(Right(stringa, (Len(stringa)) - (InStr(stringa, ".")) + 1), 1) = "." THEN
stringa = Left(stringa, (Len(stringa) - 3)) & "," & Right(stringa, 2)
ENDIF
''tolgo i punti di separatori migliaia
stringa = Replace(stringa, ".", "")
''cambio il separatore decimale da "," a "." per salvarlo in db
stringa = Replace(stringa, ",", ".")
RETURN stringa
END