Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: anmaroso en 13 de Octubre 2015, 17:26

Título: Pasar el valor de una variable en un formulario a otro formulario Visual Basic
Publicado por: anmaroso en 13 de Octubre 2015, 17:26
Hasta hace poco me funcionaba pero no sé que he hecho que ya no funciona y sin el valor de la variable no me deja seguir.

Paso el código por si hay alguna solución.

Código: [Seleccionar]
Public Class FTRANSF_C
    Public vff2 As Date
    Public Const vgf As Date = #1/1/1001#
    Dim strcnn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                           "Data Source=C:\GESTION\GESTION.mdb"
    Private Sub FTRANSF_C_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        vff2 = FTRANSF.vff
        MsgBox("Fecha seleccionada " & vff2, 1)
        FTRANSF.Close()

        vencimiento(vff1:=vff2)
        'DG1.DataSource = dst.Tables("Vencimientos").DefaultView
        'Dim vpi As Integer
        'vpi = DG1.RowCount
        'If vpi = 0 Then
        ' Dim vpt As String
        'Dim vpt1 As String
        ' Dim vpd As Single
        'Dim vpi1 As Integer = 0
        'For i = 1 To vpi
        'vpt = DG1.Rows(vpi1).Cells(1).Value
        '       While DG1.Rows(vpi1).Cells(1) = vpt
        '      End While
        'Next
        'DG1.Name = "Listado de Vencimientos"
        ' DG1.ReadOnly = True
        'DG1.DataSource = dst.Tables("Vencimientos").DefaultView
        'If DataRow = 0 Then 'DG1.RowCount = 0 Then
        'MsgBox("NO HAY REGISTROS")
        'Else
        'MsgBox("Si")
        'End If
        'End If
    End Sub

    Private Sub vencimiento(ByVal vff1 As Date)
        vff1 = vff2
        If vff1 > vgf Then
            Dim conexion As OleDb.OleDbConnection = _
            New OleDb.OleDbConnection(strcnn)
            Dim adaptador As OleDb.OleDbDataAdapter = _
            New OleDb.OleDbDataAdapter("SELECT TFACTURASR.VENCIMIENTO, " & _
                     "TPROVEEDORES.NOMBRE,TFACTURASR.IMPORTE,TFACTURASR.IMPORTET," & _
                     "TFACTURASR.FACTURANE,TFACTURASR.CONCEPTOP,TFCTURASR.FECHAE," & _
                     "TFACTURASR.FACTURANR,TFACTURASR.FECHAP " & _
                     "FROM TFACTURASR INNER JOIN TPROVEEDORES ON " & _
                     "TPROVEEDORES.CLAVE = TFACTURASR.CPROVEEDOR " & _
                     "WHERE TFACTURASR.VENCIMIENTO = # " & Format(vff1, "MM/DD/YYYY") & " # " & _
                     "AND TFACTURASR.NOPAGAR = 0 AND TFACTURASR.PAGADA = FALSE " & _
                     "AND TPROVEEDORES.NOPAGAR = 0 AND TFACTURASR.FPAGO LIKE '" & 4 & "%'" & _
                     "ORDER BY TFACTURASR.VENCIMIENTO, TPROVEEDORES.NOMBRE", conexion)

            Dim dst As DataSet = New DataSet
            Try
                conexion.Open()
                adaptador.Fill(dst, "Vencimientos")
                DG1.Name = "Listado de Vencimientos"
                'DG1.ReadOnly = True
                DG1.DataSource = dst.Tables("Vencimientos").DefaultView
                If DG1.RowCount = 0 Then
                    MsgBox("NO HAY REGISTROS")
                Else
                    MsgBox("Si")
                End If
                '  Vencimientos = dst.Tables(0)
            Catch ex As OleDb.OleDbException
                MsgBox("se ha producido una excepción: " + ex.Message, 16, Me.Text)
            Finally
                conexion.Close() 'conexion.Dispose()adaptador.Dispose(dst.Dispose())
            End Try
        End If
    End Sub

    Private Sub BS_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BS.Click
        Me.Close()
    End Sub

End Class
Título: Re:No me asigna a una variable el valor de otra que está en otro form
Publicado por: Mastermind en 15 de Octubre 2015, 08:20
Hola ¿a qué variable te refieres? ¿qué es lo que funcionaba y ha dejado de funcionar? ¿qué error te sale?

Saludos
Título: Re:No me asigna a una variable el valor de otra que está en otro form
Publicado por: anmaroso en 15 de Octubre 2015, 11:16
Hola Mastermind, buenos días.

Me refiero a una variable que está en un formulario y quiero pasar su valor a otro formulario.
El problema está en que me funcionaba y de repente deja de funcionar.
El pase de valores de variables entre formularios lo hago entre otros formularios y lo hace bien. Yo creo que el problema está en el FTRANSF_C_Load pero no lo consigo encontrar.

Paso el código por si ven el error.

Del primer formulario

Código: [Seleccionar]

Public Class FTRANSF
    Public vff As Date
    Public V1 As Integer

    Private Sub FTRANSF_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: esta línea de código carga datos en la tabla 'GESTIONDataSet1.CVFR1' Puede moverla o quitarla según sea necesario.
        Me.CVFR1TableAdapter.Fill(Me.GESTIONDataSet1.CVFR1)
    End Sub
    Private Sub BS_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BS.Click
        Me.Close()
    End Sub
    Private Sub DG1_CellDoubleClick(ByVal sender As  _
                System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
                Handles DG1.CellDoubleClick
        vff = DG1.SelectedCells(0).Value
        V1 = DG1.SelectedRows.Count
        If DG1.SelectedRows.Count > 0 Then
            MsgBox("Registros " & V1)
            MsgBox("Fecha seleccionada " & vff)
        End If
    End Sub

    Private Sub B2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B2.Click
        FTRANSF_C.Show()
    End Sub
End Class


Del segundo formulario

Código: [Seleccionar]

Public Class FTRANSF_C
    Public vff As Date
    Public V1 As Integer
    Public Const vgf As Date = #1/1/1001#
    Dim strcnn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                           "Data Source=C:\GESTION\GESTION.mdb"

    Private Sub FTRANSF_C_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '    Private Sub FTRANSF_C_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.vff = FTRANSF.vff
        Me.V1 = FTRANSF.V1
        FTRANSF.Close()
        MsgBox("Fecha seleccionada " & vff, 1)
        MsgBox(V1)
    End Sub

    Private Sub BS_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BS.Click
        Me.Close()
    End Sub

    Private Sub B2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B2.Click
        FTRANSF_B.Show()
    End Sub
End Class

Título: Re:No me asigna a una variable el valor de otra que está en otro form
Publicado por: anmaroso en 17 de Octubre 2015, 09:48
Buenos días.

Solución que le he dado: Hacer nuevos formularios y a funcionar.

No entiendo el motivo pero hay que seguir adelante.

Saludos.
Título: Re:Pasar el valor de una variable en un formulario a otro formulario Visual Basic
Publicado por: Alex Rodríguez en 19 de Octubre 2015, 08:21
Es raro que te funcionara y te dejara de funcionar sin más... de cualquier forma gracias por indicar cómo lo resolviste. Saludos.