Originariamente inviato da Veronica80
Allora il fatto è che dovrei inserire la funzione in un vasto software già finito...sarebbe da morire...

Questo che sto facendo è un update al software che mi è stato chiesto e per evitare di dover intervenire manualmente su tutti i software dei clienti vorrei farlo in automatico creando una piccola patch...


La butto lì....avendo un campo con le stesse identiche proprietà che ho postato sopra nell'immagine è possibile clonarlo?
In quel caso lo copio nella tabella con un nuovo nome (visto che le proprietà sono identiche)
Non è un'idea da scartare.

codice:
Private Sub Command1_Click()
On Error GoTo Errore

  Const strConn = "Provider='Microsoft.Jet.OLEDB.4.0';Data Source='c:\tmp\db2003.mdb'"
  
  Dim DBConn As New ADODB.Connection, fld As New ADOX.Column
  Dim TB As New ADOX.Table, ACAT As New ADOX.Catalog
  
  DBConn.Open strConn, "Admin"
  
  'questo è il codice tipico
  'DBConn.Execute ("ALTER TABLE Tabella1 ADD NuovoCampo integer DEFAULT 0 ")
  
  Set ACAT.ActiveConnection = DBConn
  
  'con questo leggo le info di un campo gia' esistente
  Set fld = ACAT.Tables("Tabella1").Columns("NuovoCampo")
  
  
  'sistemo le proprietà del campo
'  With fld
'    .Name = "NuovoCampo"
'    .Type = adCurrency
'    .NumericScale = 4
    Dim pp As Property
    For Each pp In fld.Properties
      Debug.Print pp.Name & " --> " & pp.Value
    Next
'  End With
  
  'imposto la tbb
'  Set TB = ACAT.Tables("Tabella1")
'  TB.Columns.Append fld
  
Fine:
  DBConn.Close

Exit Sub
Errore:
  Debug.Print Err.Number; Err.Description
  Resume Fine

End Sub
Con questo bordello di codice partorito alla cavolo fai un po' di tutto.

Se ne capisci di VB6 :master: noterai che puoi leggere le proprietà di un campo esistente (cosi' com'è ora i codice) oppure creare con stringa (come dicevi inizialmente) oppure creare un campo e le relative proprietà.

Fa tutto tramite il riferimento alla DLL ADOX


p.s. la foto è la tua?