Private Sub CopiaTabella()
Dim dtb As Database
Dim tbo As TableDef
Dim tbn As TableDef
Dim fld As Field
Set dtb = OpenDatabase("C:\Programmi\MAGAZZINO.mdb")
Set tbo = dtb.TableDefs("ARTICOLI") ' tabella da copiare
Set tbn = New TableDef
tbn.Name = "ARTICOLI_2008" ' nuova tabella
For i = 0 To tbo.Fields.Count - 1
Set fld = tbo.Fields(i)
tbn.Fields.Append (fld)
Next
dtb.TableDefs.Append tbn
End Sub
il problema e' che sulla riga "Set fld = tbo.Fields(i)" mi da' errore: "Tipo non
corrispondente".
Dove sbaglio?
Grazie
--------------------------------
www.prioregroup.com
> Fai prima a usare l'sql CREATE TABLE se già conosci la struttura della
> tabella, in ogni caso con il tuo codice copii solo la struttura ma non
> i dati.
Può comunque essere utile fare una procedura che copia la struttura di una
tabella, in modo che se aggiungi un campo sulla tabella Master, si
trasferisce automaticamente anche sulla tabella figlio.
Io ne ho una, ma è strettamente legata al tipo di database, andando a
leggere le tabelle di sistema per capire il tipo di dato. E come hai detto
tu crea la stringa SQL create table.
Comunque per i dati rimando a qualche post sotto:
subject: "Copiare contenuto di un recordset su una tabelle di un altro DB"
Raccomando di utilizzare la stringa SQL anche in questo caso.
>Fai prima a usare l'sql CREATE TABLE se già conosci la struttura della
>tabella,
Il fatto e' che la tabella ha una quarantina di campi... Comunque grazien del
suggerimento.
SELECT *
INTO TABELLA_NUOVA
FROM TABELLA_VECCHIA
WHERE FALSE
Alberto
--
Heinrich Zille: Ognuno crede che l'altro sia come se stesso,
dimenticando che al mondo esistono anche delle persone oneste.
>SELECT *
>INTO TABELLA_NUOVA
>FROM TABELLA_VECCHIA
>WHERE FALSE
Bingo!
E togliendo il "FALSE" mi ritrovo anche tutti i record, basta solo aggiungere la chiave
primaria e gli indici!
Muchas gracias
>Comunque per i dati rimando a qualche post sotto:
>subject: "Copiare contenuto di un recordset su una tabelle di un altro DB"
>Raccomando di utilizzare la stringa SQL anche in questo caso.
Letto e debitamente copiato. Grazie!