CONSULTA SQL, EM BANCO DADOS .DBF
Galera, to com um probleminha ai...
Estou tentando realizar uma consulta SQL em um banco de dados .dbf
utilizando o componente ADODC... preciso que essa minha consulta seja montada em um grid, no meu caso é um bd de ruas, então no meu grid eu terei a coluna "Rua", "N.º"
eu vou colar o cod abaixo da funcão "Montarlista" pra vcs verem o que tem de errado:
Private Sub MontarLista()
Dim rs As New ADODB.Recordset 'aqui eu não sei se eu realmente declaro essa val.
Dim SQL As String
Dim Criterio As String
'montando grid
grdPesquisa.TextMatrix(0, 0) = "Ruas"
grdPesquisa.TextMatrix(0, 1) = "Número"
Criterio = Chr$(39) & txtDadosPesquisa & "%" & Chr(39)
SQL = "SELECT NumRua, NomeRua FROM TabRuas where TabRuas.NomeRua Like " & Criterio & " ORDER BY NomeRua"
On Error Resume Next
With rs
'aqui eu declaro o componente
.Open SQL, Adodc1, adOpenForwardOnly, adLockReadOnly
If .EOF Then
MsgBox "Registro não encontrado", vbExclamation, "Atenção"
'eu já declarei essa função LimpaGrid aqui embaixo
Limpa
grdPesquisa.TextMatrix(1, 0) = ""
grdPesquisa.TextMatrix(1, 1) = ""
grdPesquisa.TextMatrix(1, 2) = ""
Else
Limpa
Do Until .EOF
'aqui eu monto a pesquisa no meu grid
grdPesquisa.AddItem rs(0) & vbTab & rs(1) & vbTab & rs(2)
.MoveNext
Loop
grdPesquisa.RemoveItem 1
End If
.Close
End With
End Sub
Então galera, o que tem de errado no codigo?
eu configurei meu adodc certinho utilizando um provedor que eu criei com suporte a versão DBaseIII, que é nativo a banco de dados em formato dbf,
e no meu componente eu declaro meu provedor, chamo as tabelas também corretamente...
é isso, alguém me da um help ai galera???
Abraçoss!!!
Amigo, aqui está errado!!
Vc só retorna dois campos no seu Recordset, e tem 3 aànessa linha, vai dar "Subscript Out of Range", só que vc não enxerga este erro pelo "On error Resume Next" que colocou lá em cima.
Tente assim:
[c]'aqui eu monto a pesquisa no meu grid
grdPesquisa.AddItem rs(0) & vbTab & rs(1)c]
'aqui eu monto a pesquisa no meu grid
grdPesquisa.AddItem rs(0) & vbTab & rs(1) & vbTab & rs(2)
Vc só retorna dois campos no seu Recordset, e tem 3 aànessa linha, vai dar "Subscript Out of Range", só que vc não enxerga este erro pelo "On error Resume Next" que colocou lá em cima.
Tente assim:
[c]'aqui eu monto a pesquisa no meu grid
grdPesquisa.AddItem rs(0) & vbTab & rs(1)c]
Bom, isso é apenas 1 dos erros do código,
porém ele ainda emite a msg de "Registro não encontrado" Respectivamente decladada!!!
porém ele ainda emite a msg de "Registro não encontrado" Respectivamente decladada!!!
Amigo, tira o "On Error Resume Next" do seu código, ve a linha que ele dá o erro, e qual o erro...
Eu creio que não está conseguindo abrir o recordset, por algum problema de conexão do Adodc1, mais pra ter certeza do que é, e de como arrumar, só sabendo a linha e o erro que ele dá...
Eu creio que não está conseguindo abrir o recordset, por algum problema de conexão do Adodc1, mais pra ter certeza do que é, e de como arrumar, só sabendo a linha e o erro que ele dá...
deveria ter feito isso antes,
removi o "On error resume next"
então ele diz, "Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito"
e ele aponta para a seguinte linha
.Open SQL, Adodc1, adOpenForwardOnly, adLockReadOnly
acho que é algum pau no meu adodc1...
blááá!!! =/
removi o "On error resume next"
então ele diz, "Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito"
e ele aponta para a seguinte linha
.Open SQL, Adodc1, adOpenForwardOnly, adLockReadOnly
acho que é algum pau no meu adodc1...
blááá!!! =/
Tópico encerrado , respostas não são mais permitidas