XuelD2
|
SãO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2012 13:02 hs
Eu já vi aqui um tópico relacionado a usar um banco de dados com combobox e textbox, mas como a pessoa não colocou o código para eu analizar onde está meu erro, gostaria de ajuda de vocês, por favor.
É o seguinte, usei 1 combobox(combo1) para pegar no banco de dados (nome do banco=bardb.mdb) na tabela produto o nome de um produto e listar nela.
Gostaria de conforme selecionei o item no combobox os dados desse item mostrassem nas texts, vou colocar abaixo o código:
OBS: o erro que esta aparecendo p mim é: "Run-time error '3021': BOF ou EOF são verdadeiros, ou o registro atual foi excluÃdo. A operação solicitada pelo aplicativo requer um registro atual"
Private Sub Combo1_Click() Set Rs = New ADODB.Recordset sql = "select nome,preco,disponivel,tipo From produto Where nome='" sql = sql & Mid(Combo1.Text, 1, 4) & "'" Rs.Open sql, conexao, adOpenKeyset, adLockPessimistic txtnome.Text = Rs(1) txtpreco.Text = Rs(2) txtquantidade.Text = Rs(3) txttipo.Text = Rs(4) Rs.Close Set Rs = Nothing conexao.Execute sql conexao.Close End Sub Private Sub Form_Load() conexao.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" & App.Path & "dbardb.mdb" Set Rs = New ADODB.Recordset Combo1.Clear sql = "SELECT nome FROM produto ORDER BY nome" Rs.Open sql, conexao, adOpenKeyset, adLockPessimistic Do While Not Rs.EOF Combo1.AddItem Rs(0) & "" Rs.MoveNext Loop Combo1.Refresh Rs.Close Set Rs = Nothing End Sub
Estou a disposição para qualquer dúvida!
|
|
|
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2012 14:12 hs
Colega existe um campo codigo
pois seria mais fácil pesquisar por ele, porém vc está errando apenas ao capturar o conteudo do combo veja como seria
Private Sub Combo1_Click() Set Rs = New ADODB.Recordset sql = "select nome,preco,disponivel,tipo From produto Where nome='" sql = sql & Mid(Combo1.List(Combo1.ListIndex), 1, 4) & "'" Rs.Open sql, conexao, adOpenKeyset, adLockPessimistic txtnome.Text = Rs(1) txtpreco.Text = Rs(2) txtquantidade.Text = Rs(3) txttipo.Text = Rs(4) Rs.Close Set Rs = Nothing conexao.Execute sql conexao.Close End Sub
au só alterei a parte do mid veja se funciona
|
|
|
|
XuelD2
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2012 14:55 hs
Bom, apresentou o mesmo erro. Quando vou fazendo o debug passo a passo quando chega no "txtpreco.Text = Rs(2)" aparece a mensagem ""Run-time error '3021': BOF ou EOF sao verdadeiros, ou o registro atual foi excluido. A operacao solicitada pelo aplicativo requer um registro atual"
|
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2012 15:21 hs
Tenta isso agora
txtnome.Text = Rs(1) & "" txtpreco.Text = Rs(2) & "" txtquantidade.Text = Rs(3) & "" txttipo.Text = Rs(4) & ""
o (& "") pode fazer a diferença
|
|
|
|
XuelD2
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2012 15:27 hs
Bom, na hora de fazer o debug o VB trava, aí para testar criei o executável e apareceu o erro "Run-time error '440': BOF e EOF sao verdadeiros, ou o registro atual foi excluido. A operacao solicitada pelo aplicativo requer um registro atual."
coisa de doido...
|
|
|
|
Treze
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2012 20:45 hs
só uma pergunta o mid pega somente os 4 primeiros caracteres, ste pode ser o problema
quando BOF e EOF são verdadeiros, quer dizer que nenhum registro foi encontrado na consulta ou seja vc não está consultando certo.
tente sem o mid
sql = sql & Combo1.List(Combo1.ListIndex) & "'"
|
|
|
|
|