Creación de tablas en access e incluir nuevos campos

Debo generar una consulta de creación para crear una tabla en access con una base ya existente, pero adicionalmente, debo incluir 6 campos nuevos (no están en la base) dentro de esa misma consulta, cada uno con su tipo de dato (texto, numérico, decimal, etc). Esos campos adicionales no se cómo se deban incluir.

Respuesta
1

No es mejor primero crear la tabla y anexar los datos de la consulta. Seria conveniente subiera una imagen y así le puedo dar una respuesta más exacta

Si es para crear una tabla le dejo estas funciones que utilizo en mis programas:

FORMULARIO

RESULTADO 

Observe la tabla tbldemo1 aparece en la lista de objetos Tablas.

TABLA EN DISEÑO 

CODIGO DEL BOTÓN CREAR TABLA

Private Sub btnCreaTabla_Click()
 If IsNull(Me.ctlTabla) Then
   MsgBox "Se requiere el nombre de la tabla", vbInformation, "Cuidado ..."
   Me.ctlTabla.SetFocus
   Exit Sub
 End If
 Call crea_tabla_SQL(Trim(Me.ctlTabla))
End Sub

Ingrese el código siguiente en un módulo de VBA.

Public Function existetabla(tblName As String) As Boolean
' Función para saber si existe una tabla en la base de datos actual
' Devuelve True Si existe o False sino existe
       If DCount("[Name]", "MSysObjects", "[Name] = '" & tblName & "'") = 1 Then
           existetabla = True
       End If
End Function
Public Function crea_tabla_SQL(nombre_tabla As String)
'Función para crear una tabla con SQL
'Curso Access
'Elaborado por: Eduardo Pérez Fernández
'Parámetros: nombre de la tabla a crear, ejemplo, tblalumnos
'Requiere de la función existetabla(<<nombre_tabla>>)
On Error GoTo hay_error
Dim strSQl As String
'Verifico si la tabla existe con la funcion existetabla()
 If existetabla(nombre_tabla) Then
 ' Pregunto si la elemino
     If MsgBox("La tabla ya existe." & _
    "¿Desea eliminarla?", vbYesNo + vbDefaultButton2 + vbQuestion, "CURSO ACCESS") = vbYes Then
        DoCmd.SetWarnings (False)
       ' DoCmd. DeleteObject acTable, nombre_tabla 'También se puede eliminar con esta línea por ser base de datos Jet (Access)
        DoCmd.RunSQL "DROP TABLE " & nombre_tabla  ' Elimino la tabla con la instruccion sql DROP TABLE
     Else
     Exit Function
   End If
 End If
 strSQl = "CREATE TABLE " & nombre_tabla & "(" & vbCrLf
 strSQl = strSQl & "idsigue AUTOINCREMENT PRIMARY KEY," & vbCrLf
 strSQl = strSQl & "nombre TEXT(30) NOT NULL, apellidos TEXT(60) NOT NULL, fecha_nac DATE NOT NULL," & vbCrLf
 strSQl = strSQl & "cedula TEXT(20) NOT NULL UNIQUE, sueldo DOUBLE NOT NULL);"
 DoCmd.RunSQL strSQl
 If Err.Number = 0 Then
    MsgBox "Tabla creada satisfactoriamente !!", vbInformation, "CREANDO TABLA"
 End If
hay_error_exit:
 Exit Function
hay_error:
  MsgBox "Error : " & Err.Number & " " & Err.Description, vbCritical, "CREANDO TABLA"
  Resume hay_error_exit
End Function

Para crear su tabla cambie los campos en el código SQL CREATE TABLE. Esto se puede automatizar más por ejemplo, pasando los campo como parámetros.

¡Gracias! 

Consuelo igualmente vivo en Colombia si quiere contácteme a mi correo [email protected] tengo material para regalarle.

1 respuesta más de otro experto

Respuesta
1

No sé si lo he entendido. Quieres crear una tabla poniendo tu los campos que quieras. Si es eso, por ejemplo, en un formulario ( aunque la instrucción se puede poner en cualquier evento)

Si pulso el botón

Ya me la ha creado. El código del botón es

Private Sub Comando39_Click()
DoCmd.RunSQL "CREATE TABLE Consuelo ([Idcliente] COUNTER CONSTRAINT Idcliente PRIMARY KEY, [Nombre] TEXT(25),[Apellidos] TEXT(30), [FechaNacimiento] DATETIME,[Telefono] text(12))"
End Sub

Puedes poner los campos que quieras.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas