PDA

Visualizza la versione completa : Vbasic, Creare Nuovi campi con ADO


brunok
16-05-2002, 09:59
Salve, vorrei sapere (se possibile con un esempio) come fare, con ado, a creare un nuovo campo su una tabella di un file di access,

io provo cos ma non funziona:


************************************************** **************
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & percorso & ";Persist Security Info=False"


cn.Open connString
cmd.ActiveConnection = cn
cmd.CommandText = "select * from abitanti"

rs.Fields.Append "campo", adBSTR, 30, adFldIsNullable
rs.Open "select * from abitanti", cn, adOpenStatic, adLockOptimistic

rs.Update
cn.Close
************************************************** **************

Boldan
16-05-2002, 10:45
Questo metodo causa un errore di run-time se usato su di un recordset aperto. Il problema che se lo fai su di uno chiuso come se non fossi collegato a nessun database, percui hai un recordset in memoria, a cui puoi aggiungere campi, ma che non contiene dati. Ti riporto quanto ho trovato su MSDN Library:


Calling the fields.Append method for an open Recordset or a Recordset where the ActiveConnection property has been set, will cause a run-time error. You can only append fields to a Recordset that is not open and has not yet been connected to a data source. Typically, these are new Recordset objects that you create with the CreateRecordset method or by explicitly assigning a new Recordset object to an object variable.

Per poter aggiungere dei campi alle tabelle da VB devi usare le librerie ADOX che permettono l'accesso alla struttura del DB.

Sempre su MSDN Library ho trovato quasto esempio che crea una tabella nel DB NorthWind.mdb e inserisce 3 colonne (fields):

Sub CreateTable()

Dim tbl As New Table
Dim cat As New ADOX.Catalog

'Open the catalog.
' Open the Catalog.
cat.ActiveConnection = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\Program Files\Microsoft Office\" & _
"Office\Samples\Northwind.mdb;"

tbl.Name = "MyTable"
tbl.Columns.Append "Column1", adInteger
tbl.Columns.Append "Column2", adInteger
tbl.Columns.Append "Column3", adVarWChar, 50
cat.Tables.Append tbl

End Sub

Spero ti sia d'aiuto, fammi sapere...
Ciao!!:rolleyes:

brunok
16-05-2002, 12:06
Allora ho risolto diversamente, basta una query sql, eccola:

*********************
cmd.CommandText = "ALTER TABLE GIACENTI_CAUSA_RETE_SATURA ADD pippo Char(30) not null"
Set rs = cmd.Execute
*********************


basta questo comando sql "ALter Table con ADD, ed fatto, comunque grazie per la collaborazione.

sebamix
16-05-2002, 15:22
Per interagire con la struttura del database (aggiungi-togli-modifica elementi) puoi utilizzare oggetti ADOX invece di oggetti ADO. Ti rimando a MSDN per maggiori info.

Loading