Access - Copiar estructura tabla(codigo)

 
Vista:

Copiar estructura tabla(codigo)

Publicado por Eomer (1 intervención) el 22/05/2007 16:37:17
Hola a tod@s;
No se si se puede copiar la estructura de una tabla mediante codigo, pero necesito que tambien se copie la clave primaria

Gracias y salduos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Copiar la estructura de una tabla con clave primaria

Publicado por Alejandro (4142 intervenciones) el 10/08/2023 20:29:52
Puedes utilizar código VBA en Microsoft Access para copiar la estructura de una tabla, incluida la clave primaria. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Sub CopiarEstructuraTabla()
    Dim db As Database
    Dim tblDef As TableDef
    Dim newTblDef As TableDef
    Dim fld As Field
    Dim idx As Index
    Dim newIdx As Index
 
    ' Nombre de la tabla original y nueva
    Dim nombreTablaOriginal As String
    Dim nombreNuevaTabla As String
    nombreTablaOriginal = "NombreTablaOriginal"
    nombreNuevaTabla = "NombreNuevaTabla"
 
    ' Abrir la base de datos
    Set db = CurrentDb()
 
    ' Obtener la definición de la tabla original
    Set tblDef = db.TableDefs(nombreTablaOriginal)
 
    ' Crear una nueva tabla con la misma estructura
    Set newTblDef = db.CreateTableDef(nombreNuevaTabla)
    For Each fld In tblDef.Fields
        ' Agregar los campos a la nueva tabla
        newTblDef.Fields.Append newTblDef.CreateField(fld.Name, fld.Type, fld.Size)
    Next fld
 
    ' Agregar la nueva tabla a la base de datos
    db.TableDefs.Append newTblDef
 
    ' Recorrer los índices de la tabla original y copiarlos
    For Each idx In tblDef.Indexes
        ' Crear un nuevo índice en la nueva tabla
        Set newIdx = newTblDef.CreateIndex(idx.Name)
        newIdx.Primary = idx.Primary
        newIdx.Unique = idx.Unique
        For Each fld In idx.Fields
            newIdx.Fields.Append newIdx.CreateField(fld.Name)
        Next fld
        ' Agregar el nuevo índice a la nueva tabla
        newTblDef.Indexes.Append newIdx
    Next idx
 
    ' Actualizar y guardar la nueva tabla
    db.TableDefs.Refresh
    db.TableDefs(nombreNuevaTabla).Refresh
 
    ' Liberar recursos
    Set newIdx = Nothing
    Set newTblDef = Nothing
    Set tblDef = Nothing
    Set db = Nothing
 
    MsgBox "La estructura de la tabla se ha copiado correctamente.", vbInformation
End Sub

Asegúrate de reemplazar "NombreTablaOriginal" y "NombreNuevaTabla" con los nombres apropiados de la tabla original y la nueva tabla que deseas crear. Este código copiará la estructura de la tabla original, incluida la clave primaria y los índices, en una nueva tabla.

Guarda este código en un módulo de VBA en tu base de datos de Access y luego puedes ejecutarlo desde la ventana de Visual Basic for Applications (VBA). Recuerda hacer una copia de seguridad de tu base de datos antes de realizar cambios importantes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar