Newsgroup: it.comp.appl.access
Titolo: Formattazione tabella mediante codice

In un'applicazione Access 2007 mi trovo a dover creare una tabella con 
colonne che contengono campi testo e importi in valuta.
La tabella (che varia continuamente come numero e intestazione delle 
colonne) viene creata da codice e vengono accodati dei dati successivamente.
Di default i campi Testo sono allineati a sinistra: è possibile da VBA 
modificare l'allineamento delle colonne nella tabella impostandolo a destra?
E' possibile modificare l'allineamento delle colonne dall'interfaccia 
grafica, ma visto che la tabella viene cancellata e ricreata di volta in 
volta volevo automatizzare la procedura.
La tabella viene generata mediante il seguente codice:
Private Function Crea_Tab(Fonte As String, Destin As String)
On Error Resume Next
Dim qdf As DAO.QueryDef
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim rst As DAO.Recordset
Dim StrSql As String
Dim Conta As Integer
Set qdf = CurrentDb().QueryDefs(Fonte)
qdf.Parameters![Forms!Cantieri!ID_Cantiere] = Forms!Cantieri!ID_Cantiere
Set tdf = CurrentDb().CreateTableDef(Destin)
Set rst = qdf.OpenRecordset
Conta = 1
For Each fld In rst.Fields
    tdf.Fields.Append tdf.CreateField(fld.Name, dbText, 50)
    Conta = Conta + 1
Next
'controllo esistenza tabella - codice Sitocomune.com
If Esiste_Oggetto(Destin, "Tables") = True Then
    CurrentDb().TableDefs.Delete (Destin)
End If
CurrentDb().TableDefs.Append tdf
Set rst = Nothing
Set qdf = Nothing
Set fld = Nothing
End Function
 

Un piccolo aggiornamento:
ravanando sono riuscito ad aprire la tabella mediante codice ed accedere ai 
vari field della tabella.
Andando a cercare nella voce .properties() di ogni campo ho trovato alcune 
proprietà modificabili.
(1) Attributes = 2
(2) CollatingOrder = 1033
(3) Type = 10
(4) Name = Campo02
(5) OrdinalPosition = 2
(6) Size = 50
(7) SourceField = Campo02
(8) SourceTable = Tabella1
(10) DataUpdatable = Falso
(12) DefaultValue =
(13) ValidationRule =
(14) ValidationText =
(15) Required = Falso
(16) AllowZeroLength = Falso
(17) AppendOnly = Falso
Se però apro la tabella, modifico a mano l'allieamento di una colonna e 
salvo, le proprietà dei field aumentano e si attivano anche le voci 
seguenti:
(21) ColumnWidth = -1
(22) ColumnOrder = 0
(23) ColumnHidden = Falso
(24) TextAlign = 0
(25) AggregateType = -1
La 24 "TextAlign" è quella che interessa a me.
Creando però la tabella via codice poco prima della visualizzazione non 
posso modificare a mano la tabella.
Sono sempre alla ricerca di un suggerimento per riallineare i campi di tipo 
testo sulla destra.
Grazie
 

Risolto.
Per informazione allego parte del codice utilizzato per impostare le 
proprietà.
Confermo come da post precedente che alcune proprietà non sono subito 
disponibili dopo avere creato la tabella. E' necessario aprirla, eseguire un 
salvataggio e richiuderla, dopodichè il set di proprietà sarà completo.
Creo quindi una tabledef e i fields e con un contatore passo tutte le 
colonne impostando i criteri che mi interessano.
Set cdb = CurrentDb()
Set tdf = cdb.TableDefs(Destin)
DoCmd.OpenTable Destin
DoCmd.Save
DoCmd.Close acTable, Destin
Set fld = tdf.Fields(Conta)
fld.Properties(24) = 3
Se fosse utile per qulcuno posso riportarvi il codice completo utilizzato.