Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    stabilire numero decimali in un campo

    aiuto!
    in una applicazione vb6 vorrei conoscere il numero di decimali
    dichiarati per un campo access e il formato della data

    con Fld.Type ottengo il tipo del campo (4=precisione singola
    5=precisione doppia
    7=data / ora
    per conoscere il numero di decimali o il formato data ho
    provato ad usare le Fld.Attributes, Fld.DefinedSize ma
    non mi danno l' indicazione voluta
    con Fld.DataFormat mi da' l' errore di run-time 91:
    "Variabile oggetto o variabile del blocco with non impostata"

    ho provato anche con il ciclo

    For Each pp In Fld.Properties
    Debug.Print pp.Name, pp.Value
    Next pp

    ma nessuna delle proprieta' fa al caso mio

    qualcuno sa dirmi cosa devo utilizzare? grazie

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    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().

  3. #3
    ciao gibra
    per quanto riguarda la data era solo una curiosita'
    per i numeri invece la NumeriScale mi da' sempre 255
    e la Precision mi restituisce 7 o 15 a seconda se
    il campo e' dichiarato a singola o doppia precisione;
    quello che vorrei sapere e' invece il numero di decimali
    dichiarati in access

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Il discorso è uguale a quello della Data/Ora.
    I decimali in Access sono quelli che vuoi che 'Access' ti mostri nel suo ambiente.
    Non influiscono al di fuori di MsAccess, perchè il valore reale non cambia.

    Comunque in un database Access il valore più grande visualizzabile è composto da 15 cifre (numeri + decimali), virgola esclusa.
    Se si indica un numero di cifre superiore, Access arrotonda i decimali in modo da mostrare sempre 15 cifre.

    Esempio, in un campo a Precisione Doppia con 15 Posizioni Decimali:

    se inserisco: 12345678,1234567 Access mostra: 12345678,1234567
    se inserisco: 123456789,1234567 Access mostra: 123456789,123457


  5. #5
    ok
    grazie gibra

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.