none
Consulta de obtencion de datos a una base de datos acess desde una caja de texto de un formulario hijo y me muestre la respuesta en otro formulario padre en un datagridview

    Pregunta

  • Buenos dias estimados.

    Tengo la idea hecho ciertas cosas pero aun no me sale; si alguien es tan amable de ayudarme para apñlicar cierto codigo de ayuda le quedaría muy agradecida.

    miércoles, 7 de diciembre de 2016 18:47

Respuestas

  • Hola:

    En un Form con 1 DataGridView y 1 Button, copia y pega el siguiente codigo

    Public Class Form1
        Private Sub btnForm2_Click(sender As Object, e As EventArgs) Handles btnForm2.Click
            Using loForm As New Form2
                loForm.Padre = Me
                loForm.ShowDialog()
            End Using
        End Sub
    End Class
    En un Form con 1 TextBox y 1 Button, copia y pega el siguiente codigo
    Imports System.Data.OleDb
    Public Class Form2
        Public Property Padre As Form1

        Private Sub btnForm1_Click(sender As Object, e As EventArgs) Handles btnForm1.Click
            Try
                Dim msCadenaACCESS As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\TU_BASE_DE_DATOS.accdb"
                Dim lsQuery As String = "Select * From TU_TABLA Where ID=" & Me.TextBox1.Text
                Using loConexion As New OleDbConnection(msCadenaACCESS)
                    Dim loDataTable As New DataTable
                    Dim loDataAdapter As New OleDbDataAdapter(lsQuery, loConexion)
                    loDataAdapter.Fill(loDataTable)
                    'Para enlazar el datatable con el datagrid, en DataSource se asigna el datatable
                    Padre.DataGridView1.DataSource = loDataTable
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
            Me.Close()
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos

    viernes, 9 de diciembre de 2016 8:34
  • Hola , lo que preguntas es un poco complejo y dificil de explicar en tan solo unas líneas de código

    he subido un pequeño demo espero ayude

    https://1drv.ms/u/s!Al4mfBnAOsiVgTB38K1klsSW9L4T

    porsupuesto hay otros buenos ejemplos que permiten realizar lo que planteas utilizando la base de datos 

    sql

    http://ltuttini.blogspot.pe/2010/06/n-tier-desarrollo-en-capas-ejemplo.html


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.


    lunes, 12 de diciembre de 2016 0:03

Todas las respuestas

  • Hola:

    En un Form con 1 DataGridView y 1 Button, copia y pega el siguiente codigo

    Public Class Form1
        Private Sub btnForm2_Click(sender As Object, e As EventArgs) Handles btnForm2.Click
            Using loForm As New Form2
                loForm.Padre = Me
                loForm.ShowDialog()
            End Using
        End Sub
    End Class
    En un Form con 1 TextBox y 1 Button, copia y pega el siguiente codigo
    Imports System.Data.OleDb
    Public Class Form2
        Public Property Padre As Form1

        Private Sub btnForm1_Click(sender As Object, e As EventArgs) Handles btnForm1.Click
            Try
                Dim msCadenaACCESS As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\TU_BASE_DE_DATOS.accdb"
                Dim lsQuery As String = "Select * From TU_TABLA Where ID=" & Me.TextBox1.Text
                Using loConexion As New OleDbConnection(msCadenaACCESS)
                    Dim loDataTable As New DataTable
                    Dim loDataAdapter As New OleDbDataAdapter(lsQuery, loConexion)
                    loDataAdapter.Fill(loDataTable)
                    'Para enlazar el datatable con el datagrid, en DataSource se asigna el datatable
                    Padre.DataGridView1.DataSource = loDataTable
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
            Me.Close()
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos

    viernes, 9 de diciembre de 2016 8:34
  • Muchas gracias por su respuesta voy a probarlo.
    viernes, 9 de diciembre de 2016 14:27
  • Buen día.

    Ya lo probé solo que sale un mensaje que dice ¡referencia de objeto no definido!


     
    sábado, 10 de diciembre de 2016 19:07
  • Hola , lo que preguntas es un poco complejo y dificil de explicar en tan solo unas líneas de código

    he subido un pequeño demo espero ayude

    https://1drv.ms/u/s!Al4mfBnAOsiVgTB38K1klsSW9L4T

    porsupuesto hay otros buenos ejemplos que permiten realizar lo que planteas utilizando la base de datos 

    sql

    http://ltuttini.blogspot.pe/2010/06/n-tier-desarrollo-en-capas-ejemplo.html


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.


    lunes, 12 de diciembre de 2016 0:03
  • Muchas gracias!

    Le comento que si lo probé el código pero le quito Padre.Close() ahi no sale error pero al buscar registros a traves de la caja de texto y dar click en el botón buscar Padre.show() no muestra la primera vez sino la segunda ves al hacer click en el botón buscar.

    Muchas gracias por el demo ya voy a verlo.

    lunes, 12 de diciembre de 2016 0:34
  • Hola:

    > probé el código pero le quito Padre.Close() ahi no sale error <
    En el ejemplo que te he puesto, no figura Padre.Close

    > Padre.show() no muestra la primera vez <
    En el ejemplo que te he puesto, no figura Padre.show

    ¿ Has probado el ejemplo talcual esta ?
    Una vez que lo pruebes, lo tienes que adaptar a tu caso concreto

    Un saludo desde Bilbo
    Carlos
    lunes, 12 de diciembre de 2016 12:30
  • Buen día.

    Verdad es que le puse padre.close() como le he probado algunas veces diferente.

    Haciendo solo un pequeño cambio casi nada asi

    Formulario 1

     'Con un TexBox y un botón buscar

     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

            Try

                Dim msCadenaACCESS As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\SISTEMA ENLAZADO\REPORTES.accdb"
                Dim lsQuery As String = "Select * From C_Cuenta Where id_cuenta= '" & Me.TextBox2.Text & "' "

                Using loConexion As New OleDbConnection(msCadenaACCESS)
                    Dim loDataTable As New DataTable
                    Dim loDataAdapter As New OleDbDataAdapter(lsQuery, loConexion)
                    loDataAdapter.Fill(loDataTable)
                    'Para enlazar el datatable con el datagrid, en DataSource se asigna el datatable
                    HForm.dtg_ct_codigocta.DataSource = loDataTable
                    HForm.Show()
                    'Frm_ayuda_codigocuenta.Show()
                End Using


            Catch ex As Exception
                MessageBox.Show(ex.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
            Me.Close()

        End Sub

    Formulario 2

    'Con un datgridview y un boton

    'Aunque me gustaria buscarlo directamente sin boton al ingresar al formulario 2

    ' codigo en el boton buscar en el datagridview

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'Using loForm As New Frm_ct_asientosdiarios
           
                Using loForm As New Frm_ct_asientosdiarios
                loForm.HForm = Me
                loForm.ShowDialog()
                End Using

        End Sub

    Pero al ejecutar escribo el registro en caja de texto y doy click en el botón buscar y si se me va a la pantalla del datgrid del otro formulario  y doy click en botón buscar y nuevamente de se abre la primera pantalla de caja de texto y de allí dando click nuevamente si encuentra el resultado en formulario 2 del datgrid.

    Agradeciendo su amable atención muchas gracias.

    lunes, 12 de diciembre de 2016 22:09