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?