Principales respuestas
MOSTRAR NOMBRES DE TABLAS ACCESS EN COMBOBOX O LIST VIEW

Pregunta
-
Hola Muy Buena Tarde tengan todos.
Espero puedan apoyarme con el código para mostrar en un combobox o listview (u otra herramienta) las tablas que contienen mi base de datos, estas tablas se crean y se llenan en tiempo de ejecución en un formulario, despues, en otro formulario me gustaria mostrar las tablas y poderlas seleccionar para mostrar sus datos en uno o mas grids.
vb2008
datos : oledb
Espero haya sido claro, quedo muy agradecido con ustedes.
roberto
Respuestas
-
Hola buena tarde, ya encontre un codigo que me agregar las tablas existentes en mi base de datos, la comparto esperando les sea de utilidad a las personas que pudieran tener el mismo problema.
Dim SchemaTable As DataTable
'Connect to the database
Try
ListBox1.Items.Clear()
con.Open()
'Get table and view names
SchemaTable = con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, Nothing})
Dim int As Integer
For int = 0 To SchemaTable.Rows.Count - 1
If SchemaTable.Rows(int)!TABLE_TYPE.ToString = "TABLE" Then
'Add items to list box
ListBox1.Items.Add(SchemaTable.Rows(int)!TABLE_NAME.ToString())
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message.ToString(), "Data Load Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
con.Close()
roberto
- Marcado como respuesta Laura CeglzModerator jueves, 22 de septiembre de 2016 22:56
Todas las respuestas
-
Puedes hacer uso del método GetSchema():
Using cn As New OleDbConnection("Cadena de conexión") cn.Open() For Each row As DataRow In cn.GetSchema("TABLES").Rows cboTables.Items.Add(row("TABLE_NAME")) Next End Using
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios. -
wiliam un saludo antes que nada.
Gracias por la atencion, sabes que me indica error en cboTables , trate de poner el nombre del combo box y sigue el error, aprovechando la oportunidad, tambien me salta la duda en los espacios ("TABLES") Y ("TABLES_NAME"), estas declaraciones son comandos? o tengo que escribir el nombre de mis tablas?.
Gracias, Saludos.
roberto
-
Hola buena tarde, ya encontre un codigo que me agregar las tablas existentes en mi base de datos, la comparto esperando les sea de utilidad a las personas que pudieran tener el mismo problema.
Dim SchemaTable As DataTable
'Connect to the database
Try
ListBox1.Items.Clear()
con.Open()
'Get table and view names
SchemaTable = con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, Nothing})
Dim int As Integer
For int = 0 To SchemaTable.Rows.Count - 1
If SchemaTable.Rows(int)!TABLE_TYPE.ToString = "TABLE" Then
'Add items to list box
ListBox1.Items.Add(SchemaTable.Rows(int)!TABLE_NAME.ToString())
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message.ToString(), "Data Load Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
con.Close()
roberto
- Marcado como respuesta Laura CeglzModerator jueves, 22 de septiembre de 2016 22:56
-
Es raro, asumía que no deberías tener problemas. 'TABLE_NAME' es el nombre de la columna que recuperas y 'TABLES' el tipo de objeto. Acomodando tu código:
Using cn As New OleDbConnection("Cadena de conexión") cn.Open() ListBox1.Items.Clear() For Each row As DataRow In cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, Nothing}).Rows If row!TABLE_TYPE.ToString = "TABLE" Then ListBox1.Items.Add(row("TABLE_NAME")) End If Next End Using
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.