LISTBOX - COMO ALIMENTAR COM DADOS DE UMA TABELA

USUARIO.EXCLUIDOS 16/09/2006 11:28:37
#171836
Pessoal, preciso de ajuda na utilizacao de um Listbox só sei carregar informacoes neste campo com o .additem alguem tem uma dica?

ex.:lista_itens_pedido.AddItem txt_num_pedido.Text + "-" + txt_desc_meio1.Text + " / " + txt_desc_meio2.Text + " Valor: " + txt_valor_meio.Text + " Qtd.: " + txt_qtd_meio.Text

Desta forma estou simplesmente carregando o conteúdo dos campos .text para o listbox, preciso carregar com dados de uma consulta no banco...

valeu pessoal

agradeco mais uma vez a ajuda


USUARIO.EXCLUIDOS 16/09/2006 11:36:01
#171838
USANDO DAO

gSQL="SELECT CODIGO,NOME FROM CLIENTES ORDER BY NOME"

Set gRSTemp = gDB.OpenRecordset(gSQL)

With pLista
.Clear
Do While Not gRSTemp.EOF
.AddItem gRSTemp!NOME
.ItemData(.NewIndex) = gRSTemp!CODIGO
gRSTemp.MoveNext
Loop
End With


USUARIO.EXCLUIDOS 16/09/2006 11:46:11
#171841
Puxa vida, parece ser simples, mas ainda sou novato. Me esclarece por favor, gDB é o banco?, devo declarar antes mais ou menos assim: Dim gDB as database


Outra dúvida: nunca utilizei o Do While, gRSTemp.eof esta verificando se a consulta nao retornou registros?^

pLista é o nome do meu listbox?

grato


USUARIO.EXCLUIDOS 16/09/2006 12:00:03
#171845
Luis, creio que posso lhe ajudar, mas antes vc precisa me ajudar... rsrs

posta pra mim como vc abre sua conexão com o banco de dados, e me informa qual o banco de dados que vc utiliza, assim monto um exemplo.

Um conselho cara, sempre que for postar sobre BD aqui passe estas informações, fica mais fácil de lhe ajudar
USUARIO.EXCLUIDOS 16/09/2006 17:15:21
#171886
Segue o codigo... utilizo o Access 2003


Dim banco As Database
Dim tabela As Recordset ' clientes
Dim tabela1 As Recordset ' pedidos
Dim tabela2 As Recordset ' produtos
Dim tabela3 As Recordset 'itens pedido


Set banco = OpenDatabase(App.Path & "\PIZZARIA1.MDB")
Set tabela = banco.OpenRecordset("CLIENTES", dbOpenTable)
Set tabela2 = banco.OpenRecordset("PRODUTOS", dbOpenTable)
Set tabela1 = banco.OpenRecordset("PEDIDOS", dbOpenTable)
Set tabela3 = banco.OpenRecordset("ITENS_PEDIDO", dbOpenTable)

adiciono os dados nas tabelas atravez do código abaixo:

tabela3.AddNew
tabela3("COD_ITEM") = txt_cod_item
tabela3("NUM_PEDIDO") = txt_num_pedido
.
.
.
tabela3.update


muito obrigado.
USUARIO.EXCLUIDOS 16/09/2006 17:35:43
#171887
Dim Tbsql As New ADODB.Recordset
Dim CONSULTASQL As String

privete sub cmdprocurar_click()
CONSULTASQL = "select * PRODUTOS where order by descricao" 'o campo do access será aprtesentado em ordem crescente, nese caso dei exemplo de descricao
Set Tbsql = banco.Execute(CONSULTASQL)
Do Until Tbsql.EOF 'repita até que seja fim de arquivo
LstLista.AddItem Tbsql("seu_campo no access") 'adicviona lista na tabela
Tbsql.MoveNext ' vai pro proximo
Loop
End Sub

Tebtei assim, qualquer duvida poste novamente
USUARIO.EXCLUIDOS 17/09/2006 10:57:04
#171965
Entao amigo, veja como ficou meu código, por favor se possivel apontar onde estou errando pois o VB esta enviando erro de compilacao, segue o erro:

Compile error:
Espected funcion or variable

ao prescionar ok está posicionando o cursor na seguinte linha de código:

Set Tbsql = BANCO.Execute(CONSULTASQL)

abaixo o código completo da funcao PROCURAPEDIDO que é chamada no clique localizar pedido:

Private Function PROCURARPEDIDO()

Dim procurapedido As String

procurapedido = InputBox("Digite o numero do pedido e prescione ENTER")

tabela1.Seek "=", procurapedido

If tabela1.NoMatch = True Then
MsgBox "Nao foi encontrado um pedido com este numero, tente novamente"
txt_num_pedido.SetFocus
Else

Dim Tbsql As New ADODB.Recordset
Dim CONSULTASQL As String
Dim NUMPEDIDO As String
Dim BANCO As Database
Set BANCO = OpenDatabase(App.Path & "\PIZZARIA1.MDB")

NUMPEDIDO = txt_num_pedido.Text

CONSULTASQL = "SELECT COD_ITEM_PEDIDO, DESC_PRODUTO, QTD_PRODUTO, VALOR_ITEM_PEDIDO FROM ITENS_PEDIDO where num_pedido = '" & (NUMPEDIDO) & "';"
Set Tbsql = BANCO.Execute(CONSULTASQL)
Do Until Tbsql.EOF 'repita até que seja fim de arquivo
lista_itens_pedido.AddItem Tbsql("COD_ITEM_PEDIDO, DESC_PRODUTO, QTD_PRODUTO, VALOR_ITEM_PEDIDO") 'adicviona lista na tabela
Tbsql.MoveNext ' vai pro proximo
Loop

txt_num_pedido.Text = tabela1("NUM_PEDIDO")
TXT_TEL_CLIENTE.Text = tabela1("tel_cliente")
txt_nome_cliente.Text = tabela1("nome_cliente")
txt_endereco_cliente.Text = tabela1("END_CLIENTE")
txt_data_pedido.Text = tabela1("DATA_PEDIDO")
txt_cod_item_pedido = tabela1("COD_ITEM_PEDIDO")
txt_valor_total = tabela1("VALOR_PAGO")
txt_troco_para = tabela1("VALOR_PARA_TROCO")
txt_valor_troco = tabela1("VALOR_TROCO")

If tabela1("CANCELADO") = "NAO" Then
FLG_CANCELADO.Value = 1
Else
FLG_CANCELADO.Value = 0
End If

If tabela1("pago") = "1" Then
flg_pago.Value = 1
Else
flg_pago.Value = 0
End If

End If

End Function



Muito obrigado
USUARIO.EXCLUIDOS 17/09/2006 14:47:49
#172006
altere para

Set Tbsql = BANCO.OpenRecordset(CONSULTASQL)
USUARIO.EXCLUIDOS 17/09/2006 14:51:41
#172007
Nao rola, assim da o erro:

Run-time error 13

type mismatch

acho que está quase lá..

valeu amigo...
USUARIO.EXCLUIDOS 18/09/2006 09:22:16
#172086
Kra, voce deve utilizar o seguinte comando para inseir os dados na tabela

CONSULTASQL = "SELECT * FROM ITENS_PEDIDO where num_pedido = '" & (NUMPEDIDO) & "';"
Set Tbsql = BANCO.Execute(CONSULTASQL)
Do Until Tbsql.EOF 'repita até que seja fim de arquivo
lista_itens_pedido.AddItem Tbsql("COD_ITEM_PEDIDO")
lista_itens_pedido.AddItem Tbsql("DESC_PRODUTO")
lista_itens_pedido.AddItem Tbsql("QTD_PRODUTO")
lista_itens_pedido.AddItem Tbsql("VALOR_ITEM_PEDIDO")'adicviona lista na tabela
Tbsql.MoveNext ' vai pro proximo
Loop

Tente assim
USUARIO.EXCLUIDOS 19/09/2006 16:10:01
#172452
Legal, assim deu certo embora nao foram apresentados no listbox do jeito que eu queria, gostaria que os ítens do pedido fossem apresentados como o exemplo a seguir:

codigo descricao qtd valor
0012 Pizza mussarela 1 R$ 10,00

Com o codigo postado como exemplo os campos foram apresentados um abaixo do outro como o ex.:

0012
Pizza mussarela
1
R$ 10,00

se tiver mais alguma dica agradeço

abr

Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas