Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fare una copia di una Tabella di Access con VB6

808 views
Skip to first unread message

Beberibe

unread,
Feb 12, 2009, 5:24:08 AM2/12/09
to
Salve, con VB6 devo copiare una tabella all'interno di un database Access, ovviamente
cambiando il nome. Cercando su Google ho trovato questo codice:


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

prioregroup.com

unread,
Feb 12, 2009, 12:44:43 PM2/12/09
to
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.


--------------------------------
www.prioregroup.com

Andrea [Work]

unread,
Feb 13, 2009, 3:45:02 AM2/13/09
to
Il Thu, 12 Feb 2009 09:44:43 -0800 (PST), prioregroup.com ha scritto:

> 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.

Beberibe

unread,
Feb 13, 2009, 3:45:20 AM2/13/09
to
On Thu, 12 Feb 2009 09:44:43 -0800 (PST), "prioregroup.com" <danilo...@gmail.com>
wrote:

>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.


Albe V°

unread,
Feb 13, 2009, 4:10:09 AM2/13/09
to
Beberibe ha detto questo venerdì :

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.


Beberibe

unread,
Feb 13, 2009, 10:19:51 AM2/13/09
to
On Fri, 13 Feb 2009 10:10:09 +0100, Albe V° <vaccar...@hotmail.com> wrote:

>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


Beberibe

unread,
Feb 13, 2009, 10:24:15 AM2/13/09
to
On Fri, 13 Feb 2009 08:45:02 GMT, "Andrea [Work]" <andrea.isw...@gmail.invalid>
wrote:

>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!


0 new messages