E aí pessoal, tudo bem!!
Eu uso o modelo de aplicativo criado pelo Tomás na empresa onde trabalho e já fiz várias adaptações nele, e hoje, me surgiu uma necessidade que até então, não havia pensado.
Hoje eu uso ele para registrar alguns atendimentos de clientes, e normalmente a NF do cliente, possuí vários itens, e até então, eu vinha redigitando alguns dados para gerar mais de um atendimento para o mesmo cliente e mesma NF, porém, as coisas começaram a apertar e já não tenho o mesmo tempo de antes.
Preciso então, de um auxílio de vocês para que, ao selecionar um atendimento, eu possa clicar em um OptionButton de nome "Copiar Dados" e que ele copiasse tudo que foi carregado no formulário e em seguida eu clique em Salvar e ele salve todos estes dados, porém em um novo ID.
Tentei algumas variações com os códigos já existentes no aplicativo, mas tem coisas que vão além do conhecimento ou do raciocínio do usuário.
Vocês poderiam me dar um auxílio nesta questão?
Obrigado e já agradeço a ajuda, pois sei que aqui, todos possuem outras tarefas além do fórum.
Ps. Eu fiz várias pesquisas no fórum sobre o assunto e não encontrei, mas caso tenha outro tópico com o mesmo tipo de dúvida, me avisem que fecho este o uso o anterior.
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Duplicar Dados Formulário
- Valderei
- Colaborador
- Mensagens: 47
- Registrado em: Qui Dez 27, 2012 9:57 pm
- Localização: Caxias do Sul - RS
Re: Duplicar Dados Formulário [RESOLVIDO]
Pessoal, eu novamente.
Acho que só precisava compartilhar meu sofrimento com alguém.
Consegui adaptar alguns códigos para resolver meu caso.
Abaixo segue o código que usei, caso alguém tem interesse:
Parte 01
Parte 02
Acho que só precisava compartilhar meu sofrimento com alguém.
Consegui adaptar alguns códigos para resolver meu caso.
Abaixo segue o código que usei, caso alguém tem interesse:
Parte 01
Código: Selecionar todos
'Copiar Dados
If optCopiarRegistro.Value Then
Dim Answer As VbMsgBoxResult
Answer = MsgBox("Deseja copiar os dados nº " & TextBoxID.Text & " ?", vbYesNo, "Duplicar Dados")
If Answer = vbYes Then
Sh1.Range(Sh1.Cells(indiceRegistro, colID), Sh1.Cells(indiceRegistro, colID)).EntireRow.Copy
proximoId = PegaProximoId
proximoIndice = Sh1.UsedRange.Rows.Count + 1
Call SalvaRegistro(proximoId, proximoIndice)
TextBoxID = proximoId
lblMensagem.Caption = "Registro duplicado com sucesso"
Application.CutCopyMode = False
Unload Me
frmCadastro.Show
End If
End If
Código: Selecionar todos
'===============================================================================================
Private Sub optCopiarRegistro_Click()
If TextBoxID.Text <> vbNullString And TextBoxID.Text <> "" Then
Call HabilitaControles
Call DesabilitaBotoesAlteracao
'Dá foco no Id do formulário
TextBoxID.SetFocus
Else
lblMensagem.Caption = "Não há registro a ser copiado"
End If
End Sub
'===============================================================================================
-
- Colaborador
- Mensagens: 53
- Registrado em: Qua Mar 15, 2017 11:31 am
Re: Duplicar Dados Formulário
Valderei,
Estou com um problema semelhante ao seu, mas no meu caso, eu necessito mudar na maioria das vezes, somente o dado do campo texto (Lote/Emb), ex.: 10.000/001. Mudo só os dados depois da /, isso para muitos registros.
Para tanto, criei a rotina de criação e salvamento de um novo registro, no evento BeforeUpdate, do campo Lote/Emb, pois facilita para o usuário, trabalhar somente com o enter.
Mas acontece que estou esbarrando em um problema, pois ao alterar o dado do campo Lote/Emb, um novo registro é salvo, mas o foco não volta para o campo em questão, sendo o cursor deslocado, para o próximo campo do formulário.
Abaixo, segue os códigos que esta rotina executa:
Sds,
Estou com um problema semelhante ao seu, mas no meu caso, eu necessito mudar na maioria das vezes, somente o dado do campo texto (Lote/Emb), ex.: 10.000/001. Mudo só os dados depois da /, isso para muitos registros.
Para tanto, criei a rotina de criação e salvamento de um novo registro, no evento BeforeUpdate, do campo Lote/Emb, pois facilita para o usuário, trabalhar somente com o enter.
Mas acontece que estou esbarrando em um problema, pois ao alterar o dado do campo Lote/Emb, um novo registro é salvo, mas o foco não volta para o campo em questão, sendo o cursor deslocado, para o próximo campo do formulário.
Abaixo, segue os códigos que esta rotina executa:
Código: Selecionar todos
Private Sub txt07_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim proximoId As Long
Dim proximoIndice As Long
Dim Result As VbMsgBoxResult
If cmdCopia.Enabled = True Then
'Pega o próximo registro
proximoId = PegaProximoId
'atualiza o arquivo para pegar o próximo registro atualizado
Call AtualizarArquivo(False)
proximoIndice = wscadastro.UsedRange.Rows.Count + 1
Call SalvaRegistro(proximoId, proximoIndice)
txtRegistro = proximoId
MsgBox "Cópia realizada com sucesso...!", vbExclamation, "SALVAMENTO"
Me.txtRegistro = Format(txtRegistro, "0000")
call cmdcopia_click
End If
End Sub
Código: Selecionar todos
Private Sub cmdCopia_Click()
Dim proximoId As Long
Dim lngTime As Long
Dim i As Integer
cmdNovo.Enabled = False
cmdAlterar.Enabled = False
cmdExcluir.Enabled = False
Call HabilitaControles
'Busca o último registro
IndiceRegistro = wscadastro.UsedRange.Rows.Count
If IndiceRegistro > 1 Then
Call CarregaRegistro
End If
Me.txt07.SetFocus
End Sub
-
- Colaborador
- Mensagens: 53
- Registrado em: Qua Mar 15, 2017 11:31 am
Re: Duplicar Dados Formulário
Senhores,
A solução que eu encontrei para o meu caso, foi a de criar um novo campo texto no formulário, que só é acionado, quando clico no botão de cópia.
Coloquei o primeiro código mostrado acima, no evento KeyDown do mesmo.
Sds,
A solução que eu encontrei para o meu caso, foi a de criar um novo campo texto no formulário, que só é acionado, quando clico no botão de cópia.
Coloquei o primeiro código mostrado acima, no evento KeyDown do mesmo.
Sds,