elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Leer secuencialmente dos tablas de un archivo creado en vb.net 2010
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Leer secuencialmente dos tablas de un archivo creado en vb.net 2010  (Leído 2,623 veces)
arturoro

Desconectado Desconectado

Mensajes: 31


Ver Perfil
Leer secuencialmente dos tablas de un archivo creado en vb.net 2010
« en: 2 Diciembre 2015, 07:28 am »

Hola a todos y buenas tardes o noches: :laugh:

Deseo que me puedan orientar acerca de como puedo hacerle para que me lea en una tabla llamada tabla1 que esta en un archivo creado en access 2010 llamado Database1.accdb, el primer registro del campo llamado L1, que tome el valor y luego se vaya a la otra tabla llamada tabla2 para que tome el valor del primer registro del campo llamado L2, despues comparo esos dos valores si son iguales, que mande msg de registro encontrado, en caso contrario, que siga leyendo el siguiente registro de la tabla2, y que siga comparando, si llega al final del archivo de la tabla2, que se regrese a la tabla1 y se vaya al segundo registro y otra vez repite el proceso asi sucesivamente hasta el fin de la tabla1 (ya que el maestro es la tabla1 y el segundo la tabla2), y si no hay igualdad, que mande mensaje de que no hubo igualdad.

Perdonen mi ignorancia, ya que habia hecho por lo menos el acceso en visual basic 6, y el maestro nos la cambio a visual basic .net 2010 >:D  y la verdad, me manda muchos errores, estuve viendo que ya no es igual de vb6 a vb.net 2010.

Espero me puedan ayudar.

SALUDOS!!!  ;-)


En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Leer secuencialmente dos tablas de un archivo creado en vb.net 2010
« Respuesta #1 en: 2 Diciembre 2015, 19:33 pm »

Hola

Antes de nada comentarte que no dispongo de Office 2010 ni archivos *.accdb. Pero he realizado este programa para leer archivos *.mdb y  supongo que el programa será capaz de leer los primeros. Ya me dirás.

Se trata de una función llamada LeerDatosTabla. Esta función devuelve un valor de un lugar concreto de una tabla de una base de datos. Se llama de la siguiente manera:


Código:
LeerDatosTabla("E:\Database1.accdb", NOMBRE DE TABLA, FILA, COLUMNA, NúmeroDeFilas, NúmeroDeColumnas)

Donde NúmeroDeFilas y  NúmeroDeColumnas devuelven el número de filas y columnas de la tabla. Es necesario que declares estas variables como 'integer' antes de llamar a la función como se muestra en el siguiente ejemplo. Claro que si no lo quieres puedes modificar el código.Tu mismo.


EJEMPLO:
Código
  1.  
  2.  
  3. Public Class Form1
  4.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5.    End Sub
  6.  
  7.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  8.        Dim NúmeroDeFilas As Integer = Nothing          '//Variable para introducir el número de filas de la tabla
  9.        Dim NúmeroDeColumnas As Integer = Nothing       '//Variable para introducir el número de columnas de la tabla
  10.        Try
  11.            Dim Valor1 As String = LeerDatosTabla("C:\Carpeta\Database1.accdb", "L1", 1, 0, NúmeroDeFilas, NúmeroDeColumnas) '//Devuelve el valor1
  12.            Dim Valor2 As String = LeerDatosTabla("C:\Carpeta\Database1.accdb", "L2", 1, 0, NúmeroDeFilas, NúmeroDeColumnas) '//Devuelve el valor2
  13.  
  14.            If Valor1.Length > 0 And Valor2.Length > 0 Then '//Comprueba que Valor1 y Valor2 contienen alguna cadena
  15.                If Valor1.Equals(Valor2) Then 'compara
  16.                    MessageBox.Show("Hay coincidencia", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information)
  17.                End If
  18.            End If
  19.  
  20.            'Label1.text = NúmeroDeFilas  
  21.            'Label2.text = NúmeroDeFilas
  22.        Catch ex As Exception
  23.            MessageBox.Show(ex.Message)
  24.        End Try
  25.    End Sub
  26.  
  27. End Class
  28. #Region "Lectura de base de datos"
  29. Module modGetDateTable
  30.    ''' <summary>
  31.    ''' OBTIENE DATOS DE UNA BASE DE DATOS ACCESS
  32.    ''' </summary>
  33.    ''' <param name="PathFileMDB"></param>
  34.    ''' <param name="NombreTabla"></param>
  35.    ''' <param name="nFila"></param>
  36.    ''' <param name="nColumna"></param>
  37.    ''' <param name="file_Count"></param>
  38.    ''' <param name="Column_count"></param>
  39.    ''' <returns></returns>
  40.    ''' <remarks></remarks>
  41.    Public Function LeerDatosTabla(ByVal PathFileMDB As String, _
  42.                                   ByVal NombreTabla As String, _
  43.                                   ByVal nFila As Integer, _
  44.                                   ByVal nColumna As Integer, _
  45.                                   ByRef file_Count As Integer, _
  46.                                   ByRef Column_count As Integer) As String
  47.        Dim query As String = "SELECT * FROM " & NombreTabla
  48.        Dim MDBConnString_ As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathFileMDB & ";"
  49.        Dim DataSet_ As New DataSet       '//Caché de memoria interno de datos
  50.        Dim Connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(MDBConnString_)       '//Conexión con la base de datos
  51.        Dim Resultado As String = Nothing
  52.        Try
  53.            Connection.Open()                                                                           '//Abre la clase de datos
  54.            Dim cmd As New System.Data.OleDb.OleDbCommand(query, Connection)                             '//Instrucción SQL
  55.            Dim DataAdapter As New System.Data.OleDb.OleDbDataAdapter(cmd)
  56.            DataAdapter.Fill(DataSet_, NombreTabla)                                                     '//Adapta la tabla (fila, columnas) al DataSet
  57.            Connection.Close()                                                                          '//Cierra conexión
  58.  
  59.            Dim Tabla As DataTable = DataSet_.Tables(NombreTabla)                                       'Crea una tabla e introduce los datos del DataSet
  60.            Dim NumRows As Integer = Tabla.Rows.Count                                                   '//Obtiene el número de filas de la tabla
  61.  
  62.            file_Count = NumRows                                                                        '//Devuelve Número de filas de la tabla
  63.            Column_count = Tabla.Columns.Count
  64.            Resultado = Tabla.Rows(nFila).Item(nColumna)
  65.        Catch ex As Exception
  66.            MessageBox.Show(ex.Message)
  67.        End Try
  68.        Return Resultado
  69.    End Function
  70. End Module
  71. #End Region



[EJEMPLO SIMPLE]
A veces con las funciones metidas en un módulo y  con el Byval y el ByRef pueden ser confusas. Aquí te dejo un ejemplo sencillo de lectura dentro de un botón, para que lo veas más claro:

- Necesitas meter un ListBox y un Button

Código
  1.    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2.  
  3.        Dim PathMDB As String = "C:\Carpeta\Database1.accdb"                                            '//Nombre de la tabla
  4.        Dim NombreTabla As String = "Direcciones"                                       '//La tabla se llama "Direcciones"
  5.  
  6.        Dim query As String = "SELECT * FROM " & NombreTabla
  7.        Dim MDBConnString_ As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathMDB & ";"
  8.        Dim DataSet_ As New DataSet                                                    '//Caché de memoria interno de datos
  9.        Dim Connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(MDBConnString_)        '//Conexión con la base de datos
  10.        Connection.Open()                                                              '//Abre la clase de datos
  11.        Dim cmd As New System.Data.OleDb.OleDbCommand(query, Connection)                                 '//Instrucción SQL
  12.        Dim DataAdapter As New System.Data.OleDb.OleDbDataAdapter(cmd)
  13.        DataAdapter.Fill(DataSet_, NombreTabla)                                        '//Adapta la tabla (fila, columnas) al DataSet
  14.        Connection.Close()                                                             '//Cierra conexión
  15.  
  16.        Dim Tabla As DataTable = DataSet_.Tables(NombreTabla)                           '//Crea una tabla e introduce los datos del DataSet
  17.        Dim NumRows As Integer = Tabla.Rows.Count                                       '//Obtiene el número de filas de la tabla
  18.        For Each Filas As DataRow In Tabla.Rows
  19.            Dim Columna As Integer = 0                                                  '//La primera columna de la tabla
  20.            ListBox1.Items.Add(Filas.Item(Columna))                                     '//Devuelve las filas de la primera columna
  21.        Next
  22.  
  23.        '//Forma selectiva
  24.        'Label1.Text = Tabla.Rows(FILA).Item(COLUMNA)
  25.    End Sub

 Lo que hace este código es meter todos los elementos de la primera fila de una tabla en un ListBox
 
[LECTURA DE ARCHIVOS XLS O XLSX]
Si quieres leer archivos XLS (Excel) solo tienes que reemplazar:
Código
  1. Dim MDBConnString_ As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathFileMDB & ";"

por esta otra línea:

Código
  1. Dim MDBConnString_ As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathFileMDB & ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'"

Y como nombre de tabla:

Código
  1. [Hoja1$]

Ejemplo:
Código
  1.   Dim NúmeroDeFilas As Integer = Nothing          '//Variable para introducir el número de filas de la tabla
  2.        Dim NúmeroDeColumnas As Integer = Nothing       '//Variable para introducir el número de columnas de la tabla
  3.        Dim Valor1 As String = LeerDatosTabla("C:\Carpeta\Libro1.xls", "[Hoja1$]", 1, 0, NúmeroDeFilas, NúmeroDeColumnas) '//Devuelve el valor1
  4.        Me.Text = Valor1

Sldos


« Última modificación: 2 Diciembre 2015, 19:48 pm por Lekim » En línea

arturoro

Desconectado Desconectado

Mensajes: 31


Ver Perfil
Re: Leer secuencialmente dos tablas de un archivo creado en vb.net 2010
« Respuesta #2 en: 3 Diciembre 2015, 06:40 am »

Muchas Gracias Lekim, en verdad me ayudaste mucho en vb.net 2010  ;-) :

Te comento que solo le hice pequeñas modificaciones, pero, hize pruebas y funciona muy bien, te paso completo el programa, esta en vb.net 2010 y lo posteo para que lo veas y si a alguien le pudiese servir.

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Mydir, Myrep As String
        Dim Reg As Integer = 0
        Mydir = CurDir() + "\" + "Datos.accdb"
        Myrep = CurDir() + "\"
        Dim NombreTabla1 As String = "L1"                                       '//La tabla se llama "L1"
        Dim NombreTabla2 As String = "L2"

        Dim query As String = "SELECT * FROM " & NombreTabla1
        Dim query2 As String = "SELECT * FROM " & NombreTabla2

        Dim MDBConnString_ As String = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" & Mydir & ";"  En esta parte solo la modifique para que la reconociera access 2010, ya que me daba error de acceso con lo que me pusiste
        Dim DataSet_ As New DataSet                                             '//Caché de memoria interno de datos
        Dim Connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(MDBConnString_)        '//Conexión con la base de datos
        Connection.Open()                                                     '//Abre la clase de datos

        Dim cmd As New System.Data.OleDb.OleDbCommand(query, Connection)      '//Instrucción SQL
        Dim cmd2 As New System.Data.OleDb.OleDbCommand(query2, Connection)

        Dim DataAdapter As New System.Data.OleDb.OleDbDataAdapter(cmd)
        Dim DataAdapter2 As New System.Data.OleDb.OleDbDataAdapter(cmd2)

        DataAdapter.Fill(DataSet_, NombreTabla1)                               '//Adapta la tabla (fila, columnas) al DataSet
        DataAdapter2.Fill(DataSet_, NombreTabla2)

        Connection.Close()                                                    '//Cierra conexión

        Dim Tabla2 As DataTable = DataSet_.Tables(NombreTabla2)
        Dim Tabla As DataTable = DataSet_.Tables(NombreTabla1)                 '//Crea una tabla e introduce los datos del DataSet

        Dim NumRows As Integer = Tabla.Rows.Count                             '//Obtiene el número de filas de la tabla
        Dim NumRows2 As Integer = Tabla2.Rows.Count

        Dim l1, l2 As String

        MsgBox(CStr(NumRows))
        MsgBox(CStr(NumRows2))

        For Each Filas1 As DataRow In Tabla.Rows
            Dim Columna1 As Integer = 0                                        '//La primera columna de la tabla
            l1 = Filas1.Item(Columna1)                                     'ListBox1.Items.Add(Filas.Item(Columna1))        '//Devuelve las filas de la primera columna
            For Each Filas2 As DataRow In Tabla2.Rows
                Dim Columna2 As Integer = 0                                        '//La primera columna de la tabla
                l2 = Filas2.Item(Columna2)
                If l1 = "Pedro" And l2 = "Marciano" Then
                    MsgBox("SE LOGRO REGISTRO. FIN")
                    End
                End If
            Next
        Next
        MsgBox("NO SE ENCONTRO CONCORDANCIA. ADIOS")
        End
    End Sub
End Class

Como te diste cuenta, solo agrege otro for next pero para la tabla 2

MUCHAS GRACIAS Y SI ESTAS DE ACUERDO LEKIM, SE DA POR CERRADO  ;-)  ;-)


En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Leer secuencialmente dos tablas de un archivo creado en vb.net 2010
« Respuesta #3 en: 3 Diciembre 2015, 15:06 pm »

Hola

Gracias por comentar la actualización que has hecho para que fuera compatible con Acces 2010  ;-)

Creo que se puede simplificar el código obteniendo la tabla mediante una función y luego con la tabla haces lo que te de la gana.

He modificado la función que puse en el comentario anterior. Aquí no se obtiene sólo un elemento de una tabla sino toda la tabla entera para luego en otro evento hacer lo que se quiera con ella:

[FUNCIÓN PARA OBTENER TABLA ACCES]
Código
  1. #Region "Lectura de base de dato ACCES ver. 12.0"
  2. Module modGetDateTable
  3.  
  4.    Public Function LeerDatosTabla(ByVal PathFileMDB As String, ByVal NombreTabla As String) As DataTable
  5.        Dim query As String = "SELECT * FROM " & NombreTabla
  6.        Dim MDBConnString_ As String = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" & PathFileMDB & ";"
  7.        Dim DataSet_ As New DataSet       '//Caché de memoria interno de datos
  8.        Dim Connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(MDBConnString_)       '//Conexión con la base de datos
  9.        Dim Resultado As String = Nothing
  10.        Dim Tabla As DataTable = Nothing
  11.        Try
  12.            Connection.Open()                                                                           '//Abre la clase de datos
  13.            Dim cmd As New System.Data.OleDb.OleDbCommand(query, Connection)                             '//Instrucción SQL
  14.            Dim DataAdapter As New System.Data.OleDb.OleDbDataAdapter(cmd)
  15.            DataAdapter.Fill(DataSet_, NombreTabla)                                                     '//Adapta la tabla (fila, columnas) al DataSet
  16.            Connection.Close()                                                                          '//Cierra conexión
  17.            Tabla = DataSet_.Tables(NombreTabla)                                       'Crea una tabla e introduce los datos del DataSet
  18.  
  19.        Catch ex As Exception
  20.            MessageBox.Show(ex.Message)
  21.        End Try
  22.        Return Tabla
  23.    End Function
  24. End Module
  25. #End Region

Ejemplo se uso:
Código
  1.  
  2.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.        Dim PhatFileMDB As String = System.Windows.Forms.Application.StartupPath & "\Datos.accdb"
  4.        Dim dtTable As DataTable = LeerDatosTabla(PhatFileMDB, "L1")
  5.        Try
  6.            For Each dtrow As DataRow In dtTable.Rows
  7.                ListBox1.Items.Add(dtrow.Item(0))
  8.            Next
  9.        Catch ex As Exception
  10.            MessageBox.Show(ex.Message)
  11.        End Try
  12.    End Sub
  13.  

Por otro lado yo no quitaría Try/Catch

Código
  1.   Try '//Intenta ejecutar el siguiente código
  2.            '1...Código
  3.            '2...Código
  4.            '3....
  5.        Catch ex As Exception   '//si se produce una excepción
  6.            '//Muestra un mensaje por ejemplo, Cierra la aplicación o puedes no poner nada
  7.        End Try '//Fin de intento



[MODIFICACIÓN DE TU CÓDIGO]
En un principio dijiste:
Código:
después comparo esos dos valores si son iguales

Entiendo que lo que quieres es comparar las filas de unas tablas y comprobar que las dos NO tienen coincidencias ¿no?

He realizado otra forma  ya que, pueden haber coincidencias pero no estar en el mismo lugar es decir: {A, B, C} y {N, M, A} tienen en común A

Código
  1.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        Dim Mydir As String = System.Windows.Forms.Application.StartupPath & "\" & "\Datos.accdb"
  3.  
  4.        Try  '//Intenta ejectuar el código
  5.            '//Importa las tablas
  6.            Dim Tabla1 As DataTable = LeerDatosTabla(Mydir, "L1")
  7.            Dim Tabla2 As DataTable = LeerDatosTabla(Mydir, "L2")
  8.            Dim Columna As Integer = 0 '//columna que va a comparar
  9.  
  10.            '//compara las tablas (independientemente de su orden) ej: A= {X,Y,Z}  B= {Y,N,S} HayCoincidencias devuelve  TRUE EN 'Y'
  11.            Dim ListItems1 As New List(Of String), ListItems2 As New List(Of String)
  12.            '//Introduce los elementos de la columna 0 en las listas ListItems1 y ListItems2
  13.            For Each dtRow As DataRow In Tabla1.Rows
  14.                ListItems1.Add(dtRow(Columna))
  15.            Next
  16.            For Each dtRow As DataRow In Tabla2.Rows
  17.                ListItems2.Add(dtRow(Columna))
  18.            Next
  19.  
  20.            '//Comprueba  las coincidencias
  21.            Dim HayCoincidencia As Boolean = False
  22.            Dim Coincidencias As String = Nothing
  23.            If ListItems1.Count = ListItems2.Count Then
  24.                Dim Int As Integer = -1
  25.                For Each Elemento As String In ListItems2
  26.                    Int += 1
  27.                    If ListItems1.Contains(Elemento) = True Then
  28.                        HayCoincidencia = True
  29.                        If Coincidencias = "" Then
  30.                            Coincidencias &= String.Format("- {0}", Elemento)
  31.                        Else
  32.                            Coincidencias &= String.Format("{0}- {1}", Environment.NewLine, Elemento)
  33.                        End If
  34.                    End If
  35.                Next
  36.            Else
  37.                MessageBox.Show("Las listas no tiene el mismo número de elementos.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  38.            End If
  39.            '//Lanza mensaje
  40.            If HayCoincidencia Then
  41.                MessageBox.Show(String.Format("Hay coincidencias: {0}{1}", Environment.NewLine, Coincidencias), _
  42.                                "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  43.            Else
  44.                MessageBox.Show("No hay coincidencias.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information)
  45.            End If
  46.  
  47.            Me.Close()
  48.        Catch ex As Exception  '//Si se produce una excepción"
  49.            Me.Close() 'cierra
  50.        End Try '//Fin de intento
  51.  
  52.    End Sub

Como ves llamando a la función LeerDatosTabla se obtiene el DataTable  y luego desde el evento de un botón por ejemplo puedes obtener la tabla y luego hacer lo que quieras, si no, es un lío tremendo. Así es más cómodo.

En un principio y para ahorrar código usé Lista1.Except(Lista2) para obtener una lista de elementos en los que no son iguales. Pero lo que interesaba es obtener los elementos que SI son iguales. En su lugar he usado Lista1.Contains(A) que devuelve TRUE si existe el elemento A en  la lista.
 
Estoy seguro que debe de haber alguna función o funciones NET para comparar listas que ahorre código pero como no la conozco lo he hecho a la cuenta de la vieja XD.



Otra cosa para la próxima puedes usar la lista de GeSHi que puedes ver en este foro cuando editas un comentario para pegar código y sea más legible.

Código:
[code=vbnet]...CÓDIGO...
[/code]

Y por último decirte que este foro es para VB5 o VB6 y no para NET. Ya hay uno para net  ;)

http://foro.elhacker.net/net-b62.0/

Sl2s




« Última modificación: 3 Diciembre 2015, 20:46 pm por Lekim » En línea

arturoro

Desconectado Desconectado

Mensajes: 31


Ver Perfil
Re: Leer secuencialmente dos tablas de un archivo creado en vb.net 2010
« Respuesta #4 en: 3 Diciembre 2015, 19:18 pm »

Hola nuevamente Lekim   :laugh: :

Excelente codigo que volviste a poner, excelente  ;-) , en relacion a las comparaciones fue el profe que nos hizo que si en la tabla1 y en la tabla2 habia registros duplicados, y nos puso de ejemplo "pedro" en tabla1 y "pedro" en tabla2 (creo que fumo de la mala hierba jejeje  :silbar: ).

Y gracias por decirme que hay un subforo para .net, ya lo guarde y gracias por decirme como poner el codigo entendible, lo vuelvo a poner para que se entienda jejeje!!!.

Código
  1.  
  2. Public Class Form1
  3.  
  4.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  5.        Dim Mydir, Myrep As String
  6.        Dim Reg As Integer = 0
  7.        Mydir = CurDir() + "\" + "Datos.accdb"
  8.        Myrep = CurDir() + "\"
  9.        Dim NombreTabla1 As String = "L1"                                       '//La tabla se llama "L1"
  10.        Dim NombreTabla2 As String = "L2"
  11.  
  12.        Dim query As String = "SELECT * FROM " & NombreTabla1
  13.        Dim query2 As String = "SELECT * FROM " & NombreTabla2
  14.  
  15.        Dim MDBConnString_ As String = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" & Mydir & ";"  'En esta parte solo la modifique para que la reconociera
  16.                                   'access 2010, ya que me daba error de acceso con lo que me
  17.                                   ' pusiste
  18.        Dim DataSet_ As New DataSet                                             '//Caché de memoria interno de datos
  19.        Dim Connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(MDBConnString_)        '//Conexión con la base de datos
  20.        Connection.Open()                                                     '//Abre la clase de datos
  21.  
  22.        Dim cmd As New System.Data.OleDb.OleDbCommand(query, Connection)      '//Instrucción SQL
  23.        Dim cmd2 As New System.Data.OleDb.OleDbCommand(query2, Connection)
  24.  
  25.        Dim DataAdapter As New System.Data.OleDb.OleDbDataAdapter(cmd)
  26.        Dim DataAdapter2 As New System.Data.OleDb.OleDbDataAdapter(cmd2)
  27.  
  28.        DataAdapter.Fill(DataSet_, NombreTabla1)                               '//Adapta la tabla (fila, columnas) al DataSet
  29.        DataAdapter2.Fill(DataSet_, NombreTabla2)
  30.  
  31.        Connection.Close()                                                    '//Cierra conexión
  32.  
  33.        Dim Tabla2 As DataTable = DataSet_.Tables(NombreTabla2)
  34.        Dim Tabla As DataTable = DataSet_.Tables(NombreTabla1)                 '//Crea una tabla e introduce los datos del DataSet
  35.  
  36.        Dim NumRows As Integer = Tabla.Rows.Count                             '//Obtiene el número de filas de la tabla
  37.        Dim NumRows2 As Integer = Tabla2.Rows.Count
  38.  
  39.        Dim l1, l2 As String
  40.  
  41.        MsgBox(CStr(NumRows))
  42.        MsgBox(CStr(NumRows2))
  43.  
  44.        For Each Filas1 As DataRow In Tabla.Rows
  45.            Dim Columna1 As Integer = 0                                        '//La primera columna de la tabla
  46.            l1 = Filas1.Item(Columna1)                                     'ListBox1.Items.Add(Filas.Item(Columna1))        '//Devuelve las filas de la primera columna
  47.            For Each Filas2 As DataRow In Tabla2.Rows
  48.                Dim Columna2 As Integer = 0                                        '//La primera columna de la tabla
  49.                l2 = Filas2.Item(Columna2)
  50.                If l1 = "Pedro" And l2 = "Marciano" Then
  51.                    MsgBox("SE LOGRO REGISTRO. FIN")
  52.                    End
  53.                End If
  54.            Next
  55.        Next
  56.        MsgBox("NO SE ENCONTRO CONCORDANCIA. ADIOS")
  57.        End
  58.    End Sub
  59. End Class
  60.  
  61.  
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.700



Ver Perfil
Re: Leer secuencialmente dos tablas de un archivo creado en vb.net 2010
« Respuesta #5 en: 20 Diciembre 2015, 05:48 am »

Las preguntas sobre Vb.Net, publicarlas en la sección de .Net, y los demás, por favor reportar los mensajes siempre que podais... a ver si estamos a lo que estamos :P

Saludos!
« Última modificación: 20 Diciembre 2015, 06:02 am por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda en archivo a enviar creado por Ardamax Keylogger
Hacking
el vecino 0 3,431 Último mensaje 23 Marzo 2010, 19:43 pm
por el vecino
leer socket creado en c++
.NET (C#, VB.NET, ASP)
farlaine23 1 1,773 Último mensaje 28 Noviembre 2011, 01:37 am
por Unbr0ken
Grabo archivo y no lo veo creado,en C,Borland C++ 5.02
Programación C/C++
SonaArtica 4 2,006 Último mensaje 12 Diciembre 2012, 00:48 am
por twins
cojer archivo excel y colocar filas en diferentes tablas
Desarrollo Web
landerzx 3 1,324 Último mensaje 4 Abril 2014, 22:44 pm
por 1mpuls0
[Bash] detectar tamaño de archivo base a archivo creado [DUDA]
Scripting
KZN 0 1,154 Último mensaje 26 Mayo 2015, 21:59 pm
por KZN
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines