Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6] - copia tabella di access

    vorrei copiare la struttura di una tabella access, compresi
    i campi chiave e i vari attributi; cercando su internet ho
    trovato il seguente codice:
    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
    [/CODE]

    il problema e' che sul rigo
    Set fld = tbo.Fields(i)
    da' l' errore "Tipo non corrispondente"

    chi mi sa dire come risolvere?

  2. #2

    [VB6] - copia tabella di access

    vi chiedo scusa, ma non riesco a scrivere il
    codice formattato come dovrebbe essere;
    capite la mia ignoranza; se mi dite come fare; grazie

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Basta che copi il tuo codice così com'è e lo incolli nella finestra dell'editor del messaggio, poi da qui lo selezioni e sopra l'editor premi il pulsantino CODE ed ottieni 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
    Riguardo all'errore non saprei come aiutarti, perchè usi il vecchissimo DAO di cui ricordo solo il nome...

    D'altra parte l'errore è chiaro, ma non conoscendo nulla della tua tabella si posso solo fare delle ipotesi (magari tutte sbagliate!):

    1) non vedo la dichiarazione della variabile 'i'

    2) il campo è di tipo Contatore e/o PrimaryKey e/o relazionato con altra tabella
    ma non so se questo crea problemi...


    Non è che hai MSAccess installato? Faresti prima a copiartela con quello.

    Sicuramente altri ti saranno di aiuto.


  4. #4

    [VB6] - copia tabella di access

    ti ringrazio Gibra

    comunque ho risolto utilizzando la query

    SELECT * INTO copia FROM originale where false

    adesso il problema e':
    come faccio a individuare il campo chiave della tabella
    originale in modo che possa impostarla sulla copia, visto
    che il SELECT non copia in automatico le informazioni
    sul campo chiave?
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.