Apri un recordset (anche vuoto) sulla tabella,
poi leggi le proprietà del campo numerico:
codice:
Dim rs As ADODB.Recordset
dim sql As String
Set rs = New ADODB.Recordset
sql = "SELECT * FROM tabella WHERE 1=0"
rs.Open sql, CNN, adForwardOnly, adLockReadOnly, adCmdText
?rs("Importo").NumericScale
255
?rs("Importo").Precision
15
Riguardo al formato Data/Ora a cosa ti serve leggerlo?
Tieni presente che può avere una sua logica solo nell'ambiente di MsAccess (ovvero quando apri la tabella in Visualizzazione Foglio Dati) perchè quella è una proprietà specifica di MsAccess.
Al di fuori di MsAccess non ha alcun valore ed il recordset di ADO, correttamente, NON restituisce il valore formattato impostato in MsAccess, ma il formato Data/Ora in base alle impostazioni internazionali (locali) ed è giusto che sia così.
Poi tu puoi formattare il valore a piacere, usando Format().