Carcleo 4 Denunciar post Postado Dezembro 28, 2008 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: 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 SubCó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 Benvindo My.Forms.Benvindo.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 Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Dezembro 28, 2008 Obrigado galera ficou assim: 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 Dim X As String X = InputBox$("Digite o codigo do pedido a ser impresso!!", "Imprimir Pedido") While Not IsNumeric(X) MsgBox("Digite um numero!") X = InputBox$("Digite o codigo do pedido a ser impresso!!", "Imprimir Pedido") End While Dim sqlp As String = "Select * from " & TabelaPedidos & " where pedidoID = " & X ds = accDb.ExecuteDS(sqlp, TabelaPedidos) If ds.Tables(0).Rows.Count = 0 Then MsgBox("Pedido não encontrado!") Else For Each drp As DataRow In ds.Tables(0).Rows If frmAberto = True Then My.Forms.VisualizarImprimir.BringToFront() Exit Sub Else Dim visualForm As New VisualizarImprimir visualForm.ccodigo = drp.Item("pedidoID") visualForm.ShowDialog() End If Next End If End Sub Compartilhar este post Link para o post Compartilhar em outros sites