MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Como salvar na sequência em campo vazio

    Compartilhe
    avatar
    Alberto Moura
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 13/01/2015

    [Resolvido]Como salvar na sequência em campo vazio

    Mensagem  Alberto Moura em 9/1/2019, 14:33

    Bom dia todos!
    Estou tentando salvar na tabela na sequência de ID de acordo com o próximo selo, onde conste livro e fls vazio, estou usando a função DLookup, sendo q determinado momentos deixa de salvar na sequência, segue o BD para melhor entendimento. Conto com ajuda dos colegas.
    Preciso q salve na sequência
    Anexos
    TesteSelos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (73 Kb) Baixado 4 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10439
    Registrado : 04/11/2009

    Re: [Resolvido]Como salvar na sequência em campo vazio

    Mensagem  JPaulo em 10/1/2019, 10:08

    Olá;

    Assim;

    Seu banco aqui;
    Download

    Código:
    Private Sub btnsalvar_Click()
    Dim prtSelo As String
    Dim rs As DAO.Recordset
     
    If IsNull(txt_livro) Then
        MsgBox ("Livro e folha preenchimento Obrigatório!"), vbCritical, "HiginoSoft"
        Me.txt_livro.SetFocus
        Exit Sub
    End If

        Set rs = CurrentDb.OpenRecordset("SELECT selo FROM Tbl_Selos WHERE livro Is Null order by selo ASC")

        If rs.EOF Then MsgBox "Não existem selos disponíveis...", vbCritical, "HiginoSoft": Exit Sub
       

    prtSelo = rs!selo
    rs.Close: Set rs = Nothing

          Me.txt_selo.Value = prtSelo
          CurrentDb.Execute "UPDATE Tbl_Selos SET livro='" & Me.txt_livro & "' where selo = '" & Me.txt_selo & "'"
          CurrentDb.Execute "UPDATE Tbl_Selos SET fls='" & Me.txt_fls & "' where selo = '" & Me.txt_selo & "'"
          CurrentDb.Execute "UPDATE Tbl_Selos SET ato='" & Me.txtato & "' where selo = '" & Me.txt_selo & "'"
          CurrentDb.Execute "UPDATE Tbl_Selos SET datautilizado='" & Me.txt_dtcadastro & "' where selo = '" & Me.txt_selo & "'"
          CurrentDb.Execute "UPDATE Tbl_Selos SET usuario='" & Me.txt_operador & "' where selo = '" & Me.txt_selo & "'"
          Me.Refresh
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Utilize o Sistema de Busca do Fórum...
    102 Códigos VBA Gratuitos...
    Instruções SQL como utilizar...
    avatar
    FabioGO
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 22/08/2012

    Re: [Resolvido]Como salvar na sequência em campo vazio

    Mensagem  FabioGO em 10/1/2019, 10:33

    Não sei se é a melhor solução, mas esta fazendo que você quer.

    O que foi feito:

    1) Criei a variável SeloMenor para pegar o menor valor do selo em seu código de identificação

    Código:
    Dim SeloMenor As Long

    2) Pega os últimos 5 digitos do código do selo de menor valor em que o campo [livro] está nulo

    Código:
    SeloMenor = DMin("Int(Right([selo],5))", "Tbl_Selos", "IsNull([livro])=True")

    3) Busca o selo comparando com a variável do selo de menor valor (utilizando os 5 ultimos digitos) e que tem o campo [livro] nulo

    Código:
    prtSelo = Nz(DLookup("selo", "Tbl_Selos", "IsNull([livro])=true and Right(selo,5)= '" & SeloMenor & "'"), 0)


    Edit Laughing
    Anexos
    TesteSelos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (68 Kb) Baixado 5 vez(es)


    Última edição por FabioGO em 10/1/2019, 10:35, editado 1 vez(es) (Razão : postei no mesmo tempo do JP. Mas fica ai as duas alternativas)
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3761
    Registrado : 06/11/2009

    Re: [Resolvido]Como salvar na sequência em campo vazio

    Mensagem  Assis em 10/1/2019, 11:10

    Bom dia Fabio


    Se não tiver nenhum registro gravado na tabela tbl_selos, como grava o primeiro ?


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    FabioGO
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 22/08/2012

    Re: [Resolvido]Como salvar na sequência em campo vazio

    Mensagem  FabioGO em 10/1/2019, 11:40

    Bom dia Assis

    Nesse caso tem que fazer um outro tratamento, verificando se existe registro na tabela com um dcount por exemplo

    Só dei minha sugestão baseado no que o autor pediu no inicial, contando que ele já possui os códigos na tabela conforme modelo apresentado.

    É bem claro que sempre os exemplos do mestre JP são mais completos
    avatar
    Alberto Moura
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 13/01/2015

    Re: [Resolvido]Como salvar na sequência em campo vazio

    Mensagem  Alberto Moura em 10/1/2019, 11:54

    Obrigado FabioGO e Assis pela contribuição!
    Mais uma vez grato pela atenção do mestre JPaulo!
    Efetuei um teste salvando em mais de 1000 selos, funcionou perfeito.
    Exatamente o q precisava, obg a todos!
    cheers
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10439
    Registrado : 04/11/2009

    Re: [Resolvido]Como salvar na sequência em campo vazio

    Mensagem  JPaulo em 11/1/2019, 10:39

    Fico feliz.

    Obrigado pelo retorno o forum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Utilize o Sistema de Busca do Fórum...
    102 Códigos VBA Gratuitos...
    Instruções SQL como utilizar...

      Data/hora atual: 26/3/2019, 02:56