[resolvido] Atualizar

Moderador: Avelino Sampaio

marcelo3092
Mensagens: 89
Registrado em: 23 Jun 2016, 14:21

[resolvido] Atualizar

Mensagempor marcelo3092 » 28 Set 2017, 02:42

Ola mestre boa noite estou com algumas duvidas queria sua ajuda estou usando o código abaixo para atualizar o preço de uma lista de produtos porem eu consigo usar somente uma vez este código e para usar novamente tenho que fechar o formulario e abrir novamente onde pode estar erro???

Código:
Private Sub Texto22_BeforeUpdate(Cancel As Integer)

On Error Resume Next

If Me.Alteraão_Preço_Sub.Form.AlteraçãoSelecionar = 0 Then
MsgBox "Não há Produto Selecionado, Por Favor Selecione Produto(S).", vbInformation, "SI-V."
Exit Sub
End If

If MsgBox("Deseja Realmente Ajustar o Preço de Venda.?", vbYesNo, "SI-V") = vbYes Then

Dim rs4 As Recordset
Dim rs5 As Recordset
Dim DB

Set DB = CurrentDb()
Set rs5 = DB.OpenRecordset("Alteração_Preço_Antigos")

Set rs4 = Me!Alteraão_Preço_Sub.Form.RecordsetClone

Do While Not rs4.EOF
If rs4.Fields("AlteraçãoSelecionar") = True Then 'So Acrescentei esta linha no codigo.
rs4.Edit
rs5.AddNew
rs5![Valor_Alterado] = rs4![Preço_Venda]
rs5![Cód_Produto] = rs4![Cód_Produto]
rs5![Data_Alteração] = Date
rs4![Preço_Venda] = rs4![Preço_Venda] * Me!Texto22 + rs4![Preço_Venda]
rs5![Valor_Novo] = rs4![Preço_Venda]
rs5![Usuário] = getUsuarioAtual()
rs5![Cód_Empresa] = [Forms]![FPrincipal]![Cód_Empresa]
rs5![Aumento%] = Me!Texto22
rs4.Update
rs5.Update
End If
rs4.MoveNext
Loop
rs4.Close
rs5.Close
Set rs4 = Nothing
Set rs5 = Nothing

DoCmd.SetWarnings False

Dim strSql As String

'Monta a consulta atualização utilizando
'como critério o código da empresa
strSql = "Update Produto Set AlteraçãoSelecionar = False"


'Executa a consulta
DoCmd.RunSQL strSql


'Habilita os avisos novamente
DoCmd.SetWarnings True

Alteraão_Preço_Sub.Requery
MsgBox "Alteração Efetuada com Sucesso!!! ", vbOKOnly, "SI-V"

Else

Cancel = True
Me.Undo
End If


Outra duvida que tenho é porque ou em qual situação se usa para referenciar um campo

Me.campo ou me!campo qual a diferença?

desde já agradeço sua atenção.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Avelino Sampaio
Mensagens: 1871
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Atualizar

Mensagempor Avelino Sampaio » 28 Set 2017, 07:35

Marcelo,

acrescente a parte em vermelho e veja se atende:

Código:
...
Set DB = CurrentDb()
Set rs5 = DB.OpenRecordset("Alteração_Preço_Antigos")

Set rs4 = Me!Alteraão_Preço_Sub.Form.RecordsetClone
rs4.MoveFirst
Do While Not rs4.EOF
If rs4.Fields("AlteraçãoSelecionar") = True Then 'So Acrescentei esta linha no codigo.
rs4.Edit
rs5.AddNew
rs5![Valor_Alterado] = rs4![Preço_Venda]
rs5![Cód_Produto] = rs4![Cód_Produto]
rs5![Data_Alteração] = Date
rs4![Preço_Venda] = rs4![Preço_Venda] * Me!Texto22 + rs4![Preço_Venda]
rs5![Valor_Novo] = rs4![Preço_Venda]
rs5![Usuário] = getUsuarioAtual()
rs5![Cód_Empresa] = [Forms]![FPrincipal]![Cód_Empresa]
rs5![Aumento%] = Me!Texto22
rs4.Update
rs5.Update
End If
rs4.MoveNext
Loop
rs4.Close
rs5.Close
Set rs4 = Nothing
Set rs5 = Nothing
...


Tanto faz usar me. ou me! para referenciar nome de campos. Eu dou preferência para referenciar campos com o "me!" e para referenciar métodos e propriedades, usamos o "me."

Exemplos:

Me!NomeDoCampo
Me.AllowEdits = False 'propriedade
me.Requery 'método

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

marcelo3092
Mensagens: 89
Registrado em: 23 Jun 2016, 14:21

Re: Atualizar

Mensagempor marcelo3092 » 28 Set 2017, 13:53

Bom dia mestre era isso mesmo vc é muito fera obrigado por esclarecer minhas duvidas.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.



Voltar para “Módulos VBA”

Quem está online

Usuários neste fórum: Nenhum usuário registrado e 2 visitantes