CONSULTAR TRES CAMPOS EM UMA SQL DANDO ERRO

MASTER2020 11/07/2015 09:58:58
#448686
Pessoal bom dia fiquei um bom tempo longe da programacao, comecei a desenvolver para relembrar um pouco, fiz uma sql que esta me deixcando de cabelo branco, na hora deconsultar ela da erro que o objeto esta aberto, no primeiro recordset que abro ex deixo ele como open
tb informa o erro setando o contrario, segue o codigo.

Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset

------------------------------------------modulo
Private Sub Conecta()
On Error GoTo ErroConecta
Desconecta
Set cnn = New ADODB.Connection
cnn.ConnectionString = [Ô]Provider = Microsoft.jet.OLEDB.4.0; Data Source = [Ô] & App.Path & [Ô]\sis.mdb[Ô]
cnn.Open
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open [Ô]SELECT * FROM bdcli ORDER BY clinome[Ô], cnn, adOpenDynamic, adLockOptimistic
Exit Sub
ErroConecta:
MsgBox [Ô]Erro ao Conectar com o Banco de Dados:[Ô] & vbCrLf & vbCrLf & [Ô]Erro: [Ô] & Err.Number & vbCrLf & [Ô]Descrição: [Ô] & Err.Description, vbCritical, [Ô]Atenção[Ô]
End
End Sub
-------------------------------------------------------------------------------------------------------

Private Sub cmdpesq_Click()
If cmdpesq.Caption = [Ô]Normal[Ô] Then [ô]Se o botão estiver com o texto: [Ô]Normal[Ô]
[ô] rs.Close [ô]Fecha a conexão
rs.Open [Ô]select * from bdcli [Ô], cnn [ô]Abre a tabela novamente (Usando SQL)
cmdpesq.Caption = [Ô]Buscar[Ô] [ô]O texto do Botão muda para: [Ô]Buscar[Ô]
Else [ô]Senão
resposta = InputBox([Ô]Informe o Nome do Cliente, ou telefones a localizar [Ô], [Ô]Localizar[Ô]) [ô]Abre uma InputBox
[ô] rs.Close [ô]Fecha a Tabela
rs.Open [Ô]select * from bdcli where clinome and clifone1 and clifone2 and clicelular like [ô]%[Ô] & resposta & [Ô]%[ô][Ô], cnn [ô]Abre a tabela e procura a palavra digitada no campo ID
If rs.EOF Then
MsgBox [Ô]Cliente nao encontrado: [Ô] & resposta
rs.Close
rs.Open [Ô]select * from bdcli [Ô], cnn
Else
cmdpesq.Caption = [Ô]Normal[Ô]
End If
End If
Carrega
rs.Close
End Sub


Desde ja agradeco mais uma vez a ajuda do amigos
KERPLUNK 11/07/2015 18:12:10
#448695
Resposta escolhida
Rs está dimensionado publicamente, certo? Pois é, essa é uma péssima prática. Crie os objetos(Dim rs as...) em cada procedimento e não como um objeto público acessível em vários lugares...
Tópico encerrado , respostas não são mais permitidas