accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

Creare tabelle con proprietà in VBA

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  it.comp.appl.access ] 

Retour : Accueil du site it comp appl access  


  Sujet:   Creare tabelle con proprietà in VBA  
 De: carlo.lomba...@unipv.it (Carlo)
 Groupes: it.comp.appl.access
 Organisation: http://groups.google.com
 Date: 28. Aug 2008, 02:07:03
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 post
http://groups.google.it/group/it.comp.appl.access/msg/9cf7248479901658?hl=it
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


DateSujet  Auteur
01.01.
o 
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)
Free counter and web stats