|
Postada em 02/05/2004 01:21 hs
Para efetuar uma consulta, com o form em que será mostrado os registros aberto, eu chamo um outro form onde seleciono informo os parâmetros da consulta. Quando não há registros para os parâmetros informados, estou fechando ambos os formulários, porque o conjunto de registros anteriormente mostrados foi mudado pela consulta atual, ou seja, se eu tentar mover entre registro, aparece a mensagem que é fim de arquivo. Como manter os registros anteriores, quando uma nova consulta não for satisfatória, ou seja, sem a necessidade de fechar o form principal? Private Sub cmdLocalizar_Click() rsNS.Find "CodCidade = " & txtConsulta, , , 1 '1 - indica a procura a partir do primeiro registro If Not rsNS.EOF Then 'se encontrou rsNS.Filter = " CodCidade = " & txtConsulta Else If MsgBox("Não há NSs para a consulta solicitada!" & Chr(13) & "Deseja efetuar nova Consulta?", vbYesNo + vbQuestion, "Atenção") = vbYes Then Exit Sub Else Unload frmNS Unload frm_Localizar End End If End If Unload frm_Localizar End Sub
|
|
|
|
|
Postada em 02/05/2004 01:37 hs
em vez de vc usar o find, pq vc não abre um novo recordset, exemplo Private Sub cmdLocalizar_Click() Dim rsProcura as Recordset Dim mVar as String mVar = "Select * from clientes where cidade like '" & txtConsulta & "'" Set rsProcura = db.OpenRecordset(mVar,dbOpenSnapShot) If Not rsProcura.EOF Then 'se encontrou 'seu codigo para o registro encontrado Else If MsgBox("Não há NSs para a consulta solicitada!" & Chr(13) & "Deseja efetuar nova Consulta?", vbYesNo + vbQuestion, "Atenção") = vbNo Then Unload frmNS End End If End If rsProcura.Close Unload frm_Localizar End Sub
Roberto
|
|
|
|
Postada em 02/05/2004 01:49 hs
Roberto Estou usando para abrir o formulário principal: Set rsNS = CreateObject("ADODB.Recordset") rsNS.Open "SELECT * FROM T_NS", BD, adOpenDynamic, adLockOptimistic
Com a sua sugestão gera o seguinte erro: "Os argumentos estão incorretos, estão fora do intervalo aceitável ou estão em conflito"
|
|
|
|
Postada em 02/05/2004 01:57 hs
hmmm, vc está usando ADO, o exemplo q te passei está DAO Set rsProcura = CreateObject("ADODB.Recordset") rsProcura.Open mVar, BD, adOpenDynamic, adLockOptimistic mude a abertura do recordset para o que está acima Roberto
|
|
|
|
Postada em 02/05/2004 02:20 hs
Ok! Roberto Fiz uma pequena alteração Set rsProcura = CreateObject("ADODB.Recordset") mVar = "Select * from T_NS where Codcidade like " & txtEquipamento rsProcura.Open mVar, BD, adOpenDynamic, adLockOptimistic If Not rsProcura.EOF Then 'se encontrou 'seu codigo para o registro encontrado rsNS.Filter = " CodCidade = " & txtEquipamento Else If MsgBox("Não há NSs para a consulta solicitada!" & Chr(13) & "Deseja efetuar nova Consulta?", vbYesNo + vbQuestion, "Atenção") = vbNo Then Unload frmNS End End If End If rsProcura.Close Unload frm_Localizar
|
|
|
|
Postada em 02/05/2004 02:53 hs
não, tá errado isso, pelo menos até onde eu vi se vc achou o registro, para que setar o outro recordset ? não é mais facil, utilizar o recordset atual ? Roberto
|
|
|
|