Newsgroup: it.comp.appl.access
Titolo: creare tabella da un'altra che contiene decimali.

Avendo l'esigenza di memorizzare dei dati espressi in euro, ho creato una
tabella con il campo euro che contiene  le proprietà seguenti:
dimensione campo ---> precisione doppia
formato                 ---> standard
posizioni decimali  ----> 2
Fino a qui all'atto dell'inserimento funziona tutto bene, ma se decido di
creare una tabella di appoggio con l'istruzione "SELECT INTO......", la
tabella di destinazione non riporta nel campo euro le proprietà di quella di
origine, mettendomi la proprieta posizioni decimali impostate in
automatiche.
Ringrazio in anticipo chi può darmi un aiuto.
Valerio

 ha scritto nel messaggio
news:8s17t6$7q6$1...@pinco.nettuno.it...

Dovresti "trasformare" il euro con la funzione CDbl()...
Ciao.

Forse non mi sono spiegato bene, ma il problema è che se vuoi avere una
struttura di una tabella con campi decimali ben definiti, l'istruzione
"Select into" non ti crea una corrispondente tabella   con le posizioni dei
decimali definiti, bensì ti riporta il criterio "automatiche".
Grazie
   Valerio



Non sono sicuro (mai fatto) ma credo che dovresti mettere mano al VBA per
modificare le proprietà della formattazione dei campi; sempre se ho capito
cosa ti serve...
Ciao.


prova con questa routine, a me funziona.
le proprietà DecimalPlaces, Format, ed altre, non vengono impostate
dall'istruzione SQL, in quanto, credo non fanno parte di quelle proprietà
'fisse' dell'oggetto field;
infatti bisogna intervenire nell'insieme Proprieties del campo e crearle.
Sub CreaTabella(ByVal TabOrigine As String, ByVal TabDestinazione As String)
'dato il nome della tabella di origine ne crea una uguale di destinazione
    Dim DBS As Database
    Dim Tdef_Dest As TableDef, Tdef_Orig As TableDef
    Dim Fld_Orig As Field, Fld_Dest As Field
    Dim P_Dest As Property, P_Orig As Property
    Dim Criterio As String, x As Integer, y As Integer
    Set DBS = CurrentDb
    Criterio = "SELECT * INTO " & TabDestinazione & " FROM " & TabOrigine
    DBS.Execute Criterio
    ' setta le definizioni per le tabelle di origine e di destinazione
    Set Tdef_Orig = DBS.TableDefs(TabOrigine)
    Set Tdef_Dest = DBS.TableDefs(TabDestinazione)
    'ciclo su tutti i campi della tabella di origine
    For Each Fld In Tdef_Orig.Fields
        Set Fld_Dest = Tdef_Dest.Fields(Fld.Name)
        ' ciclo su tutte le proprietà del campo della tabella di origine
        For x = 0 To Fld.Properties.Count - 1
            Set P_Orig = Fld.Properties(x)
            ' cerca se la proprietà è già presente tra le proprietà del campo
di destinazione
            For y = 0 To Fld_Dest.Properties.Count - 1
                If P_Orig.Name = Fld_Dest.Properties(y).Name Then
                    Exit For
                End If
            Next y
            If y > Fld_Dest.Properties.Count - 1 Then
                ' se non trova la proprietà la crea
                Set P_Dest = Fld_Dest.CreateProperty(P_Orig.Name, P_Orig.Type,
P_Orig.Value)
                Fld_Dest.Properties.Append P_Dest
            End If
         Next x
    Next Fld
    Set Tdef_Orig = Nothing
    Set Tdef_Dest = Nothing
    Set DBS = Nothing
End Sub

             Set P_Orig = Fld_Orig.Properties(x)
