Buenas!
El problema es asi:
Tengo que comparar el esquema de dos bases de datos en Acces usando vb.net y devolver todos los datos/tablas/relaciones, etc que esten presentes en una y no en la otra.
En Access lei que se puede utilizar el documentador, que devuelve la estructura de una base de datos, pero no entiendo como puedo hacer para compararlo :\
Edit:Encontre esta forma de obtener el nombre de todas las tablas de la base, pero no encuentro todavia como puedo hacer para obtener los campos de cada una. Alguna sugerencia?
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conexion As OleDb.OleDbConnection
Dim strConexion As String
Dim tablas(0) As String
'-- Conexion con la base de datos modelo --
strConexion = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=C:\base.mdb;Jet OLEDB:Database Password=pass;"
conexion = New OleDb.OleDbConnection(strConexion)
conexion.Open()
'-- Almacena en un vector los nombres de todas las tablas --
Dim i As Integer = 0
Dim tabla As DataTable = conexion.GetSchema("TABLES")
For Each t As DataRow In tabla.Rows
Dim o As Object = Nothing
o = t.Item("TABLE_TYPE")
If (o.ToString.ToUpper = "TABLE") OrElse (o.ToString.ToUpper = "BASE_TABLE") Then
tablas(i) = t("TABLE_NAME").ToString
MessageBox.Show(i)
For Each c As DataColumn In tabla.Columns
MessageBox.Show(c.ColumnName)
Next
ReDim Preserve tablas(i + 1)
i += 1
End If
Next
MessageBox.Show(tablas(0))
conexion.Close()
End Sub
End Class
Un saludo y gracias.