URGENTE AJUDA CONSULTA DE BANCO DE DADOS

CAIODEV 25/04/2013 16:11:14
#422507
eu estou com dificuldade para consultar um cpf em um banco de dados Access,eu usei a seguinte função:
Private Sub Procurar(ByVal Id As Integer)



Dim cn As New OleDb.OleDbConnection
cn.ConnectionString = [Ô]Provider=Microsoft.Jet.OleDb.4.0; Data Source=c:\dados\Estagiarios_contratados.mdb[Ô]
cn.Open()


Dim da As New OleDb.OleDbDataAdapter([Ô]SELECT * FROM TabEstagiarioContratado [Ô] & _
[Ô] WHERE Cpf=[Ô] & Id, cn)


Dim dt As New DataTable
da.Fill(dt)

If dt.Rows.Count > 0 Then
Me.txtContratadoNome.Text = dt.Rows(0).Item([Ô]Nome[Ô])
Me.txtContratadoCpf.Text = dt.Rows(0).Item([Ô]Cpf[Ô]) & [Ô][Ô]
Me.txtContratadoRg.Text = dt.Rows(0).Item([Ô]Rg[Ô]) & [Ô][Ô]
Me.txtContratadoEmail.Text = dt.Rows(0).Item([Ô]Email[Ô]) & [Ô][Ô]
Me.txtContratadoEmailReferencial.Text = dt.Rows(0).Item([Ô]Email_Referencial[Ô]) & [Ô][Ô]
Me.txtContratadoTelefone.Text = dt.Rows(0).Item([Ô]Telefone[Ô]) & [Ô][Ô]
Me.txtContratadoTelefoneReferencial.Text = dt.Rows(0).Item([Ô]Telefone_Referencial[Ô]) & [Ô][Ô]
Me.txtContratadoResponsavel.Text = dt.Rows(0).Item([Ô]Responsavel[Ô]) & [Ô][Ô]
Me.cboRegiaoEstuda.Text = dt.Rows(0).Item([Ô]Regiao_Estuda[Ô]) & [Ô][Ô]
Me.cboEscolaEstuda.Text = dt.Rows(0).Item([Ô]Escola_estuda[Ô]) & [Ô][Ô]
Me.cboRegiaoTrabalha.Text = dt.Rows(0).Item([Ô]Regiao_Trabalha[Ô]) & [Ô][Ô]
Me.cboEscolaTrabalha.Text = dt.Rows(0).Item([Ô]Escola_Trabalha[Ô]) & [Ô][Ô]
Me.cboContratadoTurno.Text = dt.Rows(0).Item([Ô]Turnos_estagio[Ô]) & [Ô][Ô]


Me.cmdContratadoLimpar.Enabled = False
Else
MsgBox([Ô]Registro não localizado[Ô])
End If

cn.Close()
CarregaDados()

End Sub

Private Sub cmdPesquisar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPesquisar.Click
If txtContratadoCpf.Text = String.Empty Then
MsgBox([Ô]Informe o CPF do aluno[Ô])
Else
Procurar(Me.txtContratadoCpf.Text)
End If
CarregaDados()
End Sub

Sou iniciante na linguagem me ajudem!!!!
SURI 25/04/2013 16:21:49
#422510
Amigo vc postou muito código junto sem dizer exactamente onde está o erro, mas notei alguns e pode ser que ajude nalguma coisa:
cláusula where cpf=[Ô]& id >>> O que é o id? uma variável declarada? Se id não for uma variável declarada, tipo uma string, ou um integer, não vai retornar nenhum dado.



Atente também as aspas ([Ô]& clausula &[Ô]) para números e ([ô] [Ô]& clausula &[Ô] [ô]) para string.

Boa sorte!



CAIODEV 25/04/2013 16:27:11
#422511
O Id é uma numeração automática que eu fiz pelo fato de que quando eu digito o cpf ele da um erro [Ô]Operação aritmética resultou em um estouro.[Ô],então a minha ideia foi incluir uma numeração automática no qual a consulta do cpf retornaria o Id!

A minha ideia era pesquisar diretamente pelo CPF do aluno porem o erro[Ô]Operação aritmética resultou em um estouro.[Ô] não me permitiu isso!

Me ajude por favor!!

Obrigado!
JABA 25/04/2013 16:55:27
#422512
Qual é o valor que voce está passando para o Me.txtContratadoCpf.Text como parametro do metodo Procurar(Me.txtContratadoCpf.Text) ?
CAIODEV 25/04/2013 17:00:26
#422513
Eu estava usandoo Byval Cpf as Char, porem eu ja tentei diversos parâmetros Double,Char,String,Integer,alguns apontam o erro [Ô]Operação aritmética resultou em um estouro[Ô],e outros apontam o erro [Ô]Tipo de dados incompatível na expressão de critério.[Ô].é ai que eu tentei incrementar o ID que é um valor [Ô]pequeno[Ô] e daria pra usar integer,mas tbm não consegui!
CAIODEV 25/04/2013 17:36:59
#422514
Eu gostaria de saber um código no qual eu pesquisasse um cpf e ele puxasse todas as informações do cadastro!.Pois julgo que esse esta totalmente errado!
RICART 25/04/2013 20:37:56
#422525
Você precisa saber qual o tipo de dados do campo do CPF. Geralmente esse campo é uma string. Neste caso a sua função não pode conter a variável ID como integer. Se for string, basta você mudar isso na função e mudar também a sql, colocando
haspas na variável que está na sql:
[Ô] WHERE Cpf=[ô][Ô] & Id &[Ô][ô], cn)


O resto vai depender de que a tabela realmente esteja com os campos da forma que vc está utilizando para preencher o formulário
ERINALDO 26/04/2013 08:43:38
#422535
Resposta escolhida
veja exemplo abaixo tente adaptar

codigo da net http://www.geocities.ws/edsondavidp/vbnet_ctrEstoque_2008_p5.html

Dim cn As New OleDbConnection
cn.ConnectionString = [Ô]Provider=Microsoft.Jet.oleDB.4.0;Data Source=[Ô] & sCaminho & [Ô]\Estoque.mdb;[Ô]
cn.Open()
Dim sSQL As String = [Ô]Select * From Produto Where Descricao Like [ô][Ô] & txtPesquisa.Text & [Ô]%[ô][Ô]
dsProduto = New DataSet()
daProduto = New OleDbDataAdapter(sSQL, cn)
daProduto.Fill(dsProduto, [Ô]Produto[Ô])
dtProduto = dsProduto.Tables([Ô]Produto[Ô])
dgvProduto.DataSource = dtProduto
cn.Close()


veja mais exemplos no site do Macoratti www.macoratti.net
CAIODEV 26/04/2013 13:41:48
#422566
Pessoal o Código de consulta funcionou!!! vejam como ficou:

Dim cn As New OleDb.OleDbConnection
cn.ConnectionString = [Ô]Provider=Microsoft.Jet.OleDb.4.0; Data Source=c:\dados\Estagiarios_contratados.mdb[Ô]
cn.Open()

Dim sSQL As String = [Ô]Select * From TabEstagiarioContratado Where Cpf Like [ô][Ô] & txtContratadoCpf.Text & [Ô]%[ô][Ô]



Dim Da = New OleDbDataAdapter(sSQL, cn)

Dim dt As New DataTable
Da.Fill(dt)

If dt.Rows.Count > 0 Then
Me.txtContratadoNome.Text = dt.Rows(0).Item([Ô]Nome[Ô])
Me.txtContratadoCpf.Text = dt.Rows(0).Item([Ô]Cpf[Ô]) & [Ô][Ô]
Me.txtContratadoRg.Text = dt.Rows(0).Item([Ô]Rg[Ô]) & [Ô][Ô]
Me.txtContratadoEmail.Text = dt.Rows(0).Item([Ô]Email[Ô]) & [Ô][Ô]
Me.txtContratadoEmailReferencial.Text = dt.Rows(0).Item([Ô]Email_Referencial[Ô]) & [Ô][Ô]
Me.txtContratadoTelefone.Text = dt.Rows(0).Item([Ô]Telefone[Ô]) & [Ô][Ô]
Me.txtContratadoTelefoneReferencial.Text = dt.Rows(0).Item([Ô]Telefone_Referencial[Ô]) & [Ô][Ô]
Me.txtContratadoResponsavel.Text = dt.Rows(0).Item([Ô]Responsavel[Ô]) & [Ô][Ô]
Me.cboRegiaoEstuda.Text = dt.Rows(0).Item([Ô]Regiao_Estuda[Ô]) & [Ô][Ô]
Me.cboEscolaEstuda.Text = dt.Rows(0).Item([Ô]Escola_estuda[Ô]) & [Ô][Ô]
Me.cboRegiaoTrabalha.Text = dt.Rows(0).Item([Ô]Regiao_Trabalha[Ô]) & [Ô][Ô]
Me.cboEscolaTrabalha.Text = dt.Rows(0).Item([Ô]Escola_Trabalha[Ô]) & [Ô][Ô]
Me.cboContratadoTurno.Text = dt.Rows(0).Item([Ô]Turnos_estagio[Ô]) & [Ô][Ô]



Else
MsgBox([Ô]Registro não localizado[Ô])
End If

cn.Close()
CarregaDados()

Obrigado a todos!!!!
Tópico encerrado , respostas não são mais permitidas