SE LIVRAR DESTA MSG: NO CURRENT RECORD..NOMATCH..?
Oi,
Alguém sabe como se livrar desta msg: No current record, para o método rs.seek?
Vejam rotina:
Private Sub cmdProcurar_Click()
strBusca = txtProcura.Text
On Error GoTo TratarErro:
'datDistribuidora.EOFAction = 1
datDistribuidora.Recordset.Seek "=", strBusca
TratarErro:
If datDistribuidora.Recordset.NoMatch Then
MsgBox "Registro não encontrado", vbInformation, "Aviso"
txtProcura.Text = ""
txtProcura.SetFocus
' Exit Sub
Else
txtProcura.Text = ""
txtProcura.SetFocus
End If
End Sub
Já olhei tudo sobre este método aqui no msdn usa, mas não diz nada sobre isso:
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/office97/html/output/F1/D2/S5A2CB.asp
Grato e no aguardo!
Vilmar
Alguém sabe como se livrar desta msg: No current record, para o método rs.seek?
Vejam rotina:
Private Sub cmdProcurar_Click()
strBusca = txtProcura.Text
On Error GoTo TratarErro:
'datDistribuidora.EOFAction = 1
datDistribuidora.Recordset.Seek "=", strBusca
TratarErro:
If datDistribuidora.Recordset.NoMatch Then
MsgBox "Registro não encontrado", vbInformation, "Aviso"
txtProcura.Text = ""
txtProcura.SetFocus
' Exit Sub
Else
txtProcura.Text = ""
txtProcura.SetFocus
End If
End Sub
Já olhei tudo sobre este método aqui no msdn usa, mas não diz nada sobre isso:
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/office97/html/output/F1/D2/S5A2CB.asp
Grato e no aguardo!
Vilmar
onde acontece o erro, no "If datDistribuidora.Recordset.NoMatch Then "? se for, antes disso coloque um "on error resume next"
apesar de nunca ter usado DAO, creio que seja o seguinte:
o metodo nomatch indica que nao achou nada com a pesquisa, por isso ele emite um aviso e nao uma mensagem de erro(creio eu), e voce colocou ele dentro de uma rotina de tratamento de erro, caso meu pensamento esteja correto ele teria que estar fora do tratamento de erro, assim desviaria a mensagem de erro para sua msgbox.
On Error GoTo TratarErro:
datDistribuidora.EOFAction = 1
datDistribuidora.Recordset.Seek "=", strBusca
If datDistribuidora.Recordset.NoMatch Then
MsgBox "Registro não encontrado", vbInformation, "Aviso"
txtProcura.Text = ""
txtProcura.SetFocus
' Exit Sub
Else
txtProcura.Text = ""
txtProcura.SetFocus
End If
Exit sub
tratarErro:
End Sub
se nao for isto, tudo bem, estou vivendo e aprendendo.
o metodo nomatch indica que nao achou nada com a pesquisa, por isso ele emite um aviso e nao uma mensagem de erro(creio eu), e voce colocou ele dentro de uma rotina de tratamento de erro, caso meu pensamento esteja correto ele teria que estar fora do tratamento de erro, assim desviaria a mensagem de erro para sua msgbox.
On Error GoTo TratarErro:
datDistribuidora.EOFAction = 1
datDistribuidora.Recordset.Seek "=", strBusca
If datDistribuidora.Recordset.NoMatch Then
MsgBox "Registro não encontrado", vbInformation, "Aviso"
txtProcura.Text = ""
txtProcura.SetFocus
' Exit Sub
Else
txtProcura.Text = ""
txtProcura.SetFocus
End If
Exit sub
tratarErro:
End Sub
se nao for isto, tudo bem, estou vivendo e aprendendo.
Valeu pessoal!
Willian vc matou a dúvida em cheio!!
Grato mesmo!
Willian vc matou a dúvida em cheio!!
Grato mesmo!
Oi pessoal,
Me desculpe, mas no código passado por vcs estava faltando definir o Ãndice e qdo eu coloquei caiu no mesmo erro, vejam com está o código completo:
Private Sub cmdProcurar_Click()
On Error GoTo tratarErro:
datDistribuidora.Recordset.Index = "PrimaryKey"
'datDistribuidora.EOFAction = 0 '>> retirei pois não está mudando em nada a execução com 'qq valor q se coloque!, além do mais isto já fica predefinido no próprio controle em 'design mode
datDistribuidora.Recordset.Seek "=", strBusca
If datDistribuidora.Recordset.NoMatch Then
MsgBox "Registro não encontrado", vbInformation, "Aviso"
txtProcura.Text = ""
txtProcura.SetFocus
' Exit Sub
Else
txtProcura.Text = ""
txtProcura.SetFocus
End If
Exit Sub
tratarErro:
MsgBox "Registro não encontrado Erro: " & Err.Description, vbInformation, "Aviso"
end sub
Grato novamente e no aguardo de nova dica!
Me desculpe, mas no código passado por vcs estava faltando definir o Ãndice e qdo eu coloquei caiu no mesmo erro, vejam com está o código completo:
Private Sub cmdProcurar_Click()
On Error GoTo tratarErro:
datDistribuidora.Recordset.Index = "PrimaryKey"
'datDistribuidora.EOFAction = 0 '>> retirei pois não está mudando em nada a execução com 'qq valor q se coloque!, além do mais isto já fica predefinido no próprio controle em 'design mode
datDistribuidora.Recordset.Seek "=", strBusca
If datDistribuidora.Recordset.NoMatch Then
MsgBox "Registro não encontrado", vbInformation, "Aviso"
txtProcura.Text = ""
txtProcura.SetFocus
' Exit Sub
Else
txtProcura.Text = ""
txtProcura.SetFocus
End If
Exit Sub
tratarErro:
MsgBox "Registro não encontrado Erro: " & Err.Description, vbInformation, "Aviso"
end sub
Grato novamente e no aguardo de nova dica!
OI,
No código que passei faltava a string de busca:
strBusca = CInt(txtProcura.Text)
mas mesmo assim qdo não encontra, ainda mostra a msg. do vb: No current record
o código correto está aqui:
Private Sub cmdProcurar_Click()
On Error GoTo tratarErro:
strBusca = CInt(txtProcura.Text)
datDistribuidora.Recordset.Index = "PrimaryKey"
datDistribuidora.Recordset.Seek "=", strBusca
If datDistribuidora.Recordset.NoMatch Then
MsgBox "Registro não encontrado", vbInformation, "Aviso"
txtProcura.Text = ""
txtProcura.SetFocus
Else
txtProcura.Text = ""
txtProcura.SetFocus
End If
Exit Sub
tratarErro:
MsgBox "Registro não encontrado Erro: " & Err.Description, vbInformation, "Aviso"
End Sub
grato novamente
No código que passei faltava a string de busca:
strBusca = CInt(txtProcura.Text)
mas mesmo assim qdo não encontra, ainda mostra a msg. do vb: No current record
o código correto está aqui:
Private Sub cmdProcurar_Click()
On Error GoTo tratarErro:
strBusca = CInt(txtProcura.Text)
datDistribuidora.Recordset.Index = "PrimaryKey"
datDistribuidora.Recordset.Seek "=", strBusca
If datDistribuidora.Recordset.NoMatch Then
MsgBox "Registro não encontrado", vbInformation, "Aviso"
txtProcura.Text = ""
txtProcura.SetFocus
Else
txtProcura.Text = ""
txtProcura.SetFocus
End If
Exit Sub
tratarErro:
MsgBox "Registro não encontrado Erro: " & Err.Description, vbInformation, "Aviso"
End Sub
grato novamente
Tópico encerrado , respostas não são mais permitidas