Tenho no meu form do Menu(é o Form MDI da minha aplicação), um item do menu que faz a chamada para uma InputBox que solicitará do cliente a digitação de um valor numerico, que será vericado a partir dele se existe na pedido de pedidos algum pedido cujo id confere com o numero que o cliente digitou nma InputBox.
Duvidas:
1) Como fazer para que, caso o cliente digitar uma letra, ou deixar o campo em branco, dar mensagem de erro e depois voltar na inputbox:
2) Tenho no código, uma chamada para um dataset que fará a pesquisa se o numero de pedido que o cliente digitou na inputbox tem na tabela de pedidos.
Esse dataset só retorna notthing. Será po causa do form ser o MDI da aplicação?
Vale lembrar que em todos os outros formularios o dataset funcioma normal.
Segue o parte do codigo:
Private Sub ImprimirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ImprimirToolStripMenuItem.Click
Dim frmAberto As Boolean = False
For Each frm As Form In Application.OpenForms
If frm.Name = "VisualizarImprimir" Then
frmAberto = True
Exit For
End If
Next
If frmAberto = False Then
'Dim Pedido As Integer
Dim Pedido As String = ""
Dim Prompt As String
Prompt = "Digite o Nº do pedido:"
Pedido = InputBox(Prompt)
If IsDBNull(Pedido) Or Pedido.ToString = "" Then
MsgBox("Digite um numero!")
Exit Sub
Else
Try
Dim sqlp As String = "Select * from pedidos where pedidoID = " & Pedido
dsp = accDb.ExecuteDS(sqlp, TabelaPedidos)
For Each drp As DataRow In dsp.Tables(0).Rows
If drp.Item("pedidoID") = "" Or IsDBNull(drp.Item("pedidoID")) Then
MsgBox("Pedido não encontrado!")
Exit Sub
Else
Dim visualForm As New VisualizarImprimir
visualForm.ccodigo = Pedido
visualForm.ShowDialog()
End If
Next drp
Catch ex As Exception
MsgBox("Número inválido!")
End Try
End If
Else
My.Forms.VisualizarImprimir.BringToFront()
End If
End Sub
Código completo do form
Imports MySql.Data.MySqlClient
Public Class Menu
Dim accDb As New DBConnection
Dim dsp As DataSet = Nothing
Dim TabelaPedidos As String = "pedidos"
Private Sub Menu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each ctl As Control In Me.Controls
If TypeOf ctl Is MdiClient Then
ctl.BackColor = Me.BackColor
End If
Next ctl
End Sub
Private Sub ClientesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClientesToolStripMenuItem.Click
My.Forms.Clientes.MdiParent = Me
My.Forms.Clientes.Show()
My.Forms.Clientes.BringToFront()
End Sub
Private Sub ProdutosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProdutosToolStripMenuItem.Click
My.Forms.Produtos.MdiParent = Me
My.Forms.Produtos.Show()
My.Forms.Produtos.BringToFront()
End Sub
Private Sub PedidosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PedidosToolStripMenuItem.Click
My.Forms.Pedidos.MdiParent = Me
My.Forms.Pedidos.Show()
My.Forms.Pedidos.BringToFront()
End Sub
Private Sub ImprimirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ImprimirToolStripMenuItem.Click
Dim frmAberto As Boolean = False
For Each frm As Form In Application.OpenForms
If frm.Name = "VisualizarImprimir" Then
frmAberto = True
Exit For
End If
Next
If frmAberto = False Then
'Dim Pedido As Integer
Dim Pedido As String = ""
Dim Prompt As String
Prompt = "Digite o Nº do pedido:"
Pedido = InputBox(Prompt)
If IsDBNull(Pedido) Or Pedido.ToString = "" Then
MsgBox("Digite um numero!")
Exit Sub
Else
Try
Dim sqlp As String = "Select * from pedidos where pedidoID = " & Pedido
dsp = accDb.ExecuteDS(sqlp, TabelaPedidos)
For Each drp As DataRow In dsp.Tables(0).Rows
If drp.Item("pedidoID") = "" Or IsDBNull(drp.Item("pedidoID")) Then
MsgBox("Pedido não encontrado!")
Exit Sub
Else
Dim visualForm As New VisualizarImprimir
visualForm.ccodigo = Pedido
visualForm.ShowDialog()
End If
Next drp
Catch ex As Exception
MsgBox("Número inválido!")
End Try
End If
Else
My.Forms.VisualizarImprimir.BringToFront()
End If
End Sub
Private Sub Menu_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
'Alterado o startup da aplicação para o form bem-vindo
My.Forms.bem-vindo.Close()
End Sub
Private Sub FecharToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FecharToolStripMenuItem.Click
Close()
End Sub
End Class
Pergunta
Carlos Rocha
Ola.
Tenho no meu form do Menu(é o Form MDI da minha aplicação), um item do menu que faz a chamada para uma InputBox que solicitará do cliente a digitação de um valor numerico, que será vericado a partir dele se existe na pedido de pedidos algum pedido cujo id confere com o numero que o cliente digitou nma InputBox.
Duvidas:
1) Como fazer para que, caso o cliente digitar uma letra, ou deixar o campo em branco, dar mensagem de erro e depois voltar na inputbox:
2) Tenho no código, uma chamada para um dataset que fará a pesquisa se o numero de pedido que o cliente digitou na inputbox tem na tabela de pedidos.
Esse dataset só retorna notthing. Será po causa do form ser o MDI da aplicação?
Vale lembrar que em todos os outros formularios o dataset funcioma normal.
Segue o parte do codigo:
Código completo do formLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.