SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: MindEye en Miércoles 5 de Marzo de 2003, 01:59
-
- Hola, me gutaría saber, como puedo averiguar, cuantas tablas, y el nombre de cada una, esta compuesta una base de datos, la que elijas en un command dialogo, para luego, intentar saber cuantos campos tiene cada tabla, y a si hasta conseguir toda la informacion necesaria, para poder reconstruir una nueva, que sea igual que la que intentamos abrir.
- Gracias
-
Añade las siguientes referencias al proyecto:
Microsoft ActiveX Data Objects 2.6 Library
Microsoft ADO Ext. 2.6 for DLL and Security
Realiza la siguiente función que recibirá como parámetro la cadena d conexión de la base de datos que quieres abrir y devolverá los nombres de las tablas concatendos por comas (sólo devolverá los nombres de las tablas de usuario y las vistas, las de sistema no. En el caso de querer las del sistema también quitar la condición)
Function obtener_tablas (conexion as string) As string
Dim BaseDatos As New ADOX.Catalog, Tablas As ADOX.table
Dim cnnBaseDatos As New ADODB.Connection
cnnBaseDatos.Open conexion
Set BaseDatos.ActiveConnection = cnnBaseDatos
obtener_tablas = ""
For Each Tablas In BaseDatos.Tables
If Tablas.Type = "TABLE" Then
If obtener_tablas <> "" Then
obtener_tablas = obtener_tablas & "," & Tablas.Name
Else
obtener_tablas = Tablas.Name
End If
Else
If Tablas.Type = "VIEW" Then
If obtener_tablas <> "" Then
obtener_tablas = obtener_tablas & "," & Tablas.Name
Else
obtener_tablas = Tablas.Name
End If
End If
End If
Next
cnnBaseDatos.close
Set BaseDatos = Nothing
Set BaseDatos = Nothing
End Function
Espero que te sirva.
Un saludo,
Roberto García
-
:alien:
Bueno, sinla base de datos la has montado sobre Oracle o algo similar te recomiendo que hagas el siguiente Query
select count(table_name) from cat;
no estoy seguro si funciona o no en ms access,
pero seguro que si utilizas Oracle o alguna base de datos como sql server si te funciona ya sea con DAO o con ADO.
Para saber las tablas y su composicion:
select * from cat;
:lightsabre: