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