ALTERACAO_LISTBOX_VBTAB

FERRAZ 23/11/2010 10:33:52
#358026
Dia Rapaziada, tudo bem ? Olha amigos nao consigo me entender com o VbTab, sempre que tenho que fazer alguma alteracao em um listbox, favor na minha clausula SQL [Ô]Update[Ô], sempre que tento alterar um conteudo no listbox que uso o VbTab para preencher, ocorre um erro em tempo de execucao [Ô]type mismatch[Ô], como tenho que escrever para eliminar este erro.

Private Sub lvBAlt_Click()
[ô]===========================================================================================================
Dim Valor() As String
Valor = Split(ListMov.List(ListMov.ListIndex), vbTab)

TxtTlProj.Text = CCur(TxtTlProj.Text) - CCur(Valor(3))
TxtTlProj.Text = Format(TxtTlProj.Text, [Ô]currency[Ô])

With ListMov
.RemoveItem (.ListIndex)
End With
MsgBox [Ô]Projeto Alterado Com Sucesso ! Seu Novo Valor[Ô] + TxtTlProj.Text, vbOKOnly + vbInformation
[ô]Aqui eu tenho de atualizar a tabela ja que foram modificados conteudo no banco.
[ô]fecho o programa depois da alteracao para evitar erros em tempo de execucao.

Dim SQL As String
Dim F As Integer
Dim RemCabList As String

For F = 6 To ListMov.ListCount - 1
RemCabList = ListMov.List(F) & vbTab
RemCabList = Split(ListMov.List(F), vbTab) [ô]Aqui ocorre um erro type mismatch, inserindo caracteres,[ô]e especos no campo,preciso eliminar o cabecalho do listbox antes de salvar as alteracoes.
SQL = [Ô]UPDATE TbProjeto SET[Ô]

SQL = SQL & [Ô] Dta =[ô][Ô] & TxtDta.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô] Itens =[ô][Ô] & RemCabList & [Ô][ô], [Ô]
SQL = SQL & [Ô] TipoProjeto =[ô][Ô] & CboTipServ.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô] TotalProjeto =[ô][Ô] & TxtTlProj.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô] FatorAplicado =[ô][Ô] & TxtFtUso.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô] NClt =[ô][Ô] & TxtClt.Text & [Ô][ô][Ô]
SQL = SQL & [Ô] WHERE ID = [Ô] & TxtReg.Text

Set rs = cn.Execute(SQL)
Next F
Unload Me
[ô]===========================================================================================================
End Sub


Desde de ja fico grato a todos os colegas do VbMania.
FERRAZ 23/11/2010 12:29:59
#358036
Fiz mais alguns testes, e conseguir salvar sem caracteres mais tenho um espaco antes do item que acho que vai me dar problemas depois e o mesmo item eh gravado duas vezes, vejam como fiz:

Dim SQL As String
Dim F As Integer
Dim Dados() As String

For F = 6 To ListMov.ListCount - 1 [ô]começo a contagem do 5 por causa do cabeçalho
Dados = Split(ListMov.List(F), vbTab)
SQL = [Ô]UPDATE TbProjeto SET[Ô]

SQL = SQL & [Ô] Dta =[ô][Ô] & TxtDta.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô] Itens =[ô][Ô] & Dados(0) & Dados(1) & Dados(2) & Dados(3) & [Ô][ô], [Ô]
SQL = SQL & [Ô] TipoProjeto =[ô][Ô] & CboTipServ.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô] TotalProjeto =[ô][Ô] & TxtTlProj.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô] FatorAplicado =[ô][Ô] & TxtFtUso.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô] NClt =[ô][Ô] & TxtClt.Text & [Ô][ô][Ô]
SQL = SQL & [Ô] WHERE ID = [Ô] & TxtReg.Text

Set rs = cn.Execute(SQL)
Next F
Unload Me


Como posso resolver este codigo, alguma dica rapaziada ?

Valeu a todos.
XXXANGELSXXX 23/11/2010 12:34:24
#358037
Vc esta importando para um list as informacoes de um txt!! ja nao poderia ser importado direto para o banco de dados nao? tipo.. qual motivo vc faz assim?
FERRAZ 23/11/2010 13:01:35
#358040
Amigo XXXANGELSXXX, bom eu, consulto o bd atraves de um MsFlexGrid, depois estas informacoes preenche alguns campos txt e o ListBox, dai eu seleciono o item no ListBox e uso o codigo acima para alterar no bd, quando isso ocorre as alteracoes fica errada, tipo se tem dois itens no ListBox de nome [Ô]Parafuso[Ô] = 10,00 e [Ô]Porca[Ô] = 5,00 e elimino o [Ô]Parafuso[Ô] = 10,00 - ai vem pau, ao consultar o bd o registro fica assim: [Ô]Porca = 5,00[Ô] - [Ô]Porca = 5,00[Ô]. Dai esta dificil para meu entendimento, remover um item e duplicar o outro que nao removi ?


Fico grato, pela atencao
FERRAZ 23/11/2010 16:41:47
#358066
Citação:

Galera, pergunta, estou pensando em trocar de componente, ao inves do ListBox usar o MsFlexGrid, pois nao me entendo com o ListBox em determinadas situacoes ?

MARCELO.TREZE 23/11/2010 18:21:59
#358070
Resposta escolhida
olha fiquei meio tonto, rs mas vamos tentar entender mesmo

bom acho que seu código está bemmmmm errado, mas ainda não consegui entender a lógica da coisa, teria como vc postar
uma tela do que ocorre, e o que deveria ocorrer?

XXXANGELSXXX 24/11/2010 08:20:51
#358089
Concordo com Marcelo, esta meio estranho, todo tipo de operaçao com banco eu faço direto com msflexgrid, acho que é mais facil voce manipulá-lo
FERRAZ 24/11/2010 10:50:28
#358105
Marcelo, XXXANGELSXXX, dia a todos, estou enviando tres telas para analise do que acontece:

Este primeiro link eh = Tela com o item selecionado para eu remover do ListBox:
http://img517.imageshack.us/img517/9670/imgtelaselectitem.jpg

Este segundo link eh = Tela com o item removido e uma msgbox informando que foi alterado com sucesso
http://img146.imageshack.us/img146/6207/imgtelaitemalterado.jpg

Este Terceiro link eh = Tela com o registro consultado depois da alteracao
http://img713.imageshack.us/img713/4851/imgtelaitemduplicado.jpg


Agora observem que a segunda tela mostra o item alterado e removido aparentimente esta tudo ok, mais ao consulta no bd, vejam que a terceira tela que eh do retorno da consulta tem o item que eu nem selecionei e nem alterei, olha so como fica alterado, nossa...


Grato pela atencao, espero ter explicado bem o que acontece. E o que eu quero nao acontece. Valeu,
MARCELO.TREZE 24/11/2010 13:40:54
#358114
Ferraz só mais uma pergunta

os dados que aparecem na listivew (rosca s/fim... ,rosca de granulador...) provem de uma unica linha?
FERRAZ 24/11/2010 14:30:37
#358122
Marcelo, sim, eu salvo os dados assim:

Private Sub lvBConf_Click()
Dim SQL As String
Dim Dados() As String

For F = 6 To ListMov.ListCount - 1 [ô]começo a contagem do 5 por causa do cabeçalho
Dados = Split(ListMov.List(F), vbTab)
SQL = [Ô]INSERT INTO TbProjeto(ID,Dta,Itens,Qtde,VUnit,SbTl,TipoProjeto,TotalProjeto,FatorAplicado,NClt) VALUES ([Ô]
SQL = SQL & [Ô][ô][Ô] & TxtReg.Text & [Ô][ô],[Ô]
SQL = SQL & [Ô][ô][Ô] & TxtDta.Text & [Ô][ô],[Ô]
SQL = SQL & [Ô][ô][Ô] & Dados(0) & [Ô][ô],[Ô]
SQL = SQL & [Ô][ô][Ô] & Dados(1) & [Ô][ô],[Ô]
SQL = SQL & [Ô][ô][Ô] & Dados(2) & [Ô][ô],[Ô]
SQL = SQL & [Ô][ô][Ô] & Dados(3) & [Ô][ô],[Ô]
SQL = SQL & [Ô][ô][Ô] & CboTipServ.Text & [Ô][ô],[Ô]
SQL = SQL & [Ô][ô][Ô] & TxtTlProj.Text & [Ô][ô],[Ô]
SQL = SQL & [Ô][ô][Ô] & TxtFtUso.Text & [Ô][ô],[Ô]
SQL = SQL & [Ô][ô][Ô] & TxtClt.Text & [Ô][ô])[Ô]
Set rs = cn.Execute(SQL)
Next F

End Sub


No banco access, fica assim:

4 12/11/2010 Montagem de Granulador 5 R$ 700,00 R$ 3.500,00 Venda R$ 5.180,00 Intermediário Francisco Menezes Soares
4 12/11/2010 Rosca S/Fim Diametro 310 m,m x 4600 2 R$ 840,00 R$ 1.680,00 Venda R$ 5.180,00 Intermediário Francisco Menezes Soares

A ordem dos campos no bd acima eh assim: Reg. - DataRegistro - Itens - Quant. - ValorUnitario - SubTotal - TipoServ. - ValorTotal - FatorAplicado - NomeCliente

Este codigo eu peguei aqui com vc ha algum tempo atras lembra... e estou tentando fazer alguns ajustes para adaptar a este projeto.


Fico grato.
MARCELO.TREZE 24/11/2010 14:40:53
#358123
posta o código que usa para preencher o listview.
Página 1 de 3 [25 registro(s)]
Tópico encerrado , respostas não são mais permitidas