Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

luckiecroft

[Resolvido] Não atualiza o ListView.

Recommended Posts

Opa pessoal, me ajudem com essa atualização por favor. No update, tudo acontece direitinho mas quando é pra atualizar o listview ele não o faz só fechando e abrindo o form. Agora, isso só ocorre se eu clicar no item, se eu estiver andando com o ponteiro usando movenext ou outros ele funciona...Por quê???? Estou colocando aí minha rotina pra ver se vocês me ajudam. Valeu galera.

 

 

Dim A As Integer
	
	A = Form_Principal.Text16.Text			 'Matricula
	A = CInt(A)
	B = Form_Principal.Text2.Text			 'Nome
	C = Form_Principal.Text3.Text			 'Endereco
	D = Form_Principal.Text4.Text			 'Num
	E = Form_Principal.Text5.Text			 'Complemento
	F = Form_Principal.Text6.Text			 'Bairro
	G = Form_Principal.Text7.Text			 'Cidade
	H = Form_Principal.Text8.Text			 'CEP
	I = Form_Principal.Combo1.Text			 'Estado
	J = Form_Principal.Text14.Text			 'Celular
	K = Form_Principal.Text13.Text			 'Telefone
	L = Form_Principal.Text15.Text			 'Email
	M = Form_Principal.Combo3.Text			 'Curso
	N = Form_Principal.Text17.Text			 'Turma
	O = Form_Principal.Text18.Text			 'Empresa
	P = Form_Principal.Text20.Text			 'Inicio
	Q = Form_Principal.Text21.Text			 'Termino
	R = Form_Principal.Text19.Text			 'Horas
	S = Form_Principal.Text10.Text			 'Identidade
	T = Form_Principal.Text11.Text			 'Emissor
	U = Form_Principal.Text12.Text			 'CPF
	v = Form_Principal.Combo2.Text				 'Sexo
	W = Form_Principal.Combo4.Text			 'Situacao
	X = Form_Principal.Text9.Text			 'Nascimento
	Y = Form_Principal.Text23.Text			 'Inicio_Aditivado
	Z = Form_Principal.Text22.Text			 'Termino_Aditivado

	Tabela_Estagiarios.Close
	Editar_Estagiario.Open "Update Estagiarios Set Matricula = " & A & " , Nome = '" & B & "', Endereco = '" & C & "', Num = '" & D & "', Complemento = '" & E & "', Bairro = '" & F & "', Cidade = '" & G & "', CEP = '" & H & "', Estado = '" & I & "', Celular = '" & J & "', Telefone = '" & K & "', Email = '" & L & "', Curso = '" & M & "', Turma = '" & N & "', Empresa = '" & O & "', Inicio = '" & P & "', Termino = '" & Q & "', Horas = '" & R & "', Identidade = '" & S & "', Emissor = '" & T & "', CPF = '" & U & "', Sexo = '" & v & "', Situacao = '" & W & "', Nascimento = '" & X & "', Inicio_Aditivado = '" & Y & "', Termino_Aditivado = '" & Z & "' Where Matricula = " & A & "", Conexao, adOpenKeySt, adLockOptimistic, adCmdText
'Tabela_Estagiarios.Open "Update Estagiarios Set Matricula = " & A & " , Nome = '" & B & "', Endereco = '" & C & "', Num = '" & D & "', Complemento = '" & E & "', Bairro = '" & F & "', Cidade = '" & G & "', CEP = '" & H & "', Estado = '" & I & "', Celular = '" & J & "', Telefone = '" & K & "', Email = '" & L & "', Curso = '" & M & "', Turma = '" & N & "', Empresa = '" & O & "', Inicio = '" & P & "', Termino = '" & Q & "', Horas = '" & R & "', Identidade = '" & S & "', Emissor = '" & T & "', CPF = '" & U & "', Sexo = '" & v & "', Situacao = '" & W & "', Nascimento = '" & X & "', Inicio_Aditivado = '" & Y & "', Termino_Aditivado = '" & Z & "' Where Matricula = " & A & "", Conexao, adOpenKeySt, adLockReadOnly, adCmdText

		Call Conexao_Geral

' ########### Limpa e atualiza a lista de Estagiarios com a ação executada
	Form_Principal.ListView_Estagiarios.ListItems.Clear
	Call Cabecalho_Lista_Estagiarios
	While Not Tabela_Estagiarios.EOF
		Img_boneco = Tabela_Estagiarios!Sexo
		Img_Situacao = Tabela_Estagiarios!Situacao
		
		If Img_Situacao = "CONCLUINTE" Then
			Img_boneco_Valor = 3
			Else
				If Img_Situacao = "ESTAGIANDO" Then
					If Img_boneco = "M" Then
						Img_boneco_Valor = 1
						Else
						Img_boneco_Valor = 2
					End If
				Else
					If Img_Situacao = "NÃO ESTAGIANDO" Then
						Img_boneco_Valor = 4
					End If
				End If
		End If
		Set Lista_Estagiarios = Form_Principal.ListView_Estagiarios.ListItems.Add(, , Tabela_Estagiarios!Matricula, Img_boneco_Valor, Img_boneco_Valor)
		Lista_Estagiarios.SubItems(1) = "" & Tabela_Estagiarios!Nome
		Tabela_Estagiarios.MoveNext
	Wend

		On Error Resume Next
		Form_Principal.ListView_Estagiarios.SelectedItem = Form_Principal.ListView_Estagiarios.ListItems(CInt(Form_Principal.Text16.Text))
		On Error GoTo 0
		Form_Principal.ListView_Estagiarios.SetFocus

	Codigo_Estagiario_Lista = CInt(Form_Principal.ListView_Estagiarios.SelectedItem.Text)
	Posicao = Codigo_Estagiario_Lista
	Posicao = CInt(Posicao - 1)
	Tabela_Estagiarios.Move Posicao, 1
	Posicao = 0

	 MsgBox "Registro alterado com sucesso!!!", vbInformation, "Aviso do Sistema!"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Noss que duvida confusa!

Suspeito de que você esteja fazendo confusão em relação as tabelas.

Mas posta ae sua função Cabecalho_Lista_Estagiarios pra gente enchergar melhor

 

Flws XD

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que acontece com o listview quando você vai atualiza ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi....bem, o q acontece com o listview é que após a ação do update e o preenchimento do listview depois do clear, ele não atualiza. é engraçado pois a mesma instrução funciona para o insert e para o delete. Muito louco pois se eu copiei a rotina, deveria funcionar...vou colocar a função pedida:

 

Public Sub Cabecalho_Lista_Estagiarios()

 

Form_Principal.ListView_Estagiarios.ColumnHeaders.Add , , "Matr.", 0

Form_Principal.ListView_Estagiarios.ColumnHeaders.Add , , "Nome", 0

Form_Principal.ListView_Estagiarios.View = lvwReport

Form_Principal.ListView_Estagiarios.GridLines = True

Form_Principal.ListView_Estagiarios.FullRowSelect = True

Form_Principal.ListView_Estagiarios.FlatScrollBar = False

Form_Principal.ListView_Estagiarios.MultiSelect = False

Form_Principal.ListView_Estagiarios.Checkboxes = False

Form_Principal.ListView_Estagiarios.HideSelection = False

 

End Sub

 

 

Valeu pessoal!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta colocar Tabela_Estagiarios.MoveFirst antes do While que preenche o ListView.

 

Vai ve o cursor do BD ta no final do banco.

 

Flw... se continuar volta ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Editar_Estagiario

Tabela_Estagiarios

 

esses dois RS apontam para mesma tabela ? por que ali em cima você atualiza um e depois monta o listview com outro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...vamos lá então. O rs: Editar_Estagiario foi apenas para a rotina de update pq a instrução para o outro rs, Tabela_Estagiarios, é com select, aliás é a consulta que rege todo o programa....acho que errei não disponibilizando. Segue abaixo a função Conexao_Geral que tem a rotina para o rs Tabela_Estagiarios:

 

Public Sub Conexao_Geral()

 

Set Conexao = New ADODB.Connection

 

Set Tabela_Estagiarios = New ADODB.Recordset

Set Salvar_Novo_Estagiario = New ADODB.Recordset

Set Editar_Estagiario = New ADODB.Recordset

 

Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BCO\Estagio.mdb;Persist Security Info=False"

 

Tabela_Estagiarios.CursorLocation = adUseClient

Salvar_Novo_Estagiario.CursorLocation = adUseClient

Editar_Estagiario.CursorLocation = adUseClient

 

Tabela_Estagiarios.Open "Select * From Estagiarios Order By Matricula", Conexao, adOpenKeySt, adLockReadOnly, adCmdText

 

End Sub

 

 

Vamos ver no que vai dar...hehehe

 

Ups...esqueci de dizer que sim os rs apontam pra mesma tabela mas de formas diferentes pois o select do Tabela_Estagiarios não especifica uma linha determinada enquanto que o rs Editar_Estagiario, mesmo sendo de uma instrução de update, relaciona uma linha específica da tabela, por isso criei doi recordset e não usei apenas o Tabela_Estagiarios. Depois, para fazer o ponteiro andar pra posição do ítem alterado usei:

 

Codigo_Estagiario_Lista = CInt(Form_Principal.ListView_Estagiarios.SelectedItem.Text)

Posicao = Codigo_Estagiario_Lista

Posicao = CInt(Posicao - 1)

Tabela_Estagiarios.Move Posicao, 1

Posicao = 0

 

E agora, meus amigos???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Galera!!!

Olha pessoal consegui resolver....eu é que estava dando muito mole. Tem um outro recordset trabalhando pra preencher os campos de texto quando o usuário clicava no listview e eu simplesmente não o fechei nem o setei com nothing no final. Por isso, não atualizava...sei lá ficava em cache. Logo, a rotina que coloquei aqui estava certa. Muito obrigado pelo esforço de todos. E, me coloco a disposição pra ajudar tb. Um grand abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.