Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal estou com problemas na consulta.
/applications/core/interface/imageproxy/imageproxy.php?img=https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-ash3/534472_462621417114210_1346678210_n.jpg&key=21572f54d69bac02e001e10ddfc9b3f1775de887a1fbed6e1f0196b37bfe404b" alt="534472_462621417114210_1346678210_n.jpg" />
Tenho uma GridData conectada a uma ADODC juntamente com os campos, conforme mostra ai fiz uma consulta pelo nome de cidade Farroupilha. A consulta ocorreu normalmente, assim como se eu fizer consulta por nome ou CPF ocorre tudo certo como quero.
Porem se coloco um nome que não esta no banco de dados vem a MSG correta que coloquei de que dados não existem. Mas quando vou realizar uma nova consulta, mesmo eu digitando nos campo, vem a informação de como se eu não tivesse digitado nada no campo. Penso que isso ocorre por conta da pesquisa anterior não ter achado nada e dai ela não reconhece eu estar fazendo uma nova pesquisa.
Gostaria de saber se tem como da algum tipo de reset nas pesquisas que não acham informação para poder realizar uma nova consulta.
Caso seja problemas no código ai esta eles:
Public Sub AbilitaBotaoConsulta()
frmConsulta.cmdConsultar.Enabled = False
frmConsulta.cmdOrdem.Enabled = True
frmConsulta.cmdNova.Enabled = True
frmConsulta.cmdProximo.Enabled = True
frmConsulta.cmdAnderior.Enabled = True
frmConsulta.txtCliente.Enabled = False
frmConsulta.txtCidade.Enabled = False
frmConsulta.txtCPF.Enabled = False
End Sub
Public Sub ConsultaCPF()
Dim CPF2 As String
CPF2 = frmConsulta.txtCPF
SQL = "Select * from CadClientes where CPF = '" & CPF2 & "'"
frmConsulta.Dados.CommandType = adCmdText
frmConsulta.Dados.RecordSource = SQL
frmConsulta.Dados.Refresh
Tabela.Open SQL, conexao, adOpenForwardOnly, adLockReadOnly
If Not Tabela.EOF Then
AbilitaBotaoConsulta
Else
MsgBox "Não existe cadastro com essa informação!", vbInformation, "Consulta"
End IfPublic Sub ConsultaNome()
Dim Cliente2 As String
Cliente2 = frmConsulta.txtCliente
SQL = "Select * from CadClientes where Cliente = '" & Cliente2 & "'"
frmConsulta.Dados.CommandType = adCmdText
frmConsulta.Dados.RecordSource = SQL
frmConsulta.Dados.Refresh
Tabela.Open SQL, conexao, adOpenForwardOnly, adLockReadOnly
If Not Tabela.EOF Then
AbilitaBotaoConsulta
Else
MsgBox "Não existe cadastro com essa informação!", vbInformation, "Consulta"
End IfPublic Sub ConsultaCidade()
Dim Cidade2 As String
Cidade2 = frmConsulta.txtCidade
SQL = "Select * from CadClientes where Cidade = '" & Cidade2 & "'"
frmConsulta.Dados.CommandType = adCmdText
frmConsulta.Dados.RecordSource = SQL
frmConsulta.Dados.Refresh
Tabela.Open SQL, conexao, adOpenForwardOnly, adLockReadOnly
If Not Tabela.EOF Then
AbilitaBotaoConsulta
Else
MsgBox "Não existe cadastro com essa informação!", vbInformation, "Consulta"
End IfPrivate Sub cmdConsultar_Click() 'Botão para realizar a consulta'
Abre_Conexao
If txtCPF.Text <> "" Then
ConsultaCPF
ElseIf txtCliente.Text <> "" Then
ConsultaNome
ElseIf txtCidade.Text <> "" Then
ConsultaCidade
Else
MsgBox "Informe os dados para a consulta!", vbInformation, "Consulta"
End If
End Sub
Private Sub cmdNova_Click() 'Botão para realizar uma nova consulta'
LimpaConsulta
txtCliente.Enabled = True
txtCidade.Enabled = True
txtCPF.Enabled = True
cmdConsultar.Enabled = True
cmdOrdem.Enabled = False
cmdNova.Enabled = False
cmdAnderior.Enabled = False
frmConsulta.cmdProximo.Enabled = False
End Sub
Seria colocar assim?
frmConsulta.Dados.RecordSource = ""
frmConsulta.Dados.Recordset = ""
Se for o VB não aceitou o formato do código com o sinal de =
Tente usar ".clear"
Khaos não seu certo também. O VB não ta reconhecendo esse comando depois do Recordset e RecordSource.
Mas consegui do meu jeito aqui. Não sei se da pra melhorar.
Fiz uma Sub no módulo, para quando a consultar for de um cadastro que não exista, automaticamente ja gere uma nova consulta pegando todos os dados da tabela, com a única intensão de anular aquela consulta nula anterior, porem limpando os campos do formulário, dessa maneira consegui gerar novas consultar sem problemas nenhum.
Public Sub ResetConculta()
SQL = "Select * from CadClientes"
frmConsulta.Dados.CommandType = adCmdText
frmConsulta.Dados.RecordSource = SQL
frmConsulta.Dados.Refresh
LimpaConsultaComo ficou no código da consulta.
Public Sub ConsultaNome()
Dim Cliente2 As String
Cliente2 = frmConsulta.txtCliente
SQL = "Select * from CadClientes where Cliente = '" & Cliente2 & "'"
frmConsulta.Dados.CommandType = adCmdText
frmConsulta.Dados.RecordSource = SQL
frmConsulta.Dados.Refresh
Tabela.Open SQL, conexao, adOpenForwardOnly, adLockReadOnly
If Not Tabela.EOF Then
AbilitaBotaoConsulta
frmConsulta.txtCliente.Enabled = False
frmConsulta.txtCidade.Enabled = False
frmConsulta.txtCPF.Enabled = False
Else
MsgBox "Não existe cadastro com essa informação!", vbInformation, "Consulta"
ResetConculta
End IfBom dia
Vendo sua duvida vi que voce precisa entender o significado de todas as palavras de uma linha do ADODC.
Existe um livro QUASE COMPLETO sobre ADODC E ACREDITE a cabeça esquenta mesmo!!!.
A solução que voce encontrou podera fazer seu programa ficar muito lento quando estiver com a base de dados muito grande.
Entre em contato para melhores esclarecimentos.
Estive varias vezes em PA pois programei o venda que rodou nos postos de gasolina da refinaria que existe aí.
Outra coisa: voce deve usar dados imaginarios para postar sua duvida na internet. Os seus são reais!!!
Estou com um problema nos Textbox.
Conectei elas ao objeto ADODC através do DataSource e do DataField.
Windows 8 , vista e o 7 ele funciona certinho.
Mas fui instalar o programa no Windows acabou que as textbox não carregam os informações que são para puxar do banco de dados. O dataGrid funciona bem. Mas o textbox tem esse problema.
Alguém sabe o que pode ser isso?
Em qual windows?
Opa esqueci de por.
Então é o Windows XP.
Fui ver aqui na minha máquina que é Windows 8, onde criei o programa, o sistema é 64 bits.
Já no Windows XP é 32.
Não sei se isso faz alguma diferença. Mas enfim esse é o único problema para rodar perfeitamente o programa. Ele não acusa erro nenhum. Simplesmente não mostra os dados nas Textbox que estão conectadas ao controlador ADODC.
Existem algumas diferenças sim cara, veja se na hora de publicação você está publicando para 32 e 64
No final de cada consulta, limpe o datasource, ou o recordset que você está usando, veja com breakpoints se ele passa por todas as instruções.