[resolvido] Gerar ID para grupo pelo form

Moderador: Avelino Sampaio

Avatar do usuário
Carvalho
Mensagens: 143
Registrado em: 21 Ago 2015, 23:22

[resolvido] Gerar ID para grupo pelo form

Mensagempor Carvalho » 03 Jul 2018, 16:55

Senhores boa tarde,

tenho um form que gera automaticamente os itens de uma tabela, e nessa tabela se faz um relatório agrupado por "Bloco" exemplo,

E12C...E13C...E14C... ai vem o problema, gostaria de que ao apertar de um botão ele gerasse uma ID para cada grupo desses blocos na tabela IDSaida, tipo assim

E12C - 1110
E12C - 1110
E12C - 1110
E12C - 1110
E13C - 1123
E13C - 1123
E13C - 1123
E13C - 1123
E14C - 1345
E14C - 1345
E14C - 1345
E14C - 1345
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Disable adblock

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


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

Re: Gerar ID para grupo pelo form

Mensagempor Avelino Sampaio » 08 Jul 2018, 12:52

Carvalho

creio que vc possa executar esta tarefa, usando programação direto no relatório. Vc que é meu assinante, assista a vídeo-aula deste meu artigo:

http://www.usandoaccess.com.br/tutoriais/video-programacao-de-relatorios.asp?id=1#inicio

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

Avatar do usuário
Carvalho
Mensagens: 143
Registrado em: 21 Ago 2015, 23:22

Re: Gerar ID para grupo pelo form

Mensagempor Carvalho » 08 Jul 2018, 13:35

obrigado Avelino, porem não é no relatório e sim na tabela para ficar gravado no campo IDsaida cada grupo ter sua id única.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

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

Re: Gerar ID para grupo pelo form

Mensagempor Avelino Sampaio » 08 Jul 2018, 14:23

Carvalho,

veja se o exemplo que fiz atende. utilizei o seguinte código no botão:

Código:
Private Sub Comando0_Click()
Dim rs As DAO.Recordset
Dim strSql$
Dim uid&
Dim cod$
'retorna com o recordset, somente dos registros sem o ID
strSql = "SELECT Codigo,ID FROM tblTeste WHERE id =0 ORDER BY Codigo;"
'Abre o recordset
Set rs = CurrentDb.OpenRecordset(strSql)
'captura o último ID lançado
uid = DMax("id", "tblTeste")
'percorrer os registros para numerar o ID
Do While Not rs.EOF
'verifica se mudou o código para acrecentar 1 ao ID
If cod <> rs!codigo Then
uid = uid + 1
cod = rs!codigo
End If
'atualiza a tabela com o novo ID
rs.Edit
rs!id = uid
rs.Update
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
MsgBox "Tabela Atualizada...", vbInformation, "Aviso"
DoCmd.OpenTable "tblTeste"
End Sub


Aguardamos
Você deve estar registrado e autenticado para ter acesso ao arquivo anexo.
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Disable adblock

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


Avatar do usuário
Carvalho
Mensagens: 143
Registrado em: 21 Ago 2015, 23:22

[Resolvido] Gerar ID para grupo pelo form

Mensagempor Carvalho » 08 Jul 2018, 20:45

Sensacional senhor Avelino, funcionou perfeitamente, fiz algumas alterações para que o numero randomizasse e ficou perfeito, obrigado.



Obs: Obrigado por ter reativado o fórum, nos ajuda muito, Deus continue te abençoando e te dando força e entendimento.


alteração feitas!

Código: Selecionar todos

Private Sub Comando0_Click()
Dim rs As DAO.Recordset
Dim strSql$
Dim uid&
Dim cod$
Dim Rn As Double 'alterado aqui
   Randomize  'alterado aqui
    Rn = Int(Rnd() * 99999) 'alterado aqui

    CurrentDb.Execute "Update tblteste SET Id = 0" 'alterado aqui
   
'retorna com o recordset, somente dos registros sem o ID
strSql = "SELECT Codigo,ID FROM tblTeste WHERE id =0 ORDER BY Codigo;"
'Abre o recordset
Set rs = CurrentDb.OpenRecordset(strSql)
'captura o último ID lançado
uid = DMax("id", "tblTeste")
'percorrer os registros para numerar o ID
Do While Not rs.EOF
    'verifica se mudou o código para acrecentar 1 ao ID
    If cod <> rs!codigo Then
    uid = uid + Rn 'alterado aqui
        cod = rs!codigo
    End If
    'atualiza a tabela com o novo ID
    rs.Edit
        rs!id = uid
    rs.Update
    rs.MoveNext
Loop
rs.Close
Set rs = Nothing
MsgBox "Tabela Atualizada...", vbInformation, "Aviso"
DoCmd.OpenTable "tblTeste"
End Sub


Resolvido!
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Disable adblock

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



Voltar para “Formulários”

Quem está online

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