Newsgroup: it.comp.appl.access
Titolo: Proprietà non impostabili da codice ????

Utilizzo Access per creare un database di orari per lavoro, trovandomi di
fronte alla necessità di strutturare
una nuova tabella per ogni nuovo dipendente e dovendo quindi mantenere la
struttura della Tabella simile per
tutti ho risolto il problema creando una tabella denominata
'DipendentiStruttura', che per ogni nuovo copio con
una funzione realizzata in VBA. Ultimamente stavo realizzando un funzione
come quella sottoriportata per ovviare
al fatto di dover mantenere una tabella vuota solo perchè ne utilizzo la
struttura:
Function fCreaDbDipendenti(nome As String) As Integer
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(nome)
  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
Ora il mio problema è che alcune proprietà tipo il formato o la maschera di
input del campo 'DATA' non riesco
nel modo più assoluto a settarlo con il codice VBA.....
Cosa invece impostabile nelle maschere di struttura per la creazione guidata
di una nuova TABELLA
QUALCUNO POTREBBE AIUTARMI ???
SE NON E' POSSIBILE POTRESTE RISPONDERMI LO STESSO GRAZIE
erib...@supereva.it


formato  -> proprieta'  format
maschera di input -> proprieta' InputMask
Comunque non e' il metodo migliore di creare una tabella a partire da una
gia' esistente. 
Potresti iterare tra  campi e proprieta' della tabella esistente e
aggiungerli (e settare le proprieta' ) alla  tabella  in costruzione. 
In questo modo avresti un metodo generale per clonare una qualsiasi
tabella senza doverti preoccupare del numero e  nome dei campi e delle
proprieta'. 
Sandro

una nuova tabella per ogni nuovo dipendente 
Cosi' strutturi male il database.
Se hai 10000 o piu'  dipendenti?
Tutti i dipendenti devono stare in una unica tabella che avra' un campo
che individua il dipendente. 

Ti stai complicando la vita.
Il modo più semplice per affrontare questo problema è usare un'unica tabella
con la stessa struttura dati di quelle che usi tu, alla quale basta
aggiungere un campo dipendente o codice_dipendente.
Per gestire i dati poi basta usare una maschera con sottomaschera per
filtrare i record relativi ad un particolare dipendente o usare il campo
codice_dipendente nelle query per selezionare soli i record voluti.

 di una nuova TABELLA
Alcune proprieta', tra le quali Formato e Maschera, prima
di poter essere impostate, devono essere create.
Una volta create possono essere modificate a piacimento.
Quindi il codice necessario diventa:
  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
  ...
-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
--------------------------------------
Tutte le richieste che mi arrivano
in privato, vengono cestinate.
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------