border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 03-11-2006, 00:09:23
Un Nuevo Amigo
 
Registrado: nov 2006
Posts: 1
aredhel_valo Valoración +2
Predeterminado Se puede Abrir cualquier tabla de una base de datos?

Hola, mi nombre es Giannina y soy nueva en el foro y estoy desarrollando una aplicación en VB.Net 2005. La idea es contar con una base de datos que cuente con varias tablas. Las tablas se llaman EP_codigo (la palabra codigo se reemplaza por el codigo de un determinado conjunto de datos, por ejemplo EP_Temuco, EP_Iquique, EP_SP051SA, etc) La base de datos ACCESS que tengo en este momento contiene 10 tablas con nombres similares a los ya mencionados. La aplicación que he desarrollado hasta el momento me permite conectarme a cualquier base de datos pero solo a una determinada tabla, que es sentenciada dentro del código, por lo que siempre me carga la misma tabla en el datagrid. Si alguno de ustedes sabe como el usuario puede indicar la tabla que desea abrir, o que de alguna manera se muestre todas las tablas que posee la base de datos y poder seleccionar la que se desea cargar en el datagridview me sería de gran ayuda. De antemano muchas gracias. Adjunto el codigo de la aplicación que he desarrollado hasta el momento:

Imports System.data
Imports System.Data.OleDb
Imports System.IO

Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim drives() As String
drives = System.Environment.GetLogicalDrives()
CB_Drivers.Items.AddRange(drives)
End Sub
Private Sub CB_Drivers_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_Drivers.SelectedIndexChanged
Try
Dim combo As New DirectoryInfo(Me.CB_Drivers.Text)
Dim carpetas() As DirectoryInfo
carpetas = combo.GetDirectories()
TV_Directorios.Nodes.Clear()
Dim carpetas2 As DirectoryInfo
Dim nodo As TreeNode

LV_BaseDatos.Items.Clear()

For Each carpetas2 In carpetas
nodo = New TreeNode(carpetas2.FullName, 0, 1)
TV_Directorios.Nodes.Add(nodo)
Next
Catch pollo As Exception
MessageBox.Show("Mensaje de error: " & pollo.Message, "Error al leer la unidad " & CB_Drivers.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
CB_Drivers.Text = "C:\"
End Try
End Sub
Private Sub TV_Directorios_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TV_Directorios.AfterSelect
Try
If Not e.Node.IsExpanded Then
Dim carpetas3 As DirectoryInfo
carpetas3 = New DirectoryInfo(e.Node.FullPath)
Dim carpetas4() As DirectoryInfo
carpetas4 = carpetas3.GetDirectories()

Dim subcarpetas As DirectoryInfo
Dim nodo As TreeNode
For Each subcarpetas In carpetas4
nodo = New TreeNode(subcarpetas.Name, 0, 1)
e.Node.Nodes.Add(nodo)
Next
Dim archivos() As FileInfo
archivos = carpetas3.GetFiles()

LV_BaseDatos.Items.Clear()

Dim BaseDatos As FileInfo
For Each BaseDatos In archivos
Select Case BaseDatos.Extension
Case ".mdb"
LV_BaseDatos.Items.Add(BaseDatos.Name, 1)
End Select
Next
End If
Catch pollo As Exception
MessageBox.Show("Mensaje de error: " & pollo.Message, "Error al leer bases de datos ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

End Sub
Private Sub LV_BaseDatos_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LV_BaseDatos.SelectedIndexChanged
Dim dbConnection As OleDbConnection
Dim NombreTabla As String = TV_Directorios.SelectedNode.FullPath & "\" & LV_BaseDatos.SelectedItems(0).Text
Dim CadenaConexion As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & NombreTabla
Dim CadenaSelect As String = "SELECT * from EP_Temuco"
'aqui le indico que tabla debe abrir, y lo que quiero modificar es que me seleccione datos de cualquier tabla
'no necesariamente de EP_Temuco, que la tabla la pueda especificar o seleccionar el usuario

dbConnection = New OleDbConnection(CadenaConexion)
dbConnection.Open()
Dim dbDataSet = New DataSet
Dim dbDataAdapter = New OleDbDataAdapter(CadenaSelect, dbConnection)
dbDataAdapter.Fill(dbDataSet, NombreTabla)
DataGridView1.DataSource = dbDataSet.Tables(0).DefaultView
End Sub


End Class


muchas gracias, chaus y que estén bien
Responder Con Cita
  #2 (permalink)  
Antiguo 04-11-2006, 18:36:33
Avatar de Korku
Usuario VIP del Foro
 
Registrado: feb 2005
Ubicación: España
Posts: 632
Korku Aun no valorado
Contactar con Korku a través de ICQ Enviar un mensaje a través de AIM a Korku Contactar con Korku a través de MSN Contactar con Korku a través de Yahoo Send a message via Skype™ to Korku
Predeterminado

Hola,

A ver, en Visual Basic 6 funciona lo siguiente (me supongo que tendrás que adaptar en VB.NET...)

Son tres ejemplos

1º EJEMPLO

Código:
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
With cn
.ConnectionString = "..."
.Open
With .OpenSchema(adSchemaTables)
While Not .EOF
MsgBox !TABLE_NAME
.MoveNext
Wend
.Close
End With
.Close
End With
Set cn = Nothing
Verás que te aparecen también las vistas y las tablas de sistema, pero si no te interesan las puedes ignorar de la siguiente manera:

Código:
If !TABLE_TYPE <> "SYSTEM TABLE" And _
!TABLE_TYPE <> "SYSTEM VIEW" And _
!TABLE_TYPE <> "VIEW" Then
MsgBox !TABLE_NAME
End If
2º EJEMPLO

Código:
Private Sub Form_Load()

Dim con As New ADODB.Connection
Dim rec As New ADODB.Recordset

Dim s_cad As String

s_cad = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\tubasededatos.mdb;Persist Security Info=False"

con.Open s_cad

Set rec = con.OpenSchema(adSchemaTables)

While Not rec.EOF

List1.AddItem rec!TABLE_NAME

rec.MoveNext
Wend

rec.Close
con.Close
End Sub
3º EJEMPLO

Código:
Set rst_tmp = conexion.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "TABLE"))

While Not rst_tmp.EOF
cboTablas.AddItem rst_tmp!TABLE_NAME
rst_tmp.MoveNext
Wend

rst_tmp.Close

conexion = objeto conexión
Espero que te sirva de algo


Un saludo
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
error al querer abrir cualquier tabla mariana ramirez sql 2000 5 16-10-2007 20:55:17
Como se puede grabar registros en una base de datos Access Toniato Visual Studio 2008 - Orcas 1 07-05-2007 23:17:49
abrir archivos con cualquier extension roxiii Visual Basic 6.00 2 04-12-2004 01:52:18
Problema al abrir una base de datos en Crystal Report AshleyJC Crystal Reports 1 17-09-2004 01:00:00
abrir una base de datos desde excel Tarcos VBA (Excel, Word, Outlook, Access) 1 17-09-2004 01:00:00


La franja horaria es GMT. Ahora son las 21:13:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right