MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

2 participantes

    [Resolvido]Criar numeração de OS.

    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Criar numeração de OS. Empty [Resolvido]Criar numeração de OS.

    Mensagem  XPTOS 8/2/2015, 01:37

    Prezados,

    Nesse pequeno esboço eu tenho a tabela tblAuditoriaRepasse para cadastro de registros, e por meio do formulario frmPesquisarAuditRep, gostaria de criar ordem de serviço com numeração para os registros que eu selecionar no campo sim/não, ou seja, a numeração da OS deve repetir até o registro que eu selecionar.

    Ex: Somente com os registros selecionadas (-1)

    Registro x Numeração
    A 2
    B 2
    C 2
    D 2

    Alguém me da uma dica, estou quebrando a cabeça?

    Link: https://www.dropbox.com/s/fkjq9k82hx81k8r/Ordem%20de%20Servi%C3%A7o.accdb?dl=0
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Criar numeração de OS. Empty Re: [Resolvido]Criar numeração de OS.

    Mensagem  XPTOS 8/2/2015, 23:15

    Up!

    Estou caminhando com os estudos da numeração da OS na tabela, mas caso alguém queira me sugerir outro caminho?
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4144
    Registrado : 29/06/2012

    [Resolvido]Criar numeração de OS. Empty Re: [Resolvido]Criar numeração de OS.

    Mensagem  Noobezinho 8/2/2015, 23:21

    Gomes

    Sei como incrementar letras, mas preciso entender melhor sobre os registros.
    O primeiro exemplo, já tem, como ficaria o segundo, terceiro, etc ... ?

    "a numeração da OS deve repetir até o registro que eu selecionar."

    Explique, por favor.

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Criar numeração de OS. Empty Re: [Resolvido]Criar numeração de OS.

    Mensagem  XPTOS 9/2/2015, 01:38

    Perfeito,
    Seu raciocínio está correto, pois pretendo que o número repita até o registro que eu selecionar.
    Porque após a seleção vou usar o botão de pré reserva para setar os itens selecionados para tblAuditoriaRepasseOs.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4144
    Registrado : 29/06/2012

    [Resolvido]Criar numeração de OS. Empty Re: [Resolvido]Criar numeração de OS.

    Mensagem  Noobezinho 9/2/2015, 12:48

    Gomes

    Continuo não entendendo o que quer dizer com

    "que o número repita até o registro que eu selecionar"

    Que registro é esse, qual seria o código dele?

    Preciso saber o que fará com que pare de ficar repetindo o número de registro.

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Criar numeração de OS. Empty Re: [Resolvido]Criar numeração de OS.

    Mensagem  XPTOS 9/2/2015, 12:59

    No formulario tem um campo chamado Selecionar ("origem tabela tblAuditoriaRepasse"). Nesse eu seleciono os registros que pretendo criar um numero de OS, depois de selecionado os registros eu uso botão Capition PréReserva para inserir registros na tabela AuditoriaRepasseOS.

    Veja o print, meu unico problema é que o campo IDOS está saindo como numeração automatica. mas queria que fosse gerado um numero único para os registros inseridos pelo botão pré reserva.

    https://www.dropbox.com/s/8iguwc6q18uycsr/Doc1.docx?dl=0

    Precisando de esclarecimentos adicionais, só me sinalizar,

    Grato,
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Criar numeração de OS. Empty Re: [Resolvido]Criar numeração de OS.

    Mensagem  XPTOS 11/2/2015, 10:34

    Obrigado amigo,

    Consegui adiantar alguma coisa, conforme abaixo:

    Porém, o código está inserindo o IDOS em todos os registros, veja exemplo: https://www.dropbox.com/s/fkjq9k82hx81k8r/Ordem%20de%20Servi%C3%A7o.accdb?dl=0

    Minha ideia seria antes de inserir o codigo percorresse a tblOS verificassse o último IDOS e incrementar mais um, ou seja, se o último registro DMAX da tblOS for 1, o próximo IDOS a incrementar na tabela seria 2.

    Dim resp As String
    resp = MsgBox("Deseja confirmar a pré-reserva do(s) documento(s) selecionado(s)?", vbQuestion + vbYesNo, "Excluindo Registro...")
    If resp = vbYes Then
    DoCmd.OpenQuery "os"

    Dim db As Database, RS As Recordset
    Set db = CurrentDb
    Set RS = CurrentDb.OpenRecordset("Select * from tblAuditoriaRepasseOS")

    With RS
    Do While Not RS.EOF

    RS.Edit
    RS.Fields("IDOS") = ("0" + 1) '& ID
    RS.Update
    RS.MoveNext

    Loop
    Set RS = Nothing

    resp = MsgBox("Reserva finalizada com sucesso", vbQuestion + vbOKOnly, "Reserva...")

    End With
    db.Close
    End If
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Criar numeração de OS. Empty Re: [Resolvido]Criar numeração de OS.

    Mensagem  XPTOS 12/2/2015, 17:10

    Estou conseguindo evoluir com minha demanda de forma gradativa, usei o código em vermelho mas inseriu somente o primeiro registro na tblOS.
    Penso que deveria inserir uma condição, ou seja, If ("Me.Selecionar") = -1 then, dai o código insere todos os registros selecionados na tblOS.

    Link:https://www.dropbox.com/s/fkjq9k82hx81k8r/Ordem%20de%20Servi%C3%A7o.accdb?dl=0

    Sugestões?

    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim resp As String

    resp = MsgBox("Deseja confirmar a pré-reserva do(s) documento(s) selecionado(s)?", vbQuestion + vbYesNo, "Excluindo Registro...")
    If resp = vbYes Then
    'DoCmd.OpenQuery "os"
    Set db = CurrentDb
    Set rst = CurrentDb.OpenRecordset("tblAuditoriaRepasseOS")
    With rst

    'INSERT INTO tblAuditoriaRepasseOS ( ID, TipologiaDocumental, Origem, Assunto, txtDataCadastro, txtDataDoc, txtConvenio, txtMes, txtAno, txtNumProcesso, txtDataProcesso, txtDataCredito, txtDataNotaFiscal, txtCorredor, txtEstante, txtCaixaCont, txtCaixaLoc, Selecionar, Eliminar )
    'SELECT tblAuditoriaRepasse.ID, tblAuditoriaRepasse.TipologiaDocumental, tblAuditoriaRepasse.Origem, tblAuditoriaRepasse.Assunto, tblAuditoriaRepasse.txtDataCadastro, tblAuditoriaRepasse.txtDataDoc, tblAuditoriaRepasse.txtConvenio, tblAuditoriaRepasse.txtMes, tblAuditoriaRepasse.txtAno, tblAuditoriaRepasse.txtNumProcesso, tblAuditoriaRepasse.txtDataProcesso, tblAuditoriaRepasse.txtDataCredito, tblAuditoriaRepasse.txtDataNotaFiscal, tblAuditoriaRepasse.txtCorredor, tblAuditoriaRepasse.txtEstante, tblAuditoriaRepasse.txtCaixaCont, tblAuditoriaRepasse.txtCaixaLoc, tblAuditoriaRepasse.Selecionar, tblAuditoriaRepasse.Eliminar
    'FROM tblAuditoriaRepasse
    'WHERE (((tblAuditoriaRepasse.Selecionar)=-1));

    'Do While Not rst.EOF
    rst.AddNew
    rst("IDOS") = Nz(DMax("[IDOS]", "tblAuditoriaRepasseOS")) + 1
    rst("TipologiaDocumental") = Me.TipologiaDocumental
    rst("Origem") = Me.Origem
    rst("Assunto") = Me.Assunto
    rst("txtDataCadastro") = Me.txtDataCadastro
    rst("txtDataDoc") = Me.txtDataDoc
    rst("txtConvenio") = Me.txtConvenio
    rst("txtMes") = Me.txtMes
    rst("txtAno") = Me.txtAno
    rst("txtNumProcesso") = Me.txtNumProcesso
    rst("txtDataProcesso") = Me.txtDataProcesso
    rst("txtDataCredito") = Me.txtDataCredito
    rst("txtDataNotaFiscal") = Me.txtDataNotaFiscal
    rst("txtCorredor") = Me.txtCorredor
    rst("txtEstante") = Me.txtEstante
    rst("txtCaixaCont") = Me.txtCaixaCont
    rst("txtCaixaLoc") = Me.txtCaixaLoc
    rst("Selecionar") = Me.Selecionar
    rst("Eliminar") = Me.Eliminar
    'rst.MoveNext
    rst.Update
    'Loop
    End With
    resp = MsgBox("Reserva finalizada com sucesso", vbQuestion + vbOKOnly, "Reserva...")

    rst.Close
    End If
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4144
    Registrado : 29/06/2012

    [Resolvido]Criar numeração de OS. Empty Re: [Resolvido]Criar numeração de OS.

    Mensagem  Noobezinho 12/2/2015, 18:57

    Gomes

    Veja ai:


    Private Sub Comando47_Click()
    Dim resp As String, rs1 As Recordset, rs2 As Recordset, i As Byte, mSQL As String
    Dim maxOS As String
    DoCmd.Save


             
    If MsgBox("Deseja confirmar a pré-reserva do(s) documento(s) selecionado(s)?", vbQuestion + vbYesNo, "Excluindo Registro...") = vbYes Then
      '1º Passo: Fazer uma consulta(recordset) da tabela tblAuditoriaRepasse usando como critério o campo Selecionar= -1
              'Para podermos percorrer cada registro e fazer sua OS.
     
      mSQL = "SELECT tblAuditoriaRepasse.* FROM tblAuditoriaRepasse " & _
             "WHERE (((tblAuditoriaRepasse.Selecionar)=True));"
      '2º Passo: Abrir 2 recordset:
      '          rs1: da consulta que criamos acima
      '          rs2: da tabela tblAuditoriaRepasseOS, onde gravaremos as OS
      Set rs1 = CurrentDb.OpenRecordset(mSQL)
      Set rs2 = CurrentDb.OpenRecordset("tblAuditoriaRepasseOS", dbOpenTable)
     
      rs1.MoveFirst
           
           
            Do While Not rs1.EOF
                 
                maxOS = Nz(DMax("[IDOS]", "tblAuditoriaRepasseOS", "Right([IDOS], Len([IDOS]) - InStr(1,[IDOS], '.')) = forms!frmPesquisarAuditRep!ID"), 0)
                  rs2.AddNew
                  If maxOS = 0 Then
                     rs2!IDOS = "1" & "." & Me.ID
                  Else
                     rs2!IDOS = (Left(maxOS, InStr(1, maxOS, ".") - 1) + 1) & "." & Me.ID
                  End If

                  rs2!IDOS = (Left(maxOS, InStr(1, maxOS, ".") - 1) + 1) & "." & Me.ID
                  rs2!TipologiaDocumental = rs1!TipologiaDocumental
                  rs2!Origem = rs1!Origem
                  rs2!Assunto = rs1!Assunto
                  rs2!txtDataCadastro = rs1!txtDataCadastro
                  rs2!txtDataDoc = rs1!txtDataDoc
                  rs2!txtConvenio = rs1!txtConvenio
                  rs2!txtMes = rs1!txtMes
                  rs2!txtAno = rs1!txtAno
                  rs2!txtNumProcesso = rs1!txtNumProcesso
                  rs2!txtDataProcesso = rs1!txtDataProcesso
                  rs2!txtDataCredito = rs1!txtDataCredito
                  rs2!txtDataNotaFiscal = rs1!txtDataNotaFiscal
                  rs2!txtCorredor = rs1!txtCorredor
                  rs2!txtEstante = rs1!txtEstante
                  rs2!txtCaixaCont = rs1!txtCaixaCont
                  rs2!txtCaixaLoc = rs1!txtCaixaLoc
                  rs2!Selecionar = rs1!Selecionar
                  rs2!Eliminar = rs1!Eliminar
                  rs2.Update
                  rs1.MoveNext
              Loop
       
    'Consulta atualização, para zerar todos os campos selecionar.
    DoCmd.SetWarnings False
    DoCmd.RunSQL "UPDATE tblAuditoriaRepasse SET tblAuditoriaRepasse.Selecionar = 0;"
    DoCmd.SetWarnings True



    resp = MsgBox("Reserva finalizada com sucesso", vbQuestion + vbOKOnly, "Reserva...")

    End If
    rs1.Close
    rs2.Close

    End Sub

    Re editado

    Estude bem os códigos, principalmente referente ao código da OS.
    Formato do código da OS :
    1.4
    2.4
    3.4



    [ ]'s

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Criar numeração de OS. Empty Re: [Resolvido]Criar numeração de OS.

    Mensagem  XPTOS 13/2/2015, 19:53

    Olá,

    Agradeço a atenção e código disponibilizado.

    Vou estudar mais esse código e adaptar a minha necessidade.

      Data/hora atual: 3/12/2022, 02:09