USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  VERFIFCAR DADOS ATRAVES DE UMA COMBO
Leandro Bueno
não registrado
Postada em 13/09/2006 09:48 hs   
Ola amigos, não sei se o titulo estará bem de acordo com minha duvida.
Bem é o seguinte:

Estou fazendo uma form para emitir nota fiscal, na hora de cadastrar os itens que vão compor a nota, eu busco da minha tabela produtos.
Fiz uma combo que esta assim:
Private Sub Combo5_Click()
vproduto.MoveMin
vproduto.Seek "=", Val(Mid(Combo5, 1, 2))
txtdescricao = vproduto!descricao
txtpreco = vproduto!preco
txtpeso = vproduto!peso
salvar2.Enabled = True
excluir2.Enabled = True
End Sub

Agora eu quero fazer o seguinte:
supondo que a pessoa escolhei o 1º produto da combo, informou a quantidade enfim td certinho, clicou em salvar e clicou no combo para buscar o proximo produto, mas ai ele clicou no 1º produto denovo, ai eu gostaria de que aparece uma mensagem dizendo que aquele produto ja foi selecionado, e se ele desejaria alterar os dados daquele produto.

ai fiz assim:

vproduto.MoveMin
vproduto.Seek "=", Val(Mid(Combo5, 1, 2))
txtdescricao = vproduto!descricao
txtpreco = vproduto!preco
txtpeso = vproduto!peso
salvar2.Enabled = True
excluir2.Enabled = True
vnotad.MoveMin
vnotad.Seek "=", txtcodigo, Mid(Combo5, 1, 2)
If vnotad.NoMatch = False Then


If MsgBox("Produto já Vendido, Deseja Alterar?", vbYesNo) = vbNo Then
  Combo5.Text = " "
  Combo5.SetFocus
  Exit Sub
  Else
    BeginTrans
    vnotad.Delete
    CommitTrans
    txtquantidade.SetFocus
End If
txtquantidade.SetFocus
End If


Mas ai todo o produto que eu clicar mesmo sem salvar nada, ele ja da a mensagem.
Como eu faria pra me avisar de que aquele item ja foi escolhido.
não teria alguma função, onde eu poderia dizer que o item que esta sendo escolhido na combo ja foi escolhido anteriormente??

grato.
     
Cardoso G
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
Postada em 13/09/2006 11:15 hs            
If vnotad.NoMatch = False Then 
    BeginTrans
    vnotad.add
    CommitTrans
else
    If MsgBox("Produto já Vendido, Deseja Alterar?", vbYesNo) = vbNo Then
       Combo5.Text = " "
       Combo5.SetFocus 
       BeginTrans
       vnotad.delete
       CommitTrans
   End If
txtquantidade.SetFocus
End If
     
Cardoso G
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
Postada em 13/09/2006 11:15 hs            
tente desse jeito, acho que so seu if que ficou errado.
     
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
Postada em 13/09/2006 11:18 hs            
leandro, eu usaria o seguinte:
no declarations
dim lista as variant
dim n as integer
dim n1 as integer
 
antes de carregar o combo eu criu uma rotina para saber qtos produtos irão carregar o combo
selecao="select * from produtos"
set tabela=banco.openrecordset(selecao, dbopensnapshot)
n=0
do until tabela.eof
        tabela.movenext
loop
n=tabela.recordcount
tabela.close
redim lista(n)
ao invés de carregar o combo diretamente eu carrego a variavel lista
set tabela=banco.openrecordset(selecao, dbopensnapshot)
i=0
do until tabela.eof
   i=i+1
    lista(i)=tabela("descricao")
        tabela.movenext
loop
tabela.close
carregacombo combo1
end sub
o combo é carregado a partir desta lista
no evento combo click, após ter selecionado o item, crio uma rotina na qual vou descobrir o item da lista está selecionado. 'variavel n1
 
no evento SALVAR
private sub commandsalvar_click
' AQUI SALVA A ALTERAÇÃO
' aqui eu excluo o item da lista
lista(n1)=""
carregacombo combo1
 
end sub
private sub carregacombo(combo as a control)
combo.clear
for i= 1 to n
       if lista i<>"" then
           combo.additem lista(i)
      else
     endif
next i
 
     
Leandro Bueno
não registrado
ENUNCIADA !
Postada em 14/09/2006 13:59 hs   
obrigado amigos irie fazer uns testes com as dicas de vocês.
   
Leandro Bueno
não registrado
Postada em 14/09/2006 15:02 hs   
amigo cardoso, no caso do código que vc me passou, a mensagem aparece quando clico em qualquer item, ou seja não deixa nem escolher o item.
 
amigo PH1959, no caso do seu código, não consegui adaptar ao meu projeto.
 
de uma olhada no código fonte do meu projeto:
 
Dim lista As Variant
Dim n As Integer
Dim n1 As Integer
Private Sub chameleonButton2_Click()
vnotam.MoveMin
Call Atualizar
End Sub
 
Private Sub alterar2_Click()
'Call Habilitar2
txtcodigo.Enabled = False
salvar2.Enabled = True
cancelar2.Enabled = True
inc = False
'txtnumero.SetFocus
End Sub
 
Private Sub cancelar2_Click()
'On Error Resume Next
'incluir2.Enabled = True
cancelar2.Enabled = True
'alterar2.Enabled = True
excluir2.Enabled = True
proximo.Enabled = True
anterior.Enabled = True
primeiro.Enabled = True
ultimo.Enabled = True
'localizar.Enabled = True
salvar2.Enabled = False
End Sub
 
Private Sub chameleonButton1_Click()
Dim var_sql As Recordset
Set var_sql = bancodedados.OpenRecordset("select * FROM notad")
Set Data2.Recordset = var_sql
Data2.Refresh
End Sub
 
Private Sub chameleonButton3_Click()
vnotam.MovePrevious
If vnotam.BOF Then
   MsgBox "Fim de Arquivo"
   vnotam.MoveMax
End If
Call Atualizar
End Sub
 
Private Sub chameleonButton4_Click()
vnotam.MoveNext
If vnotam.EOF Then
   MsgBox "Fim do Cadastro"
   vnotam.MoveMax
End If
Call Atualizar
End Sub
 
Private Sub chameleonButton5_Click()
vnotam.MoveMax
Call Atualizar
End Sub
Private Sub chameleonButton6_Click()
Frame2.Visible = False
End Sub
 
Private Sub CmdAjustar2_Click()
 Dim Max_Wid As Single
   Dim Wid As Single
   Dim Max_Row As Integer
   Dim R As Integer
   Dim c As Integer
  
   Screen.MousePointer = vbHourglass
  
   'Ajusta as colunas do grid para o tamanho do texto contido nas celulas
   Max_Row = MSFlexGrid4.Rows - 1
  
   For c = 0 To MSFlexGrid4.Cols - 1
      Max_Wid = 0
      For R = 0 To Max_Row
         Wid = TextWidth(MSFlexGrid4.TextMatrix(R, c))
         If Max_Wid < Wid Then Max_Wid = Wid
      Next R
      MSFlexGrid4.ColWidth(c) = Max_Wid + 240
   Next c
   Screen.MousePointer = vbDefault
End Sub
Private Sub Combo3_Click()
Dim rs As Recordset
Set rs = bancodedados.OpenRecordset("SELECT * FROM cliente WHERE nome = '" & Combo3.Text & "'", dbOpenDynaset)
  
  If rs.EOF Then
    txtcgc.Text = ""
    txtcpf.Text = ""
    txtendereco.Text = ""
    txtbairro.Text = ""
    txtcidade.Text = ""
    txtestadocli.Text = ""
    txtinsc.Text = ""
    txtcep.Text = ""
  Else
    txtendereco.Text = rs.endereco
    txtcpf.Text = rs.cnpj
    txtcidade.Text = rs.cidade
    txtestadocli.Text = rs.estado
    txtcgc.Text = rs.cgc
    txtcep.Text = rs.cep
    txtinsc.Text = rs.insc
    txtbairro.Text = rs.bairro
  End If
   
  Set rs = Nothing
End Sub
Private Sub Combo4_Click()
Dim rs As Recordset
Set rs = bancodedados.OpenRecordset("SELECT * FROM cfop WHERE codigo = '" & Combo4.Text & "'", dbOpenDynaset)
  
  If rs.EOF Then
    txtfiscal.Text = ""
  Else
    txtfiscal.Text = rs.descricao
  End If
   
  Set rs = Nothing
End Sub
Private Sub Combo5_Click()
'Dim rs As Recordset
'Set rs = bancodedados.OpenRecordset("SELECT * FROM produtos WHERE produto = '" & Combo5.Text & "'", dbOpenDynaset)
'  If rs.EOF Then
'    txtdescricao.Text = ""
'    txtpreco.Text = ""
'    txtpeso.Text = ""
'  Else
'   txtdescricao.Text = rs.descricao
 '  txtpreco.Text = rs.preco
 '   txtpeso.Text = rs.peso
'  End If
   
'Set rs = Nothing
vproduto.MoveMin
vproduto.Seek "=", Val(Mid(Combo5, 1, 2))
txtdescricao = vproduto!descricao
txtpreco = vproduto!preco
txtpeso = vproduto!peso
salvar2.Enabled = True
excluir2.Enabled = True
 
End Sub
Private Sub Command1_Click()
'MsgBox "Certifique-se de ter salvo a parte principal da nota ", vbInformation
Frame2.Visible = True
End Sub
 
Private Sub alterar_Click()
Call Habilitar
txtcodigo.Enabled = False
salvar.Enabled = True
cancelar.Enabled = True
inc = False
txtnumero.SetFocus
End Sub
Private Sub anterior_Click()
vnotad.MovePrevious
If vnotad.BOF Then
   MsgBox "Fim de Arquivo"
   vnotad.MoveMax
End If
Call Atualizar2
End Sub
 
Private Sub cancelar_Click()
'On Error Resume Next
incluir.Enabled = True
cancelar.Enabled = True
alterar.Enabled = True
excluir.Enabled = True
proximo.Enabled = True
anterior.Enabled = True
primeiro.Enabled = True
ultimo.Enabled = True
'localizar.Enabled = True
salvar.Enabled = False
Call Desabilitar
Call Limpar
Call Atualizar
End Sub
Private Sub CmdAjustar_Click()
   Dim Max_Wid As Single
   Dim Wid As Single
   Dim Max_Row As Integer
   Dim R As Integer
   Dim c As Integer
  
   Screen.MousePointer = vbHourglass
  
   'Ajusta as colunas do grid para o tamanho do texto contido nas celulas
   Max_Row = MSFlexGrid1.Rows - 1
  
   For c = 0 To MSFlexGrid1.Cols - 1
      Max_Wid = 0
      For R = 0 To Max_Row
         Wid = TextWidth(MSFlexGrid1.TextMatrix(R, c))
         If Max_Wid < Wid Then Max_Wid = Wid
      Next R
      MSFlexGrid1.ColWidth(c) = Max_Wid + 240
   Next c
   Screen.MousePointer = vbDefault
  
   ''''''''''''''''''''''''''''''''''''''''''''''''''''
  
     Screen.MousePointer = vbHourglass
  
   'Ajusta as colunas do grid para o tamanho do texto contido nas celulas
   Max_Row = MSFlexGrid2.Rows - 1
  
   For c = 0 To MSFlexGrid2.Cols - 1
      Max_Wid = 0
      For R = 0 To Max_Row
         Wid = TextWidth(MSFlexGrid2.TextMatrix(R, c))
         If Max_Wid < Wid Then Max_Wid = Wid
      Next R
      MSFlexGrid2.ColWidth(c) = Max_Wid + 240
   Next c
   Screen.MousePointer = vbDefault
End Sub
 
Private Sub Command2_Click()
 Dim var_sql As Recordset
Set var_sql = bancodedados.OpenRecordset("SELECT * FROM notad WHERE nf='" & txtnumero & "'", dbOpenDynaset)
Set Data1.Recordset = var_sql
Data1.Refresh
    cancelar_Click
End Sub
 
Private Sub Command3_Click()
'Preview15.Show 1
End Sub
Private Sub Command6_Click()
Frame1.Visible = False
End Sub
Private Sub Command7_Click()
Frame2.Visible = False
End Sub
Private Sub consultar_Click()
Frame1.Visible = True
'MsgBox "Selecione a Opção em Consulta Específica", vbInformation
End Sub
 
Private Sub excluir_Click()
On Error Resume Next
If Val(txtcodigo) = "1" Then
MsgBox "Não é Possível Excluir o Registro Primário", vbCritical
Else
Dim Mensagem, Botões, Title, Ctxt, Resposta, MyString
Mensagem = "Deseja Excluir?"
Botões = vbYesNo + vbCritical + vbDefaultButton2
Titulo = "LAB SISTEMAS"
Resposta = MsgBox(Mensagem, Botões, Titulo, Help, Ctxt)
End If
If Resposta = vbYes Then
   BeginTrans
   vnotam.Delete
   CommitTrans
        Dim var_sql As Recordset
Set var_sql = bancodedados.OpenRecordset("select * FROM notam ")
Set Data1.Recordset = var_sql
Data1.Refresh
   anterior = True
   Call Atualizar
   imprimir_Click
Else
  Mensagem = "O Registro não foi Excluído"
End If
End Sub
 
Private Sub excluir2_Click()
On Error Resume Next
If Val(txtcodigo) = "1" Then
MsgBox "Não é Possível Excluir o Registro Primário", vbCritical
Else
Dim Mensagem, Botões, Title, Ctxt, Resposta, MyString
Mensagem = "Deseja Excluir?"
Botões = vbYesNo + vbCritical + vbDefaultButton2
Titulo = "LAB SISTEMAS"
Resposta = MsgBox(Mensagem, Botões, Titulo, Help, Ctxt)
End If
If Resposta = vbYes Then
   BeginTrans
   vnotad.Delete
   CommitTrans
Dim var_sql As Recordset
Set var_sql = bancodedados.OpenRecordset("select * FROM notad")
Set Data2.Recordset = var_sql
Data2.Refresh
   anterior = True
   Call Atualizar2
   'imprimir2_Click
Else
  Mensagem = "O Registro não foi Excluído"
End If
End Sub
 
Private Sub Form_Load()
'Call SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, &H1 Or &H2)
'Text2.Text = UCase(Text2)
On Error Resume Next
Me.Caption = ne
vnotam.MoveMax
vnotad.MoveMax
cancelar_Click
cancelar2_Click
vcliente.MoveMin
Do While Not vcliente.EOF
   Combo3.AddItem Format(vcliente!nome)
   vcliente.MoveNext
Loop
vempresa.MoveMin
Do While Not vempresa.EOF
   Combo1.AddItem Format(vempresa!razao)
   vempresa.MoveNext
Loop
vproduto.MoveMin
Do While Not vproduto.EOF
   Combo5.AddItem Format(vproduto!codprod, "00") + "-" + vproduto!produto
   vproduto.MoveNext
Loop
vcfop.MoveMin
Do While Not vcfop.EOF
   Combo4.AddItem Format(vcfop!codigo)
   vcfop.MoveNext
Loop
Dim var_sql As Recordset
Set var_sql = bancodedados.OpenRecordset("select * FROM notam")
Set Data1.Recordset = var_sql
Data1.Refresh
Exit Sub
'Dim var_sql As Recordset
Set var_sql = bancodedados.OpenRecordset("select * FROM notad ")
Set Data2.Recordset = var_sql
Data2.Refresh
Exit Sub
End Sub
 
Private Sub Limpar()
txtcodigo = Empty
txtnumero = Empty
txtemissao = Empty
txtcnpj = Empty
txtcgc = Empty
txtinsc = Empty
txtendereco = Empty
txtestadocli = Empty
txtcidade = Empty
txtbairro = Empty
txtcep = Empty
Combo4 = Empty
Combo1 = Empty
Combo3 = Empty
txtfiscal = Empty
txtpedido = Empty
End Sub
 
Private Sub Limpar2()
'txtcodigo = Empty
txtdescricao = Empty
Combo5 = Empty
txtpreco = Empty
txtpeso = Empty
txtquantidade = Empty
txtemissao = Empty
txticm = Empty
txtipi = Empty
txtprazo = Empty
txtobs = Empty
txtemissao = Empty
End Sub
Private Sub Habilitar()
'txtcodigo.Enabled = True
txtnumero.Enabled = True
txtemissao.Enabled = True
Combo4.Enabled = True
Combo1.Enabled = True
Combo3.Enabled = True
txtpedido.Enabled = True
End Sub
Private Sub Desabilitar()
txtcodigo.Enabled = False
txtnumero.Enabled = False
txtemissao.Enabled = False
Combo4.Enabled = False
Combo1.Enabled = False
Combo3.Enabled = False
txtpedido.Enabled = False
End Sub
 
Private Sub Atualizar()
On Error Resume Next
txtcodigo = vnotam!codnota
txtnumero = vnotam!nf
txtemissao = vnotam!emissao
txtcnpj = vnotam!cnpj
txtcgc = vnotam!cgc
txtinsc = vnotam!IE
txtendereco = vnotam!endereco
txtestadocli = vnotam!estado
txtcidade = vnotam!cidade
txtbairro = vnotam!bairro
txtcep = vnotam!cep
Combo4 = vnotam!codfiscal
Combo1 = vnotam!empresa
Combo3 = vnotam!cliente
txtfiscal = vnotam!natureza
txtpedido = vnotam!pedido
End Sub
 
Private Sub Atualizar2()
On Error Resume Next
txtcodigo = vnotad!codnota
txtdescricao = vnotad!descricao
Combo5 = vnotad!codprod
txtpeso = vnotad!peso
txtquantidade = vnotad!quantidade
txtemissao = vnotad!emissao
txticm = vnotad!icm
txtipi = vnotad!ipi
txtprazo = vnotad!prazo
txtobs = vnotad!obs
End Sub
 
Private Sub imprimir_Click()
On Error Resume Next
Me.Caption = ne
vnotam.MoveMax
cancelar_Click
Dim var_sql As Recordset
Set var_sql = bancodedados.OpenRecordset("select * from notam ")
Set Data1.Recordset = var_sql
Data1.Refresh
Exit Sub
End Sub
 
Private Sub Incluir_Click()
salvar.Enabled = True
cancelar.Enabled = True
alterar.Enabled = False
excluir.Enabled = False
proximo.Enabled = False
anterior.Enabled = False
primeiro.Enabled = False
ultimo.Enabled = False
'localizar.Enabled = False
Call Limpar
inc = True
If vnotam.RecordCount <> 0 Then
  vnotam.MoveMax
  txtcodigo = vnotam!codnota
Else
  txtcodigo = 1
End If
Call Habilitar
txtcodigo = Val(txtcodigo) + 1
txtnumero.SetFocus
End Sub
 
Private Sub primeiro_Click()
vnotad.MoveMin
Call Atualizar2
End Sub
 
Private Sub proximo_Click()
vnotad.MoveNext
If vnotad.EOF Then
   MsgBox "Fim do Cadastro"
   vnotad.MoveMax
End If
Call Atualizar2
End Sub
 
Private Sub salvar_Click()
On Error Resume Next
BeginTrans
vnotam.LockEdits = False
If inc = True Then
    vnotam.AddNew
    vnotam!codnota = Val(txtcodigo)
    Else
    vnotam.Edit
    End If
    vnotam!nf = UCase(txtnumero)
    vnotam!emissao = UCase(txtemissao)
    vnotam!natureza = UCase(txtfiscal)
    vnotam!codfiscal = Combo4
    vnotam!cliente = Combo3
    vnotam!empresa = Combo1
    vnotam!cnpj = UCase(txtcnpj)
    vnotam!cgc = UCase(txtcgc)
    vnotam!IE = UCase(txtinsc)
    vnotam!endereco = UCase(txtendereco)
    vnotam!estado = UCase(txtestadocli)
    vnotam!cidade = UCase(txtcidade)
    vnotam!bairro = UCase(txtbairro)
    vnotam!cep = UCase(txtcep)
    vnotam!pedido = UCase(txtpedido)
    vnotam.Update
    vnotam.MoveMax
    CommitTrans
        Dim var_sql As Recordset
Set var_sql = bancodedados.OpenRecordset("select * FROM notam ")
Set Data1.Recordset = var_sql
Data1.Refresh
    cancelar_Click
    imprimir_Click
    Combo5.Enabled = True
    txtquantidade.Enabled = True
    txticm.Enabled = True
    txtipi.Enabled = True
    txtemissaod.Enabled = True
    txtprazo.Enabled = True
    txtobs.Enabled = True
    Command1.Visible = True
End Sub

Private Sub salvar2_Click() ------ SERIA AQUI PARA SALVAR OS PRODUTOS
On Error Resume Next
BeginTrans
vnotad.LockEdits = False
If inc = True Then
    vnotad.AddNew
    vnotad!codnota = Val(txtcodigo)
    Else
    vnotad.Edit
    End If
    vnotad!nf = UCase(txtnumero)
    vnotad!codprod = Combo5
    vnotad!descricao = UCase(txtdescricao)
    vnotad!preco = UCase(txtpreco)
    vnotad!peso = UCase(txtpeso)
    vnotad!quantidade = UCase(txtquantidade)
    vnotad!emissao = UCase(txtemissao)
    vnotad!icm = UCase(txticm)
    vnotad!ipi = UCase(txtipi)
    vnotad!prazo = UCase(txtprazo)
    vnotad!obs = UCase(txtobs)
    vnotad.Update
    Call Limpar2
    vnotad.MoveMax
    CommitTrans
Dim var_sql As Recordset
Set var_sql = bancodedados.OpenRecordset("select * FROM notad where codNota = " & txtcodigo)
Set Data2.Recordset = var_sql
Data2.Refresh
cancelar_Click
End Sub
Private Sub txtemissao_Click()
'CommonDialog1.ShowColor
'    txtemissao.BackColor = CommonDialog1.Color
End Sub
Private Sub txtquantidade_LostFocus()
Text1.Text = CDbl(Text1) + CDbl(txtquantidade) * CDbl(txtpreco)
End Sub
Private Sub ultimo_Click()
vnotad.MoveMax
Call Atualizar2
End Sub
Private Sub voltar_Click()
Unload Me
End Sub
Public Function ArrumaGrid()
 Dim Max_Wid As Single
   Dim Wid As Single
   Dim Max_Row As Integer
   Dim R As Integer
   Dim c As Integer
  
   Screen.MousePointer = vbHourglass
  
   'Ajusta as colunas do grid para o tamanho do texto contido nas celulas
   Max_Row = MSFlexGrid1.Rows - 1
  
   For c = 0 To MSFlexGrid1.Cols - 1
  
      Max_Wid = 0
     
      For R = 0 To Max_Row
     
         Wid = TextWidth(MSFlexGrid1.TextMatrix(R, c))
         If Max_Wid < Wid Then Max_Wid = Wid
        
      Next R
     
     MSFlexGrid1.ColWidth(c) = Max_Wid + 240
     
   Next c
  
   Screen.MousePointer = vbDefault
'End Sub
End Function

 
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página