Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/07/2008, 14:08
Fernando Real
 
Fecha de Ingreso: agosto-2004
Ubicación: D.F.
Mensajes: 22
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: creacion de bases de datos en visual basic

'Procedimiento para crear una tabla
Public Sub CrearTabla(pathBD As String, file_dbf As String)

' Declaro los objetos DAO a utilizar:
Dim db As DAO.Database
Dim tblDef As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index

' Abro la base de datos:
' (cambiar si el archivo está en otra ubicación)
Set db = OpenDatabase(pathBD)

' Creo la tabla
Set tblDef = db.CreateTableDef(file_dbf)

' Defino las columnas de la tabla:
' (para cada una, indico el nombre de la columna
' y el tipo de dato, y luego la agrego a la
' colección Fields)
Set fld = tblDef.CreateField("ContactID", dbLong)
fld.Attributes = fld.Attributes + dbAutoIncrField
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("SAMP_ID", dbText, 25)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("STUDY_ID", dbText, 50)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("SURVEY_ID", dbText, 25)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("TIDAL_STAGE", dbText, 25)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("STATION_ID", dbText, 12)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("GEAR_TYPE", dbText, 5)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("DEPTH_TOP", dbLong)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("DEPTH_BOT", dbLong)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("DEPTH_UNIT", dbText, 12)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("MATRIX", dbText, 3)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("FIELD_QC_CODE", dbText, 3)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("FIELD_PROCESS", dbText, 1)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("SOIL_TYPE", dbText, 5)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("SOIL_DESCR", dbText, 50)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("SOIL_COLOR", dbText, 12)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("SAMP_COLLECTOR", dbText, 3)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("DATE_RECORD_CREATED", dbDate)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("START_DATE", dbDate)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("START_TIME", dbDate)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("END_DATE", dbDate)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("END_TIME", dbDate)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("TIME_ZONE", dbText, 25)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("TRANSCRIBED_RECORD_YN", dbText, 1)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("Comments", dbText, 150)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("FLDMOD_QAQCACCEPT", dbText, 1)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("FLDMOD_QAQCREVBY", dbText, 3)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("FLDMOD_QAQCREVDATE", dbDate)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("DATA_STATUS", dbText, 5)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("LOGIN_ID", dbText, 10)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("FileName", dbText, 50)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("LOAD_DATE", dbDate)
tblDef.Fields.Append fld
Set fld = tblDef.CreateField("SCRIPT_NAME", dbText, 25)
tblDef.Fields.Append fld


' Defino un índice para la clave primaria:
Set idx = tblDef.CreateIndex("PK_Temas")

' Defino las dos columnas que componen la clave:
' (Fields1 + Fields2)
Set fld = idx.CreateField("SAMP_ID")
idx.Fields.Append fld
Set fld = idx.CreateField("STUDY_ID")
idx.Fields.Append fld

' Asigno este índice como clave primaria:
idx.Primary = True
tblDef.Indexes.Append idx

' Defino otro índice que sirva para
' buscar temas por nombre:
Set idx = tblDef.CreateIndex("IDX_Nombre_Tema")
Set fld = idx.CreateField("STATION_ID")
idx.Fields.Append fld
tblDef.Indexes.Append idx

' Incorporo la tabla nueva en la colección
' de tablas de la base de datos:
db.TableDefs.Append tblDef

db.Close

End Sub