Visual Basic - Ayuda !!!!!

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 86 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ayuda !!!!!

Publicado por Matias (136 intervenciones) el 28/04/2007 02:15:18
Buenas chicos como estan? mi consulta es la siguiente tengo una bsae de datos en acces 2000 y el tema es que cuando a partir de un procedimiento en un modulo creo una tabla para agragar a esta base de datos me da el eroor 91 'variable del tipo object o la variable de bloque with no esta establecida

quiero saber si alguien me puede ayudar que pasa y como lo soluciono gracias

Option Explicit
Public Sub creartabla()
'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:
Set db = OpenDatabase("C:\ejervb\cdteca1.mdb")

' creo la tabla temas
Set tbldef = db.CreateTableDef("Temas")
' defino las columnas de la tabla
' para cada una indico elnombre de la columna
' y el tipo de dato, y luego la agrego a la coleccion fields
Set fld = tbldef.CreateField("coddisco", dbLong)
tbldef.Fields.Append fld

Set fld = tbldef.CreateField("codtema", dbInteger)
tbldef.Fields.Append fld

Set fld = tbldef.CreateField("nombre", dbText, 50)
tbldef.Fields.Append fld

Set fld = tbldef.CreateField("autor", dbText, 50)
tbldef.Fields.Append fld

Set fld = tbldef.CreateField("duracion", dbText, 50)
tbldef.Fields.Append fld

' defino un indice para la clave primaria

' DEFINO LAS DOS COLUMNAS QUE COMPONEN LA CLAVE
'CODDISCO + CODTEMA

Set fld = idx.CreateField("CODDISCO")
idx.Fields.Append fld
Set fld = idx.CreateField("CODTEMA")
idx.Fields.Append fld

'defino otro indice que sriva para:
'buscar temas por nombre
Set idx = tbldef.CreateIndex("idx_nombre_tema")
Set fld = idx.CreateField("nombre")
idx.Fields.Append fld
tbldef.Indexes.Append idx


'incorporo la tabla nueva en la coleccio
' de tablas de base de la datos
db.TableDefs.Append tbldef





End Sub
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

RE:Ayuda !!!!!

Publicado por Carlos (9 intervenciones) el 28/04/2007 08:45:28
hola aca te paso un ejemplo despues manipulado como quieras, pero funciona, espero que te sirva

------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
Sub CrearTabla()
Dim db As Database, tdf As TableDef, fld As Field
Dim idx As Index, strRuta As String

strRuta = App.Path & "\bd1.mdb"
Set db = OpenDatabase(strRuta)
Set tdf = db.CreateTableDef("NuevoTableDef")

With tdf ' Crea y agrega los objetos Field nuevos para el objeto TableDef nuevo.
' El método CreateField establecerá un tamaño
' predeterminado para un objeto Field nuevo si no se especifica nada.
.Fields.Append .CreateField("CampoTexto", dbText)
.Fields.Append .CreateField("CampoEntero", dbInteger)
.Fields.Append .CreateField("CampoFecha", dbDate)

Set idx = .CreateIndex
With idx
.Name = "NuevoIndice"
.Fields.Append .CreateField("CampoTexto")
.Fields.Append .CreateField("CampoEntero")
End With
.Indexes.Append idx
End With
db.TableDefs.Append tdf

Set tdf = Nothing: Set idx = Nothing
db.Close: Set db = Nothing
End Sub

------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------

suerte

saludos!!!
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