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


4 participantes

    [Resolvido]Emitir só uma Mensagem

    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Emitir só uma Mensagem Empty Emitir só uma Mensagem

    Mensagem  Assis 6/1/2012, 00:20

    Boa Noite
    Tenho esta função da autoria do Mestre JPaulo
    E funciona perfeito.

    Só que emite esta mensagem
    "MsgBox "Movimentos Pendentes Registados", vbQuestion, "Gestão de Vendas"
    por cada registo que estiver em condições de ser transportado da tabela "tblVendasData" para a tabela "tblVendas".

    Será que dá para emitir só uma mensagem independentemente dos registos a transportar?



    Private Sub Form_Load()

    Dim rst, rst1 As Recordset
    Set rst = CurrentDb.OpenRecordset("select * from tblVendasData")
    Set rst1 = CurrentDb.OpenRecordset("select * from tblVendas")

    If rst.RecordCount = 0 Then Exit Sub
    rst.MoveLast
    rst.MoveFirst

    Do While Not rst.EOF
    'se a Data for igual a Hoje, adiciona na tabela tblVendas e apaga da tabela tblVendasData
    If rst.Fields("Data").Value <= Date Then
    rst1.AddNew

    rst1.Fields("ID").Value = Nz(DMax("Id", "tblVendas")) + 1
    rst1.Fields("CodigoControle").Value = rst.Fields("CodigoControle").Value
    rst1.Fields("Data").Value = rst.Fields("Data").Value
    rst1.Fields("Despesa").Value = rst.Fields("Despesa").Value
    rst1.Fields("Rubrica").Value = rst.Fields("Rubrica").Value
    rst1.Fields("Vlr").Value = rst.Fields("Vlr").Value
    'adiciona na tabela tblVendas
    rst1.Update
    MsgBox "Movimentos Pendentes Registados", vbQuestion, "Gestão de Vendas"
    'apaga na tabela tblVendasData
    rst.Delete
    Else
    'se não encontra não faz nada
    End If
    rst.MoveNext
    Loop
    Set rst = Nothing
    Me.Recalc
    End Sub


    .................................................................................
    *** Só sei que nada sei ***
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  criquio 6/1/2012, 00:23

    Olá, tente mudar a linha da mensagem para depois da linha do Loop e teste para ver.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  JPaulo 6/1/2012, 09:08

    Exatamente isso, enquanto estiver em loop vai dar uma mensagem por registro.

    Tem de fazer como o Criquio lhe passou, msgbox depois do loop, ou seja quando terminar.


    .................................................................................
    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

    [Resolvido]Emitir só uma Mensagem Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Emitir só uma Mensagem Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Emitir só uma Mensagem Folder_announce_new Instruções SQL como utilizar...
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  Assis 6/1/2012, 10:27

    Bom dia amigos

    JPaulo e Criquio

    Passei a menssagem para depois do Loop, e agora ao abrir o form "Movimentação" mesmo que não tenha nenhum registo a passar dá a mensagen na mesma.

    A ideia é ao abrir o form "Movimentação", se na tabela "tblVendasdata" tiver registos com data igual ou inferior à data do sistema, passar os mesmos para a tabela "tblVendas"

    Obrigado



    .................................................................................
    *** Só sei que nada sei ***
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  JPaulo 6/1/2012, 10:58

    Private Sub Form_Load()
    Dim x As Variant
    On Error Resume Next

    Dim rst, rst1 As Recordset

    Set rst = CurrentDb.OpenRecordset("select * from tblVendasData")
    Set rst1 = CurrentDb.OpenRecordset("select * from tblVendas")

    x = 0

    If rst.RecordCount = 0 Then Exit Sub

    rst.MoveLast
    rst.MoveFirst

    Do While Not rst.EOF
    'se a Data for igual a Hoje, adiciona na tabela tblVendas e apaga da tabela tblVendasData
    If rst.Fields("Data").Value <= Date Then
    x = 1
    rst1.AddNew
    rst1.Fields("ID").Value = Nz(DMax("Id", "tblVendas")) + 1
    rst1.Fields("CodigoControle").Value = rst.Fields("CodigoControle").Value
    rst1.Fields("Data").Value = rst.Fields("Data").Value
    rst1.Fields("Despesa").Value = rst.Fields("Despesa").Value
    rst1.Fields("Rubrica").Value = rst.Fields("Rubrica").Value
    rst1.Fields("Vlr").Value = rst.Fields("Vlr").Value
    'adiciona na tabela tblVendas

    rst1.Update

    'MsgBox "Movimentos Pendentes Registados", vbQuestion, "Aviso"

    'apaga na tabela tblVendasData
    rst.Delete
    Else
    'se não encontra não faz nada
    End If

    rst.MoveNext

    Loop
    If x = 1 Then
    MsgBox "Movimentos Pendentes Registados", vbQuestion, "Aviso"
    Else
    End If
    Set rst = Nothing

    Me.Recalc

    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

    [Resolvido]Emitir só uma Mensagem Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Emitir só uma Mensagem Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Emitir só uma Mensagem Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  JPaulo 6/1/2012, 14:24

    Funfou declarando a variavel ?


    .................................................................................
    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

    [Resolvido]Emitir só uma Mensagem Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Emitir só uma Mensagem Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Emitir só uma Mensagem Folder_announce_new Instruções SQL como utilizar...
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  Assis 6/1/2012, 17:29

    Obrigado JPaulo

    Perfeito

    E como informar na mensagem os registos que foram transferidos ?

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  Alexandre Neves 6/1/2012, 19:45

    Assis,

    Com a permissão do Grande JPaulo,

    Private Sub Form_Load()
    Dim x As long
    On Error Resume Next

    Dim rst, rst1 As Recordset

    Set rst = CurrentDb.OpenRecordset("select * from tblVendasData")
    Set rst1 = CurrentDb.OpenRecordset("select * from tblVendas")

    x = 0

    If rst.RecordCount = 0 Then Exit Sub

    rst.MoveLast
    rst.MoveFirst

    Do While Not rst.EOF
    'se a Data for igual a Hoje, adiciona na tabela tblVendas e apaga da tabela tblVendasData
    If rst.Fields("Data").Value <= Date Then
    x = x+1
    rst1.AddNew
    rst1.Fields("ID").Value = Nz(DMax("Id", "tblVendas")) + 1
    rst1.Fields("CodigoControle").Value = rst.Fields("CodigoControle").Value
    rst1.Fields("Data").Value = rst.Fields("Data").Value
    rst1.Fields("Despesa").Value = rst.Fields("Despesa").Value
    rst1.Fields("Rubrica").Value = rst.Fields("Rubrica").Value
    rst1.Fields("Vlr").Value = rst.Fields("Vlr").Value
    'adiciona na tabela tblVendas

    rst1.Update

    'MsgBox "Movimentos Pendentes Registados", vbQuestion, "Aviso"

    'apaga na tabela tblVendasData
    rst.Delete
    Else
    'se não encontra não faz nada
    End If

    rst.MoveNext

    Loop
    If x >0 Then
    MsgBox x & "Movimentos Pendentes Registados", vbQuestion, "Aviso"
    Else
    End If
    Set rst = Nothing

    Me.Recalc

    End Sub
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  Assis 6/1/2012, 20:30

    Obrigado Alexandre


    .................................................................................
    *** Só sei que nada sei ***
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  JPaulo 6/1/2012, 23:00

    Excelente ajuda ajuda Grande Alexandre, eu ia pelo rst1.RecordCount, mas como está, também está perfeito.

    Bom fim de semana.


    .................................................................................
    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

    [Resolvido]Emitir só uma Mensagem Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Emitir só uma Mensagem Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Emitir só uma Mensagem Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    [Resolvido]Emitir só uma Mensagem Empty Re: [Resolvido]Emitir só uma Mensagem

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 12/5/2024, 23:23