Crear una nueva Base de Datos en Visual Basic.

¿Cómo puedo crear en Visual Basic (utilizando DAO 3.0) una nueva BASE DE DATOS? (Si es que se puede). Me dijeron con la instrucción CREATE pero esta instrucción es más bien para crear una nueva TABLA en una BASE DE DATOS ya existente.
Un Saludo, y gracias de antemano.

1 respuesta

Respuesta
1
Este es el listado del procedimiento que se encargará de crear la base de datos. Por supuesto, deberás cambiar los nombres de los campos y tipos de datos a tu conveniencia, pero de esta forma, tienes algo por dónde empezar.
Private Sub CrearBase(sBase As String)
'Crear la base de datos indicada
'
Dim Db As Database
Dim Fd As Field
Dim Tb As New TableDef 'Definir una Tabla
Dim Idx As New Index 'Para crear un índice
Dim i As Integer
'Crear base de datos, idioma español y para la versión 2.0 del Jet de Access
'================================================================================
'Si vas a adaptar este programa para VB3, usa dbVersion11 en lugar de dbVersion20
'================================================================================
Set Db = CreateDatabase(sBase, dbLangSpanish, dbVersion20)
'
'La constante dbVersion20 no aparece en la ayuda, en su lugar lo hace la dbVersion25
'pero ésa no está creada!
'
'Primero la tabla de las tareas
Set Tb = Db.CreateTableDef("Tareas")
'Vamos a crear cada uno de los campos
Set Fd = Tb.CreateField("ID", dbLong)
'Ahora vamos a asignar las propiedades de contador, etc.
Fd.Attributes = dbAutoIncrField Or dbUpdatableField Or dbFixedField
Tb.Fields.Append Fd
'El resto de los campos
Set Fd = Tb.CreateField("Fecha", dbDate)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("Asunto", dbText, 255)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("Descripcion", dbMemo)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("FechaInicio", dbDate)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("FechaTermino", dbDate)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("Terminada", dbInteger)
Tb.Fields.Append Fd
'Creamos un índice con el ID
Idx.Name = "PrimaryKey"
Idx.Unique = True
Idx.Primary = True
Idx.Fields = "ID"
Tb.Indexes.Append Idx
'Añadimos la tabla a la base
Db. TableDefs. Append Tb
'
'Creamos la otra tabla: Anotaciones
Set Tb = Db.CreateTableDef("Anotaciones")
'El campo ID, es el contador, etc.
Set Fd = Tb.CreateField("ID", dbLong)
Fd.Attributes = dbAutoIncrField Or dbUpdatableField Or dbFixedField
Tb.Fields.Append Fd
'El resto de los campos
Set Fd = Tb.CreateField("Fecha", dbDate)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("Tema", dbText, 50)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("Asunto", dbText, 255)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("Medio", dbText, 255)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("Localizacion", dbText, 255)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("Descripcion", dbMemo)
Tb.Fields.Append Fd
Set Fd = Tb.CreateField("Detalle", dbLongBinary)
Tb.Fields.Append Fd
'Creamos un índice con el ID
Set Idx = Nothing 'Quitar la referencia anterior
Idx.Name = "PrimaryKey"
Idx.Unique = True
Idx.Primary = True
Idx.Fields = "ID"
Tb.Indexes.Append Idx
'Añadimos la segunda tabla a la base
Db. TableDefs. Append Tb
'Cerramos la base
Db. Close
MsgBox "Nueva base de datos " & sBase & " creada.", vbInformation
End Sub

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas