andre
|
DIVINÓPOLIS MG - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 09/06/2006 12:50 hs
usava pesquisa no modo recordset, mas estava com problema com a mensagem 'no current record'. Me indicaram outro tipo de pesquisa no modo dynaset: Dim criterio As String criterio = InputBox$("Código a ser pesquisado: ", "Pesquisando por código") If criterio <> Empty Then Data1.RecordSource = "Select * from Produto where (COD)>='" & criterio & "'" Data1.Refresh If Data1.Recordset.RecordCount = 0 Then MsgBox "Código não localizado! ", vbExclamation, "Pesquisando por código" Else MsgBox "Localizado!" End If End If O problema é que este tipo de pesquisa filtro o registro pesquisado. Neste caso por exemplo faço pesquisa com codigo 5. Ele acha todos de cinco pra maior. O problema é que ele deixa de exibir todos menores que cinco. Como resolvo meu problema? Obrigado
|
|
|
|
Daniel
|
SÃO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 09/06/2006 13:06 hs
Não entendi na sua consulta ele mostrar todos os registros maior e igual a cinco e for mostrar tambem os que são menores que cinco, ele não irá na realidade mostrar tudo
dsmn
|
|
|
|
Postada em 09/06/2006 14:19 hs
Andre faz assim: Dim criterio As String criterio = InputBox$("Código a ser pesquisado: ", "Pesquisando por código") If criterio <> Empty Then Data1.RecordSource = "Select * from Produto where (COD)='" & criterio & "'" Data1.Refresh If Data1.Recordset.RecordCount = 0 Then MsgBox "Código não localizado! ", vbExclamation, "Pesquisando por código" Else MsgBox "Localizado!" End If End If
|
|
|
andre
|
DIVINÓPOLIS MG - BRASIL
|
|
Postada em 09/06/2006 14:45 hs
- Acho que não me expliquei bem... a pesquisa ocorre tudo bem. Mas como é feita a pesquisa usando valor igual ou maior (>=), ele procura estes registros (até ai tudo bem). O problema, são os valores que não entram na pesquisa, ou seja os menores que o valor (<). A pesquisa acaba filtrando eles, eles deixam de aparecer na tabela... no modo recordset, eles não somem, apenas ficam atras dos valores da pesquisa.
- Ex: pesquisa codigo 5. (tendo os codigos: 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 )
- Método recordset:
- 1
- 2
- 3
- 4
- >5
- 6
- 7
- 8
- *
ele apenas ordena pelo valor pesquisado, e marca o registro principal da pesquisa.- Método dynaset:
- >5
- 6
- 7
- 8
- *
ele filtra os registros que não entram nos valores da pesquisa
Como resolvo este problema? Obs: se tiver geito de retirar a mensagem ‘no current record’ do metodo recordset tambem resolve meu problema.
|
TÓPICO EDITADO
|
|
|
|
|
Postada em 09/06/2006 15:09 hs
Se voce usa o DAO poderia fazer assim: Dim criterio As String Dim Rs as Recordset criterio = InputBox$("Código a ser pesquisado: ", "Pesquisando por código") If criterio <> Empty Then set rs=base.openrecordset("Select * from Produto where (COD)>='" & criterio & "'") if rs.recorcount<>0 then Data1.RecordSource = "Select * from Produto where (COD)>='" & criterio & "'" Data1.Refresh MsgBox "Localizado!" Else MsgBox "Código não localizado! ", vbExclamation, "Pesquisando por código" End If End If
dsmn
|
|
|
andre
|
DIVINÓPOLIS MG - BRASIL
|
|
Postada em 09/06/2006 15:29 hs
tive que fazer algumas modificaçoes para funcionar (tava gerando erro), mas continua gerando erro. Veja se as modificaçoes alterou no resultado: Dim criterio As String Dim Rs As Recordset Dim base As Recordset criterio = InputBox$("Código a ser pesquisado: ", "Pesquisando por código") If criterio <> Empty Then Data1.RecordSource = ("Select * from Produto where (DESCR)>='" & criterio & "'") If Data1.Recordset.RecordCount <> 0 Then Data1.RecordSource = "Select * from Produto where (DESCR)>='" & criterio & "'" Data1.Refresh MsgBox "Localizado!" Else MsgBox "Código não localizado! ", vbExclamation, "Pesquisando por código" End If End If
|
|
|