COMO FAZER UMA PESQUISA?
Em um programa que estou fazendo eu tenho um txtCodigo = codigo do cadastro , como eu posso fazer uma pesquisa por exemplo eu tenho 1000 cadastros no Banco de Dados ai eu preciso achar a Pessoa Cadastrada ou Produto Cadastrado Numero 93 , ai eu gostaria de3 ter um campo tipo de um txtbox para colocar esse codigo e.. os outros campos aparecer os dados do Cadastrado ...
alguem pode me ajudar?
vlws
alguem pode me ajudar?
vlws
ALGUMA COISA PARECIDA COM ISSO?
VARIAVEL RECORDSET = RD
CRIEI UM INDICE DE CÓ“DIGO NA SUA TABELA
APÓ“S CRIAR O INDICE
RD.INDEX = "nome do indice"
RD.SEEK "=",TXTCODIGO
IF NOT RD.NOMACTH THEN
MOSTRA
ELSE
MsgBox "Registro não encontrado", vbCritical, "Atenção"
End If
ACHO QUE DEVE SER ISSO
VARIAVEL RECORDSET = RD
CRIEI UM INDICE DE CÓ“DIGO NA SUA TABELA
APÓ“S CRIAR O INDICE
RD.INDEX = "nome do indice"
RD.SEEK "=",TXTCODIGO
IF NOT RD.NOMACTH THEN
MOSTRA
ELSE
MsgBox "Registro não encontrado", vbCritical, "Atenção"
End If
ACHO QUE DEVE SER ISSO
rs.Find "seu_campo_no_db=" & text1.text
If rs.EOF Then
msgbox "Naum Achou"
Else
msgBox "Codigo já Cadastrado !", vbCritical
End If
If rs.EOF Then
msgbox "Naum Achou"
Else
msgBox "Codigo já Cadastrado !", vbCritical
End If
Tente desta maneira :
Private Sub Codigo_LostFocus()
If Codigo <> "" Then
Dim WS As Workspace
Dim query As String
Dim db As Database
Set WS = DBEngine.Workspaces(0)
Set db = WS.OpenDatabase(App.Path & "\BANCO.Mdb", False, False)
query = "Select * From TABELA where Codigo = '" & Codigo & "'"
Set dyn = db.OpenRecordset(query)
If Not dyn.EOF Then
Codigo = dyn("Codigo") & ""
Campo1 = dyn("Campo1") & ""
Campo2 = dyn("Campo2") & ""
'.......E assim por diante...........
db.Close
End If
End Sub
OU ENTÃO ESTA...
NO MÓ“DULO, CRIE ESTAS SUB's (Código, Nome e Telefone são apenas exemplos de campos, ok ???)
Sub CarregaCampo()
If Len(rscadastro("Código")) > 0 Then Screen.ActiveForm.codtxt.Text = rscadastro("Código")
If Len(rscadastro("Nome")) > 0 Then Screen.ActiveForm.nometxt.Text = rscadastro("Nome")
If Len(rscadastro("Telefone")) > 0 Then Screen.ActiveForm.fonetxt.Text = rscadastro("Telefone")
End Sub
_____________________________________________________________________________
Sub MostrarCampo()
Screen.ActiveForm.lblcod.Visible = True
Screen.ActiveForm.nomelbl.Visible = True
Screen.ActiveForm.fonelbl.Visible = True
Screen.ActiveForm.codtxt.Visible = True
Screen.ActiveForm.nometxt.Visible = True
Screen.ActiveForm.fonetxt.Visible = True
End Sub
____________________________________________________________________________
____________________________________________________________________________
Agora, sua pesquisa no Form (exemplificando com um ENTER no campo Código)...
Private Sub codtxt_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then ' ENTER pressionado
rscadastro.Index = "Código" 'O campo Código é um Ãndice em sua tabela
rscadastro.Seek "=", codtxt.Text
If rscadastro.NoMatch Then
MsgBox "CÓ“DIGO não existente !!!"
codtxt.Text = ""
Else
CarregaCampo ' Sub do MÓ“DULO
MostrarCampo ' Sub do MÓ“DULO
End If
End If
End Sub
ACHO QUE ISTO RESOLVE...
Abraço e T+
Private Sub Codigo_LostFocus()
If Codigo <> "" Then
Dim WS As Workspace
Dim query As String
Dim db As Database
Set WS = DBEngine.Workspaces(0)
Set db = WS.OpenDatabase(App.Path & "\BANCO.Mdb", False, False)
query = "Select * From TABELA where Codigo = '" & Codigo & "'"
Set dyn = db.OpenRecordset(query)
If Not dyn.EOF Then
Codigo = dyn("Codigo") & ""
Campo1 = dyn("Campo1") & ""
Campo2 = dyn("Campo2") & ""
'.......E assim por diante...........
db.Close
End If
End Sub
OU ENTÃO ESTA...
NO MÓ“DULO, CRIE ESTAS SUB's (Código, Nome e Telefone são apenas exemplos de campos, ok ???)
Sub CarregaCampo()
If Len(rscadastro("Código")) > 0 Then Screen.ActiveForm.codtxt.Text = rscadastro("Código")
If Len(rscadastro("Nome")) > 0 Then Screen.ActiveForm.nometxt.Text = rscadastro("Nome")
If Len(rscadastro("Telefone")) > 0 Then Screen.ActiveForm.fonetxt.Text = rscadastro("Telefone")
End Sub
_____________________________________________________________________________
Sub MostrarCampo()
Screen.ActiveForm.lblcod.Visible = True
Screen.ActiveForm.nomelbl.Visible = True
Screen.ActiveForm.fonelbl.Visible = True
Screen.ActiveForm.codtxt.Visible = True
Screen.ActiveForm.nometxt.Visible = True
Screen.ActiveForm.fonetxt.Visible = True
End Sub
____________________________________________________________________________
____________________________________________________________________________
Agora, sua pesquisa no Form (exemplificando com um ENTER no campo Código)...
Private Sub codtxt_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then ' ENTER pressionado
rscadastro.Index = "Código" 'O campo Código é um Ãndice em sua tabela
rscadastro.Seek "=", codtxt.Text
If rscadastro.NoMatch Then
MsgBox "CÓ“DIGO não existente !!!"
codtxt.Text = ""
Else
CarregaCampo ' Sub do MÓ“DULO
MostrarCampo ' Sub do MÓ“DULO
End If
End If
End Sub
ACHO QUE ISTO RESOLVE...
Abraço e T+
de uma estudada nestes codigos.
Private Sub cmdConsultar_Click()
CONSULTALOCAÇÃO.Show
End Sub
Private Sub DBCombo1_Change()
On Error GoTo Corrige_Erro
With Data1.Recordset
.MoveFirst
.FindFirst ("CODIGO=" & DBCombo1.Text)
Text3 = !NOME
Text6 = !RG
Text2 = !CPF
Text8 = !Endereco
Text9 = !Bairro
Text7 = !CIDADE
Text10 = !CEP
Text5 = !TELEFONE
Text4 = !CELULAR
Text3 = !NOME
Text4 = !CELULAR
End With
sai:
Exit Sub
Corrige_Erro:
'Text3 = "Não Encontrado"
Resume sai
End Sub
Private Sub DBCombo2_Change()
On Error GoTo Corrige_Erro
With Data3.Recordset
.MoveFirst
.FindFirst ("CODIGO=" & DBCombo2.Text)
Text1 = !TITULO
End With
sai:
Exit Sub
Corrige_Erro:
'Text3 = "Não Encontrado"
Resume sai
End Sub
Private Sub Command1_Click()
Dim procura As String
procura = InputBox("Digite o Fornecedor a ser localizado:")
CADASTROLOCAÇÃO.Data2.Recordset.FindFirst "NOME Like'" & procura & "'"
If CADASTROLOCAÇÃO.Data2.Recordset.NoMatch = True Then
MsgBox "Esta locação não foi encontrada!!!"
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys ("{tab}")
KeyAscii = 0
End If
End Sub
Private Sub cmdAlterar_Click()
cmdAlterar.Enabled = False
Frame1.Enabled = True
cmdGravar.Enabled = True
cmdIncluir.Enabled = False
cmdApagar.Enabled = False
cmdConsultar.Enabled = False
Data2.Recordset.Edit
End Sub
Private Sub cmdApagar_Click()
If MsgBox("Tem certeza que deseja apagar este registro?", vbYesNo, "Apagar Registro") = vbYes Then
Data2.Recordset.Delete
DBGrid1.Refresh
Data2.Refresh
End If
End Sub
Private Sub cmdGravar_Click()
Frame1.Enabled = False
On Error GoTo mensagem
cmdIncluir.Enabled = True
cmdApagar.Enabled = True
cmdAlterar.Enabled = True
cmdConsultar.Enabled = True
cmdGravar.Enabled = False
Data2.Recordset.Update
Data2.Refresh
DBGrid1.Refresh
Data2.Refresh
mensagem:
Exit Sub
End Sub
Private Sub cmdIncluir_Click()
Frame1.Enabled = True
cmdIncluir.Enabled = False
cmdIncluir.Enabled = False
cmdApagar.Enabled = False
cmdGravar.Enabled = True
cmdAlterar.Enabled = False
cmdConsultar.Enabled = False
Data2.Recordset.AddNew
End Sub
Private Sub cmdSair_Click()
CADASTROLOCAÇÃO.Hide
End Sub
Private Sub Form_Load()
'DBCombo1.ListField = 1
DBCombo1.Text = 1
DBCombo1.Refresh
'Data1.Recordset.MoveFirst
'Data2.Recordset.MoveFirst
End Sub
veja outro:
Private Sub cmdAlterar_Click()
cmdAlterar.Enabled = False
Frame1.Enabled = True
cmdIncluir.Enabled = False
cmdApagar.Enabled = False
cmdConsultar.Enabled = False
cmdGravar.Enabled = True
DadosClientes.Recordset.Edit
End Sub
Private Sub cmdApagar_Click()
If MsgBox("Tem certeza que deseja apagar este registro?", vbYesNo, "Apagar Registro") = vbYes Then
DadosClientes.Recordset.Delete
DBGrid1.Refresh
DadosClientes.Refresh
End If
End Sub
Private Sub cmdConsultar_Click()
CONSULTACLIENTE.Show
End Sub
Private Sub cmdGravar_Click()
Frame1.Enabled = False
On Error GoTo mensagem
cmdIncluir.Enabled = True
cmdApagar.Enabled = True
cmdAlterar.Enabled = True
cmdConsultar.Enabled = True
cmdGravar.Enabled = False
DadosClientes.Recordset.Update
ms.Refresh
mensagem:
Exit Sub
ms.Refresh
End Sub
Private Sub Command1_Click()
Dim procura As String
procura = InputBox("Digite o Cliente a ser localizado:")
frmClientes.Data1.Recordset.FindFirst "nome Like'" & procura & "'"
If frmClientes.Data1.Recordset.NoMatch = True Then
MsgBox "Este Cliente não foi encontrada!!!"
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys ("{tab}")
KeyAscii = 0
End If
End Sub
Private Sub cmdIncluir_Click()
Frame1.Enabled = True
cmdIncluir.Enabled = False
cmdIncluir.Enabled = False
cmdApagar.Enabled = False
cmdGravar.Enabled = True
cmdAlterar.Enabled = False
cmdConsultar.Enabled = False
DadosClientes.Recordset.AddNew
End Sub
Private Sub cmdSair_Click()
frmClientes.Hide
End Sub
Private Sub ms_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
ms.Refresh
End Sub
Private Sub Picture1_Click()
DIALOGO.ShowOpen
Picture1.Picture = LoadPicture(DIALOGO.FileName)
End Sub
Private Sub txtOrcamento_Change()
Data1.RecordSource = "Select * from [locação] where [CODIGO DO CLIENTE] like '*" & txtOrcamento.Text & "*'"
Data1.Refresh
End Sub
não esqueça de finalizar o topico.
Private Sub cmdConsultar_Click()
CONSULTALOCAÇÃO.Show
End Sub
Private Sub DBCombo1_Change()
On Error GoTo Corrige_Erro
With Data1.Recordset
.MoveFirst
.FindFirst ("CODIGO=" & DBCombo1.Text)
Text3 = !NOME
Text6 = !RG
Text2 = !CPF
Text8 = !Endereco
Text9 = !Bairro
Text7 = !CIDADE
Text10 = !CEP
Text5 = !TELEFONE
Text4 = !CELULAR
Text3 = !NOME
Text4 = !CELULAR
End With
sai:
Exit Sub
Corrige_Erro:
'Text3 = "Não Encontrado"
Resume sai
End Sub
Private Sub DBCombo2_Change()
On Error GoTo Corrige_Erro
With Data3.Recordset
.MoveFirst
.FindFirst ("CODIGO=" & DBCombo2.Text)
Text1 = !TITULO
End With
sai:
Exit Sub
Corrige_Erro:
'Text3 = "Não Encontrado"
Resume sai
End Sub
Private Sub Command1_Click()
Dim procura As String
procura = InputBox("Digite o Fornecedor a ser localizado:")
CADASTROLOCAÇÃO.Data2.Recordset.FindFirst "NOME Like'" & procura & "'"
If CADASTROLOCAÇÃO.Data2.Recordset.NoMatch = True Then
MsgBox "Esta locação não foi encontrada!!!"
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys ("{tab}")
KeyAscii = 0
End If
End Sub
Private Sub cmdAlterar_Click()
cmdAlterar.Enabled = False
Frame1.Enabled = True
cmdGravar.Enabled = True
cmdIncluir.Enabled = False
cmdApagar.Enabled = False
cmdConsultar.Enabled = False
Data2.Recordset.Edit
End Sub
Private Sub cmdApagar_Click()
If MsgBox("Tem certeza que deseja apagar este registro?", vbYesNo, "Apagar Registro") = vbYes Then
Data2.Recordset.Delete
DBGrid1.Refresh
Data2.Refresh
End If
End Sub
Private Sub cmdGravar_Click()
Frame1.Enabled = False
On Error GoTo mensagem
cmdIncluir.Enabled = True
cmdApagar.Enabled = True
cmdAlterar.Enabled = True
cmdConsultar.Enabled = True
cmdGravar.Enabled = False
Data2.Recordset.Update
Data2.Refresh
DBGrid1.Refresh
Data2.Refresh
mensagem:
Exit Sub
End Sub
Private Sub cmdIncluir_Click()
Frame1.Enabled = True
cmdIncluir.Enabled = False
cmdIncluir.Enabled = False
cmdApagar.Enabled = False
cmdGravar.Enabled = True
cmdAlterar.Enabled = False
cmdConsultar.Enabled = False
Data2.Recordset.AddNew
End Sub
Private Sub cmdSair_Click()
CADASTROLOCAÇÃO.Hide
End Sub
Private Sub Form_Load()
'DBCombo1.ListField = 1
DBCombo1.Text = 1
DBCombo1.Refresh
'Data1.Recordset.MoveFirst
'Data2.Recordset.MoveFirst
End Sub
veja outro:
Private Sub cmdAlterar_Click()
cmdAlterar.Enabled = False
Frame1.Enabled = True
cmdIncluir.Enabled = False
cmdApagar.Enabled = False
cmdConsultar.Enabled = False
cmdGravar.Enabled = True
DadosClientes.Recordset.Edit
End Sub
Private Sub cmdApagar_Click()
If MsgBox("Tem certeza que deseja apagar este registro?", vbYesNo, "Apagar Registro") = vbYes Then
DadosClientes.Recordset.Delete
DBGrid1.Refresh
DadosClientes.Refresh
End If
End Sub
Private Sub cmdConsultar_Click()
CONSULTACLIENTE.Show
End Sub
Private Sub cmdGravar_Click()
Frame1.Enabled = False
On Error GoTo mensagem
cmdIncluir.Enabled = True
cmdApagar.Enabled = True
cmdAlterar.Enabled = True
cmdConsultar.Enabled = True
cmdGravar.Enabled = False
DadosClientes.Recordset.Update
ms.Refresh
mensagem:
Exit Sub
ms.Refresh
End Sub
Private Sub Command1_Click()
Dim procura As String
procura = InputBox("Digite o Cliente a ser localizado:")
frmClientes.Data1.Recordset.FindFirst "nome Like'" & procura & "'"
If frmClientes.Data1.Recordset.NoMatch = True Then
MsgBox "Este Cliente não foi encontrada!!!"
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys ("{tab}")
KeyAscii = 0
End If
End Sub
Private Sub cmdIncluir_Click()
Frame1.Enabled = True
cmdIncluir.Enabled = False
cmdIncluir.Enabled = False
cmdApagar.Enabled = False
cmdGravar.Enabled = True
cmdAlterar.Enabled = False
cmdConsultar.Enabled = False
DadosClientes.Recordset.AddNew
End Sub
Private Sub cmdSair_Click()
frmClientes.Hide
End Sub
Private Sub ms_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
ms.Refresh
End Sub
Private Sub Picture1_Click()
DIALOGO.ShowOpen
Picture1.Picture = LoadPicture(DIALOGO.FileName)
End Sub
Private Sub txtOrcamento_Change()
Data1.RecordSource = "Select * from [locação] where [CODIGO DO CLIENTE] like '*" & txtOrcamento.Text & "*'"
Data1.Refresh
End Sub
não esqueça de finalizar o topico.
Crie um botão e dê a ele o nome de pesquisa.
Depois insira o código abaixo no evento click:
O código está baseado em uma conexão ADO. Veja o exemplo da abertura do BD:
Espero ter te ajudado CESARMESQUITA.
Duvida sanada=tópico encerrado
Depois insira o código abaixo no evento click:
Private Sub Pesquisar_Click()
CtrAlt = "ABRIR"
Dim Num As String
Num = InputBox("Informe o número da OP que deseja visualizar.", "Abrir OP")
If Not IsNumeric(Num) And Trim(Num) <> Empty Then MsgBox "Informe apenas valores numéricos.", vbCritical, Me.Caption: Exit Sub
If Trim(Num) = Empty Then Exit Sub
'Abra o BD aqui caso esteja fechado
Set TB = New ADODB.Recordset
TB.Open "Select * From Tabela where campocódigo=" & ((CInt(Num)) & ""), BD, adOpenStatic, adLockOptimistic
If TB.EOF Then
MsgBox "Este código não foi localizado.", vbInformation, Me.Caption
Set TB=Nothing
Exit Sub
Else
Txtnome=TB!CampoNomedaTabela
TxtSexo=TB!CampoSexodaTabela
End If
Set TB=Nothing
End Sub
O código está baseado em uma conexão ADO. Veja o exemplo da abertura do BD:
Set BD = New ADODB.Connection
BD.CursorLocation = adUseClient
BD.ConnectionString = "PROVIDER=Microsoft.Jet.Oledb.4.0; Persist Security info=false; Data source=C:\SeuBanco.mdb"
BD.Open
'Para fechar o banco é simples:
Set BD=Nothing
Espero ter te ajudado CESARMESQUITA.
Duvida sanada=tópico encerrado
Tópico encerrado , respostas não são mais permitidas