Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - soyconta

#1
Hola a todos y gracias de antemano por su ayuda. Este es el caso que tengo:

1. Abro el FORM1 (Archivo de clientes) y lleno el DataGrid con las funciones: Seleccion y Filltable (uso la variable "design"de esta funciòn para llenar uno u otro datagrid), uso el Valor "CliPic" para llenar los datos del DGV

Seleccion("SELECT F_CLI.* FROM F_CLI order by CODCLI")
        Filltable(DgClientesAr, "CliPic")


2. Desde el FORM1 abro el FORM2 (Edición de clientes) para editar el registro seleccionado en el primero. Al modificar el registro y actualizar llamo de nuevo la funcion FillTable para refrescar los datos del DataGrid, aquí no hay inconvenientes.
3. Desde el FORM2 abro el FORM3 (Archivo de códigos postales) y lleno el datagrid de este último usando tambien la variable "design" con el valor "PosPic"
Cuando aplico el campo seleccionado, este se traslada correctamente al FORM2

Dim Frm As New FrmCodigosPosAr
        AddOwnedForm(Frm)
        Seleccion2("SELECT CODPOS, POBPOS, PROPOS FROM F_POS")
        Filltable(Frm.DG, "PosPic") ' Llenamos el DG del archivo de Códigos postales
        Frm.ShowDialog()


El problema: Al tratar de actualizar los datos del FORM1 (si abro el form3 desde el form2), el datagrid toma los datos del datagrid del FORM3 y me reporta error por las columnas.
La información para el FORM1 Y FORM2 Las tomo usando MyConn y la del FORM3 la tomo desde Myconn2 (Están ubicadas en dos bases de datos diferentes, para ello uso dos conexiones diferentes: Myconn() y Myconn2()
He intentado con da.dispose etc, pero no he logrado hacerlo. Agradezco la ayuda.

'-------------------------------------
' Funciones usadas para llenar los diferentes DataGrid
'------------
' FillTable
'------------
Public Sub Filltable(ByVal dtgrd As Object, ByVal design As String)
        Dim publictable As New DataTable
        Try
            da.SelectCommand = cmd
            da.Fill(publictable)
            dtgrd.DataSource = publictable
            Select Case design ' USAMOS "design" para llenar uno u otro DataGrid
                Case "PosPic"           ' Archivo Codigos postales
                    dtgrd.Columns(0).headertext = "Código"
                    dtgrd.Columns(1).headertext = "Población"
                    dtgrd.Columns(2).headertext = "Provincia"
                    ' el ancho de las columnas
                    dtgrd.Columns(0).Width = 60
                    dtgrd.Columns(1).Width = 220
                    dtgrd.Columns(2).Width = 220
                Case "CliPic"           ' Archivo de clientes
                    dtgrd.Columns(0).HeaderText = "Cod"
                    dtgrd.Columns(2).HeaderText = "CC/NIT"
                    dtgrd.Columns(3).HeaderText = "Nombre Fiscal"
                    dtgrd.Columns(4).HeaderText = "Nombre comercial"
                    dtgrd.Columns(5).HeaderText = "Domicilio"
                    dtgrd.Columns(9).HeaderText = "Teléfono"
                    dtgrd.Columns(11).HeaderText = "Movil"
                    ' Los demàs no se muestran
                    dtgrd.Columns(1).Visible = False
                    dtgrd.Columns(6).Visible = False
                    dtgrd.Columns(7).Visible = False
    ' ....
            End Select
        Catch ex As Exception
            MsgBox("Error al cargar: " & ex.Message, MsgBoxStyle.Information)
        End Try
        da.Dispose()
    End Sub
' -----------------
' Funciones Selección
' -----------------
    Public Sub Seleccion(ByVal sql As String)
        Try
            con.Open()
            With cmd
                .Connection = con
                .CommandText = sql
            End With

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Emilio 2020 | TPV")

        End Try
        con.Close()
        da.Dispose()
    End Sub
'-------------------------------------
    Public Sub Seleccion2(ByVal sql As String)
        Try
            con2.Open()
            With cmd
                .Connection = con2
                .CommandText = sql
            End With

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Emilio 2020 | TPV")
        End Try
        con2.Close()
        da2.Dispose()

    End Sub
'-------------------
Module publicvariable
    Public con As OleDb.OleDbConnection = Myconn()
    Public con2 As OleDb.OleDbConnection = Myconn2()
End Module
'------------------------
Module DB
    Public Function Myconn() As OleDb.OleDbConnection
        Return New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\3122019.mdb")
    End Function
    Public Function Myconn2() As OleDb.OleDbConnection
        Return New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\General.mdb")
    End Function
End Module
'*************************************