Ir para conteúdo
Fórum Script Brasil
  • 0

Combo X Bd


rodrigo noma

Pergunta

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

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

OK, fiz esta alteração e deu certo:

Combo1.AddItem rs_pesq!nome

Por que da exclamação??????

Agora tenho 3 textbox denominadas codigo,idade e cor

quando 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.Connection

ConnString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = c:\inetpub\wwwroot\vb\teste.mdb;"

Cn.Open ConnString

vValor1 = Combo1.Text

Set Rs_Comb = Cn.Execute("Select * from tb_teste where nome=" & vValor1)

If Not Rs_Comb.EOF Then

txtnome.Text = Rs_Comb("codigo")

txtidade.Text = Rs_Comb("idade")

txtcor.Text = Rs_Comb("cor")

Else

MsgBox ("Nenhum registro encontrado!!!")

End If

End Sub

Não sei se isso é possível.....

Obrigado pela ajuda.

Rodrigo

Link para o comentário
Compartilhar em outros sites

  • 0
Guest fabiano maia franco

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!

Link para o comentário
Compartilhar em outros sites

  • 0

Fabiano

Muito 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ços

Rodrigo

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...