Re: Creare tabelle con proprietà in VBA
[ Nouvelle discussion
| Répondre au groupe
|
it.comp.appl.access ]
On 28 Ago, 11:07, Carlo <carlo.lomba...@unipv.it> wrote:
> Voglio creare una procedura in VBA per creare le tabelle e le relative
> maschere partendo da un grande elenco di variabili con annesse
> proprietà (creato in Excel).
> Sono riuscito a creare una tabella tramite "Microsoft DAO 3.6 Object
> Library" con i nomi dei campi, il tipo di dato e la dimensione tramite
> questa funzione:
> [cite]
> Function CreaTabella()
> On Error GoTo ErrHandler
> Dim db As DAO.Database
> Dim tdf As DAO.TableDef
> Dim idx As DAO.Index
> Dim fld As DAO.Field
>
> Set db = Application.CurrentDb
> Set tdf = db.CreateTableDef("Tabella1")
> With tdf
> Set fld = .CreateField("ID", dbLong)
> fld.Attributes = fld.Attributes Or dbAutoIncrField
> .Fields.Append fld
> .Fields.Append .CreateField("Data", dbDate)
> .Fields.Append .CreateField("Settimana", dbInteger)
> .Fields.Append .CreateField("Nome", dbText, 30)
> .Fields.Append .CreateField("Commessa", dbText, 15)
> .Fields.Append .CreateField("Attivita", dbText, 5)
> .Fields.Append .CreateField("Ore", dbSingle)
> .Fields.Append .CreateField("Trasferta", dbText, 5)
> .Fields.Append .CreateField("Pranzo", dbInteger)
> .Fields.Append .CreateField("PSRic", dbInteger)
> .Fields.Append .CreateField("PCRic", dbInteger)
> .Fields.Append .CreateField("KM", dbInteger)
> .Fields.Append .CreateField("KMP", dbInteger)
> .Fields.Append .CreateField("AutoTipo", dbText, 25)
> .Fields.Append .CreateField("AutoKMinit", dbInteger)
> .Fields.Append .CreateField("AutoKMfine", dbInteger)
>
> Set idx = .CreateIndex
> With idx
> .Name = "PrimaryKey"
> .Primary = True
> .Unique = True
> .Fields.Append .CreateField("ID", dbAutoIncrField)
> End With
> .Indexes.Append idx
> End With
> ' Accoda un nuovo oggetto TableDef al database
> db.TableDefs.Append tdf
>
> ExitHere:
> Set fld = Nothing
> Set idx = Nothing
> Set tdf = Nothing
> Set db = Nothing
> Exit Function
>
> ErrHandler:
> MsgBox Err.Number & " " & Err.Description
> Resume ExitHere
>
> End Function
> [/cite]
>
> Vorrei però aggiungere, sempre in VBA, le altre proprietà dei campi:
> Formato
> Maschera di input
> Etichetta
> Valore predefinito
> Valido se
> Messaggio errore
> Richiesto
> Indicizzato
>
> Ho visto una cosa simile scritta da Federico Luciani in questo
posthttp://groups.google.it/group/it.comp.appl.access/msg/9cf724847990165...
> ma non ho capito come integrarla nella creazione della tabella.
>
> Dim dbs As Database
> Dim tdf As TableDef
> Dim prp As Property
> Set dbs = currentdb
> Set tdf = dbs.TableDefs("tblTimeStamp")
> Set fld = tdf.Fields("DataOper")
> Set prp = fld.CreateProperty("Format", 10, "dd/mm/yyyy")
> fld.Properties.Append prp
> Set prp = fld.CreateProperty("InputMask", 10,
> "99/99/00;0;_")
> fld.Properties.Append prp
Dimenticavo: che riferimenti ci vogliono per fare funzionare il tutto?
Tra l'altro alcuni esempi della guida di Access non mi girano.
Probabilmente ho qualche libreria o riferimento disabilitati. Qualcuno
sa dirmi quali sono i riferimenti standard da attivare?

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|