PUXAR INFORMA?ÃO DE OUTRO FORM
Bom dia pessoal.
Estou com duas dúvidas, e gostaria de novamente pedir um auxÃlio de vocês.
A primeira é de como puxar uma informação de outro formulário, e a outra seria como limitar um lançamento a partir de duas datas.
1º ) - Tipo assim, eu tenho em um formulário dois DateTimerPicker com o perÃodo de lançamentos (data inicial e data final), onde salvo no BD, até ai de boa.
O que eu preciso é que em outro formulário (onde faço os lançamentos) eu puxe esses perÃodos em uma Label.
Não estou com o programa aqui e nem com os códigos, mas eu coloquei assim no Evento Load: Label1.Text = “PerÃodo de “ & frmPeriodo.dtpInicial & “ Até “ & frmPeriodo.dtpFinal & “
O problema é que só mostra o perÃodo na Label se os dois Forms estiverem aberto, e eu gostaria que mostrasse quando eu abrisse o Form de lançamento somente.
Eu pensei em fazer um select no BD (nem testei), mas como preciso dessa informação para usar em outros Forms, estou solicitando essa ajuda.
A outra dúvida seria a seguinte:
2º ) - Eu quero verificar o perÃodo que consta nos DateTimerPicker, e somente conseguir efetuar o lançamento naquele perÃodo.
Como não estou com o programa aqui, não lembro direito com eu fiz, mas seria assim que devo colocar no botão gravar?
If Label1.Text < frmPeriodo.dtpInical.Text And Label1.Text > frmPeriodo.dtpFinal Then
MessageBox.Show([Ô]XXXXX[Ô])
Exit Sub
End Sub
Se puderem me ajudar com essas dúvida eu agradeço.
Desde já muito obrigado.
Estou com duas dúvidas, e gostaria de novamente pedir um auxÃlio de vocês.
A primeira é de como puxar uma informação de outro formulário, e a outra seria como limitar um lançamento a partir de duas datas.
1º ) - Tipo assim, eu tenho em um formulário dois DateTimerPicker com o perÃodo de lançamentos (data inicial e data final), onde salvo no BD, até ai de boa.
O que eu preciso é que em outro formulário (onde faço os lançamentos) eu puxe esses perÃodos em uma Label.
Não estou com o programa aqui e nem com os códigos, mas eu coloquei assim no Evento Load: Label1.Text = “PerÃodo de “ & frmPeriodo.dtpInicial & “ Até “ & frmPeriodo.dtpFinal & “
O problema é que só mostra o perÃodo na Label se os dois Forms estiverem aberto, e eu gostaria que mostrasse quando eu abrisse o Form de lançamento somente.
Eu pensei em fazer um select no BD (nem testei), mas como preciso dessa informação para usar em outros Forms, estou solicitando essa ajuda.
A outra dúvida seria a seguinte:
2º ) - Eu quero verificar o perÃodo que consta nos DateTimerPicker, e somente conseguir efetuar o lançamento naquele perÃodo.
Como não estou com o programa aqui, não lembro direito com eu fiz, mas seria assim que devo colocar no botão gravar?
If Label1.Text < frmPeriodo.dtpInical.Text And Label1.Text > frmPeriodo.dtpFinal Then
MessageBox.Show([Ô]XXXXX[Ô])
Exit Sub
End Sub
Se puderem me ajudar com essas dúvida eu agradeço.
Desde já muito obrigado.
Bom cara,
Para pegar os dados de um form e levar para outro você pode tentar este modelo: USANDO O COMMAND(), mas é preferÃvel você usar classes:
Crie um arquivo de classe no seu projeto, chamado argumento.class, e dentro dele coloque:
Para atribuir o argumento, no Form de envio coloque, por exemplo:
Para [Ô]pegar [Ô] o argumento no Form que vai receber, coloque (pode ser no load):
Estou sem o VS aqui, mas pelo que eu me lembro deve ser isso aà que você quer. Apenas modifique o exemplo acima para suas necessidades.
Para pegar os dados de um form e levar para outro você pode tentar este modelo: USANDO O COMMAND(), mas é preferÃvel você usar classes:
Crie um arquivo de classe no seu projeto, chamado argumento.class, e dentro dele coloque:
Private Shared iArgumento As String
Public Shared Property argumento As String
Get
Return iArgumento
End Get
Set(value as String)
iArgumento = value
End Set
End Property
Para atribuir o argumento, no Form de envio coloque, por exemplo:
argumento.argumento = [Ô]Este é um exemplo do Form de envio[Ô]
Para [Ô]pegar [Ô] o argumento no Form que vai receber, coloque (pode ser no load):
MsgBox(argumento.argumento)
Estou sem o VS aqui, mas pelo que eu me lembro deve ser isso aà que você quer. Apenas modifique o exemplo acima para suas necessidades.
Boa tarde PEGUDO!
Cara, confesso que não consegui fazer com esse exemplo acima, tem um jeito mais fácil?
Conforme telas anexo, eu só preciso puxar as informações dos DateTimePicker e fazer com que mostre na Label.
O problema é que como essas informações de datas estão em outro Form, ele só mostra na Label caso eu abra o Form antes, ou deixe os dois abertos.
Existe a possibilidade de usar alguma coisa tipo:
With
End With
??
Se tiver, qual seria o evento? (não sei se chama evento, mas blz).
Cara, confesso que não consegui fazer com esse exemplo acima, tem um jeito mais fácil?
Conforme telas anexo, eu só preciso puxar as informações dos DateTimePicker e fazer com que mostre na Label.
O problema é que como essas informações de datas estão em outro Form, ele só mostra na Label caso eu abra o Form antes, ou deixe os dois abertos.
Existe a possibilidade de usar alguma coisa tipo:
With
End With
??
Se tiver, qual seria o evento? (não sei se chama evento, mas blz).
Boa tarde galera!
Pessoal, eu sei que o PEGUDO já até me passou o código pronto, mas eu não estou conseguindo atribuir esse código no meu projeto.
Eu criei uma Classe conforme informado acima, mas não sei onde coloco os demais códigos para que mostre na Label (lblPeriodo.Text = [Ô]PerÃodo de [Ô] & frmPeriodo.dtpInicial.Text & [Ô] Até [Ô] & frmPeriodo.dtpFinal.Text & [Ô].[Ô] & [Ô][Ô]) para que mostre já no Load do Form, ou seja, assim que chamar já mostrar o perÃodo gravado no BD.
Sei que para muitos isso é simples, e por isso estou solicitando mais essa ajuda.
Pessoal, eu sei que o PEGUDO já até me passou o código pronto, mas eu não estou conseguindo atribuir esse código no meu projeto.
Eu criei uma Classe conforme informado acima, mas não sei onde coloco os demais códigos para que mostre na Label (lblPeriodo.Text = [Ô]PerÃodo de [Ô] & frmPeriodo.dtpInicial.Text & [Ô] Até [Ô] & frmPeriodo.dtpFinal.Text & [Ô].[Ô] & [Ô][Ô]) para que mostre já no Load do Form, ou seja, assim que chamar já mostrar o perÃodo gravado no BD.
Sei que para muitos isso é simples, e por isso estou solicitando mais essa ajuda.
da visualização pro lançamento, no botão consultar vc instancia o form, seta o tag com o valor, e carrega o form, no load desse form vc poe o valor da tag no campo q deseja, se um botão chama o outro form é a forma mais simples
Bom dia galera.
Como eu não consegui fazer conforme informado acima, eu fiz uma gambiarra que deu certo.
Criei um Private Sub, conforme abaixo, e coloquei no Load (Periodo), para me trazer exatamente o perÃodo salvo no BD.
Eu queria simplificar o código, mas como sou fraco em programação, fiz uma gambiarra kkkkk mas o importante é que deu certo.
A ideia a principio seria fazer a mesma coisa que fiz, mas ao invés de buscar no BD, pegar a informação no outro Form (DateTimePicker), mas não consegui.
Segue o código que fiz, e funcionou:
Private Sub Periodo()
Dim Cn As New OleDbConnection(conexao)
Dim cmd As OleDbCommand
Dim cmdsql As New StringBuilder
cmdsql.Append([Ô]SELECT DataInicial, DataFinal FROM Periodo[Ô])
Cn = New OleDbConnection(conexao)
cmd = New OleDbCommand(cmdsql.ToString, Cn)
Dim DR As OleDbDataReader
Try
Cn.Open()
DR = cmd.ExecuteReader()
If DR.Read() Then
Label6.Text = DR.GetValue(0).ToString
Label7.Text = DR.GetValue(1).ToString
DR.Close()
End If
Catch ex As Exception
MessageBox.Show([Ô]Mensagem de Erro: [Ô] + ex.ToString + [Ô] - [Ô] + ex.Message)
Finally
If Cn.State <> ConnectionState.Closed Then Cn.Close()
End Try
End Sub
E para não permitir que salve em um perÃodo diferente do que consta no Form (salvo no BD), coloquei o código abaixo:
If CDate(mskDataEmissao.Text) < Label6.Text Or CDate(mskDataEmissao.Text) > Label7.Text Then
MessageBox.Show([Ô]DATA INVÃLIDA ! ([Ô] & mskDataEmissao.Text & [Ô])[Ô] & vbCrLf & vbCrLf & [Ô]Você Não Pode Gravar em um PerÃodo Fechado, ou Acima do que Consta Abaixo.[Ô] & vbCrLf & vbCrLf & [Ô]OBS.: Em Casos Excepcionais, Favor Contatar o Administrador do Sistema.[Ô], [Ô]Erro de Data.[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
mskDataEmissao.Clear()
mskDataEmissao.Focus()
lblCodigo.Text = [Ô][Ô]
Exit Sub
End If
De qualquer forma, eu agradeço novamente a ajuda de todos.
Muito obrigado.
Como eu não consegui fazer conforme informado acima, eu fiz uma gambiarra que deu certo.
Criei um Private Sub, conforme abaixo, e coloquei no Load (Periodo), para me trazer exatamente o perÃodo salvo no BD.
Eu queria simplificar o código, mas como sou fraco em programação, fiz uma gambiarra kkkkk mas o importante é que deu certo.
A ideia a principio seria fazer a mesma coisa que fiz, mas ao invés de buscar no BD, pegar a informação no outro Form (DateTimePicker), mas não consegui.
Segue o código que fiz, e funcionou:
Private Sub Periodo()
Dim Cn As New OleDbConnection(conexao)
Dim cmd As OleDbCommand
Dim cmdsql As New StringBuilder
cmdsql.Append([Ô]SELECT DataInicial, DataFinal FROM Periodo[Ô])
Cn = New OleDbConnection(conexao)
cmd = New OleDbCommand(cmdsql.ToString, Cn)
Dim DR As OleDbDataReader
Try
Cn.Open()
DR = cmd.ExecuteReader()
If DR.Read() Then
Label6.Text = DR.GetValue(0).ToString
Label7.Text = DR.GetValue(1).ToString
DR.Close()
End If
Catch ex As Exception
MessageBox.Show([Ô]Mensagem de Erro: [Ô] + ex.ToString + [Ô] - [Ô] + ex.Message)
Finally
If Cn.State <> ConnectionState.Closed Then Cn.Close()
End Try
End Sub
E para não permitir que salve em um perÃodo diferente do que consta no Form (salvo no BD), coloquei o código abaixo:
If CDate(mskDataEmissao.Text) < Label6.Text Or CDate(mskDataEmissao.Text) > Label7.Text Then
MessageBox.Show([Ô]DATA INVÃLIDA ! ([Ô] & mskDataEmissao.Text & [Ô])[Ô] & vbCrLf & vbCrLf & [Ô]Você Não Pode Gravar em um PerÃodo Fechado, ou Acima do que Consta Abaixo.[Ô] & vbCrLf & vbCrLf & [Ô]OBS.: Em Casos Excepcionais, Favor Contatar o Administrador do Sistema.[Ô], [Ô]Erro de Data.[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
mskDataEmissao.Clear()
mskDataEmissao.Focus()
lblCodigo.Text = [Ô][Ô]
Exit Sub
End If
De qualquer forma, eu agradeço novamente a ajuda de todos.
Muito obrigado.
Tópico encerrado , respostas não são mais permitidas