rodrigo noma Postado Julho 13, 2006 Denunciar Share Postado Julho 13, 2006 Estou usando isso no Combo1Private Sub Combo1_Change()Set Cn = New ADODB.ConnectionConnString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = c:\inetpub\wwwroot\vb\teste.mdb;"Cn.Open ConnStringSet Rs_Pesq = Cn.Execute("Select * from tb_teste")Do While Not Rs_Pesq.EOFCombo1.AddItem = Rs_Pesq("nome")Rs_Pesq.MovenextLoopEnd SubPara retornar os dados que eu tenho no bd, mas fica vazio.Onde pode estar o erro?ObrigadoRodrigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 14, 2006 Denunciar Share Postado Julho 14, 2006 O problema é que você colocou isso no evento Change da Combobox, portanto esse código só será executado quando o texto da Combo for alterado. Você deveria colocar esse código em um local mais apropriado (como no evento Load do form, para que ele seja executado quando o form for aberto).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodrigo noma Postado Julho 14, 2006 Autor Denunciar Share Postado Julho 14, 2006 Obrigado Graymalkin, agora entendi o meu erro e parece que começou a dar certo a busca no bd, mas ainda acho que há um erro,quando executo fica uma faixa amarela na linha:Combo1.AddItem = Rs_Pesq("nome")Qual propriedade eu utilizo?ObrigadoRodrigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodrigo noma Postado Julho 14, 2006 Autor Denunciar Share Postado Julho 14, 2006 OK, fiz esta alteração e deu certo:Combo1.AddItem rs_pesq!nomePor que da exclamação??????Agora tenho 3 textbox denominadas codigo,idade e corquando escolho o nome no combo, gostaria de que esses 3 campos fossem preenchidos automaticamente,então criei um codigo assim:Private Sub Combo1_Change()Set Cn = New ADODB.ConnectionConnString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = c:\inetpub\wwwroot\vb\teste.mdb;"Cn.Open ConnStringvValor1 = Combo1.TextSet Rs_Comb = Cn.Execute("Select * from tb_teste where nome=" & vValor1)If Not Rs_Comb.EOF Thentxtnome.Text = Rs_Comb("codigo")txtidade.Text = Rs_Comb("idade")txtcor.Text = Rs_Comb("cor")ElseMsgBox ("Nenhum registro encontrado!!!")End IfEnd SubNão sei se isso é possível.....Obrigado pela ajuda.Rodrigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest fabiano maia franco Postado Julho 15, 2006 Denunciar Share Postado Julho 15, 2006 Olá Rodrigo.A primeira dúvida: O por quê da exclamação.Essa sintaxe RS!Campo é um atalho para acesso ao mesmo, ou seja, RS("Campo"), RS!Campo, RS.Fields("Campo") servem para a mesma coisa, a única diferença é que usando o atalho o retorno é mais rápido e o motivo é bem simples. Quando você usa o atalho o recordset retorna apenas o conteúdo do campo sem preencher todas as sub-propriedades da propriedade "Fields" como tipo do campo, tamanha, etc.É claro que você só vê diferença em um loop para alimentação de uma grade com grande quantidade de dados por exemplo. Quando você está pegando o conteúdo de apenas um registro não há acréscimo significativo na performance do código.Há um erro no seu sql. Como o conteúdo do campo "nome" é texto você deve envolvê-lo em aspas ou apóstrofos assim:vValor1 = "'" & Combo1.Text & "'"Set Rs_Comb = Cn.Execute("Select * from tb_teste where nome=" & vValor1)Toda string tem que ser informada entre aspas senão como o compilador vai saber onde começa e onde termina a string?É isso aí. Se não funcionar avise!Valeu! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodrigo noma Postado Julho 17, 2006 Autor Denunciar Share Postado Julho 17, 2006 FabianoMuito obrigado pela explicação....realmente deu para entender tudo que você citou...No ASP eu utilizo Rs("Nome"), no VB não sabia que isso equivale a Rs!nome, agora entendi....quanto ao vValor1, foi burrada minha mesmo.....confundi string com numerico e assim deu erro, mas o meu programa não estava funcionando da maneira que eu queria por um motivo que vim descobrir mais tarde....estava fazendo a programação no evento Change e por isso não estava executando corretamente, ai fiz o mesmo codigo para o evento Click e foi tudo resolvido...Obrigado por tudo e espero que possa aprender mais com você e outras pessoas que me ajudam no forum.AbraçosRodrigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rodrigo noma
Estou usando isso no Combo1
Private Sub Combo1_Change()
Set Cn = New ADODB.Connection
ConnString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = c:\inetpub\wwwroot\vb\teste.mdb;"
Cn.Open ConnString
Set Rs_Pesq = Cn.Execute("Select * from tb_teste")
Do While Not Rs_Pesq.EOF
Combo1.AddItem = Rs_Pesq("nome")
Rs_Pesq.Movenext
Loop
End Sub
Para retornar os dados que eu tenho no bd, mas fica vazio.
Onde pode estar o erro?
Obrigado
Rodrigo
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.