Visual Basic - Comprobar si existe una tabla en base de datos...

Life is soft - evento anual de software empresarial
 
Vista:

Comprobar si existe una tabla en base de datos...

Publicado por Sergio (6 intervenciones) el 08/11/2002 07:20:46
Hola y gracias de antemano, mi consulta es sobre como se puede comprobar desde visual basic mediante código si existe una tabla en una base de datos (access) y acceder a ella y, si no existe, como crearla con sus diversos campos.

Muchas gracias de nuevo, un saludo.
Sergio.
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:Comprobar si existe una tabla en base de datos.

Publicado por Joselon (3 intervenciones) el 08/11/2002 13:47:15
SI UTILIZAS DAO ESTA ES LA FORMA

Dim bd As Database
Dim tb As TableDef
Dim c As Field

COMPROBAR QUE EXISTE
Set bd = Workspaces(0).OpenDatabase("nombre_base_datos.mdb")

For Each tb In bd.TableDefs
If tb.Name = "nombre_de_la_tabla" Then
' Existe la tabla
Exit For
End If
Next

CREAR TABLA
Set tb = bd.CreateTableDef("nombre_de_la_tabla")
Set c = tb.CreateField("ID", dbLong, 4)
c.Attributes = 1
tb.Fields.Append c

Set c = tb.CreateField("Nombre", dbText, 50)
c.Attributes = 2
c.AllowZeroLength = True
tb.Fields.Append c
bd.TableDefs.Append tb

espero que te sirva
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

RE:Comprobar si existe una tabla en base de datos.

Publicado por bla (230 intervenciones) el 09/11/2002 15:53:52
También desde ADO:
Sea 'con' la conexión ADO que utilizas, entonces:

Dim rst As New ADODB.Recordset
Dim sql As String
sql = "select count(*) as C from MSysObjects where type=1 and ucase(name)='TABLA1'"
rst.Open sql, con
If rst.Fields("C") = 0 Then
' La tabla no existe, la creamos
sql = "create table tabla1(campo1 string(10), campo2 integer)"
con.Execute sql
End If
rst.Close
Set rst = Nothing

Si quieres probar desde un módulo de access puedes usar la conexión del proyecto:
Set con = CurrentProject.Connection
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

RE:Comprobar si existe una tabla en base de datos.

Publicado por bla (230 intervenciones) el 09/11/2002 16:22:09
Si no te ha gustado usar MSysObjects, podemos usar los esquemas de ADO, que valen para cualquier tipo de base de datos (el create table sigue siendo sólo para access):
Dim rst As ADODB.Recordset
Dim sql As String
Set con = CurrentProject.Connection ' sustitúyelo por tu conexión
Set rst = con.OpenSchema(adSchemaTables, Array(Empty, Empty, "tabla1", Empty))
If rst.EOF Then
' La tabla no existe, la creamos
sql = "create table tabla1(campo1 string(10), campo3 yesno)"
con.Execute sql
End If
rst.Close
Set rst = Nothing
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