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]Mensagem do Access

    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Mensagem do Access Empty [Resolvido]Mensagem do Access

    Mensagem  Assis em 4/2/2019, 23:40

    Boa noite Amigos

    Estou a receber esta informação da imagem que anexo,

    [Resolvido]Mensagem do Access Sem_tz71


    Depois de executar o seguinte comando.

    Mas tudo o que quero que o comando execute é executado

    Private Sub Comando10_Click()

    Dim Cancel As Integer
    If IsNull(Me!Data) Or Me!Data = "" Then
    MsgBox "Falta A Data", vbExclamation, "Aviso"
    Cancel = True 'Cancela o evento
    Me.Data.SetFocus
    Exit Sub


    Else
    If IsNull(Me!Cliente) Or Me!Cliente = "" Then
    MsgBox "Falta o Nome do Cliente", vbExclamation, "Aviso"
    Cancel = True 'Cancela o evento
    Me.Cliente.SetFocus
    Exit Sub

    Else
    If IsNull(Me!Tipo) Or Me!Tipo = "" Then
    MsgBox "Falta o Tipo de Recebimento", vbExclamation, "Aviso"
    Cancel = True 'Cancela o evento
    Me.Tipo.SetFocus
    Exit Sub

    Else
    If IsNull(Me!Doc) Or Me!Doc = "" Then
    MsgBox "Falta o N? do Documento", vbExclamation, "Aviso"
    Cancel = True 'Cancela o evento
    Me.Doc.SetFocus
    Exit Sub

    Else
    If IsNull(Me!ValorPE) Or Me!ValorPE = "" Or Me!ValorPE = 0 Then
    MsgBox "Falta o Valor do Pedido de Encomenda", vbExclamation, "Aviso"
    Cancel = True 'Cancela o evento
    Me.ValorPE.SetFocus
    Exit Sub

    Else
    If IsNull(Me!Recebido) Or Me!Recebido = "" Or Me!Recebido = 0 Then
    MsgBox "Falta o Valor do Recebimento Adiantado", vbExclamation, "Aviso"
    Cancel = True 'Cancela o evento
    Me.Recebido.SetFocus
    Exit Sub


    End If
    End If
    End If
    End If
    End If
    End If


    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim Confirma
    Confirma = MsgBox("Confirma a Grava??o dos Dados Inseridos ?", vbYesNo, "Aviso")
    If Confirma = vbYes Then

    '--------------------------------------------------------------
       Dim rs As Recordset
       Set db = CurrentDb()
       Set rs = db.OpenRecordset("Clientes", dbOpenDynaset)
       rs.FindFirst "[Nome] = '" & Me![Cliente] & "'"
       rs.Edit
       rs("adiantado") = Nz(rs("adiantado"), 0) + Me.Recebido
       rs.Update
       rs.Close
       Set rs = Nothing
       Set db = Nothing
     '--------------------------------------------------
     
    Set rst = CurrentDb.OpenRecordset("Adiantado")
    With rst

    .AddNew
    rst("Data") = Me.Data
    rst("cliente") = Me.Cliente
    rst("Tipo") = Me.Tipo
    rst("banco") = Me.Banco
    rst("vrecebido") = Me.Recebido
    rst("porcontade") = Me.PorContaDe
    rst("Loja") = Forms.menu.Loja
    rst("Doc") = Me.Doc
    rst("valorencomenda") = Me.ValorPE
    rst("saldo") = Me.Saldo 'Me.ValorPE - Me.Recebido
    .Update
    End With


    Final:
    Me.Incorporado37.Requery

    Me.Data = Date
    Me.Cliente = ""
    Me.Tipo = ""
    Me.Banco = ""
    Me.Doc = ""
    Me.Recebido = ""
    Me.PorContaDe = ""
    Me.ValorPE = ""
    Me.Saldo = "0.00"
    Me.Texto26.Visible = False
    Call Form_Current
    Me.Data.SetFocus


    '------------------------
    If MsgBox("Imprimir Recibo Adiantado ?", vbYesNo, "Aviso") = vbYes Then

     DoCmd.openForm "ReciboAD"
    Else
     DoCmd.Close acForm, "ReciboAD"
    End If
    '-------------------------
    'Exit Sub

    Else
    MsgBox "Cancelar Gravação ?", vbCritical, "Aviso"
    Me.Data = Date
    Me.Cliente = ""
    Me.Tipo = ""
    Me.Doc = ""
    Me.Banco = ""
    Me.Recebido = ""
    Me.PorContaDe = ""
    Me.ValorPE = ""
    Me.Texto26.Visible = False
    Me.Saldo = "0.00"
    Call Form_Current
    Me.Data.SetFocus
    Exit Sub
    End If


    End Sub


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

    Respeito às Regras 100%

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

    [Resolvido]Mensagem do Access Empty Re: [Resolvido]Mensagem do Access

    Mensagem  JPaulo em 5/2/2019, 09:51

    Olá;

    O amigo Assis vai-me desculpar, mas o que vejo aqui é nada mais do que uma MIXÓRDIA sem qualquer modelagem.

    Normalmente essa mensagem aparece, quando se está a utilizar palavras reservadas do Ms Access e não somente.

    Exempo: Nome, Data, Cancel, etc...

    Muito para além disso, você está a utilizar mal a modelagem de dados, ou seja, está a utilizar inumeros Else`s quando deveria de utilizar ElseIf, ou os If`s separados.

    Esta instrução está incorreta, jamais irá cancelar o evento, porque esse cancel não faz parte do evento Click():

    Cancel = True 'Cancela o evento

    Ainda mais trechos bem mal:

    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim Confirma
    Confirma = MsgBox("Confirma a Grava??o dos Dados Inseridos ?", vbYesNo, "Aviso")
    If Confirma = vbYes Then

    '--------------------------------------------------------------
      Dim rs As Recordset
      Set db = CurrentDb()
      Set rs = db.OpenRecordset("Clientes", dbOpenDynaset)
      rs.FindFirst "[Nome] = '" & Me![Cliente] & "'"
      rs.Edit
      rs("adiantado") = Nz(rs("adiantado"), 0) + Me.Recebido
      rs.Update
      rs.Close
      Set rs = Nothing
      Set db = Nothing
    '--------------------------------------------------


    .................................................................................
    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]Mensagem do Access Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem do Access Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem do Access Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    [Resolvido]Mensagem do Access Empty Re: [Resolvido]Mensagem do Access

    Mensagem  JPaulo em 5/2/2019, 10:14

    Aconselho a mudar todos os nomes dos controles e campos que usam palavras reservadas do Ms Access.

    Uma modelagem correta:

    Código:
    Private Sub Comando10_Click()
    Dim db As DAO.Database
    Dim db1 As DAO.Database
    Dim rs As DAO.Recordset
    Dim rst As DAO.Recordset
    Dim Msg$

        If IsNull(Me!Data) Or Me!Data = "" Then
            MsgBox "Falta A Data", vbExclamation, "Aviso"
            Me.Data.SetFocus
            Exit Sub
        End If

        If IsNull(Me!Cliente) Or Me!Cliente = "" Then
            MsgBox "Falta o Nome do Cliente", vbExclamation, "Aviso"
            Me.Cliente.SetFocus
            Exit Sub
        End If

        If IsNull(Me!Tipo) Or Me!Tipo = "" Then
            MsgBox "Falta o Tipo de Recebimento", vbExclamation, "Aviso"
            Me.Tipo.SetFocus
            Exit Sub
        End If

        If IsNull(Me!Doc) Or Me!Doc = "" Then
            MsgBox "Falta o N? do Documento", vbExclamation, "Aviso"
            Me.Doc.SetFocus
            Exit Sub
        End If
       
        If IsNull(Me!ValorPE) Or Me!ValorPE = "" Or Me!ValorPE = 0 Then
            MsgBox "Falta o Valor do Pedido de Encomenda", vbExclamation, "Aviso"
            Me.ValorPE.SetFocus
            Exit Sub
        End If

        If IsNull(Me!Recebido) Or Me!Recebido = "" Or Me!Recebido = 0 Then
            MsgBox "Falta o Valor do Recebimento Adiantado", vbExclamation, "Aviso"
            Me.Recebido.SetFocus
            Exit Sub
        End If

        If MsgBox("Confirma a Gravação dos Dados Inseridos ?", vbYesNo, "Aviso") = vbNo Then
            Me.Data = Date
            Me.Cliente = ""
            Me.Tipo = ""
            Me.Doc = ""
            Me.Banco = ""
            Me.Recebido = ""
            Me.PorContaDe = ""
            Me.ValorPE = ""
            Me.Texto26.Visible = False
            Me.Saldo = "0.00"
            Call Form_Current
            Me.Data.SetFocus
            Exit Sub
        Else
    '--------------------------------------------------------------
      Set db = CurrentDb()
      Set rs = db.OpenRecordset("Clientes", dbOpenDynaset)
        rs.FindFirst "[Nome] = '" & Me![Cliente] & "'"
        rs.Edit
        rs("adiantado") = Nz(rs("adiantado"), 0) + Nz(Me.Recebido, 0)
        rs.Update
      rs.Close: Set rs = Nothing
      db.Close: Set db = Nothing
     '--------------------------------------------------
     
        Set db1 = CurrentDb()
        Set rst = db1.OpenRecordset("Adiantado", dbOpenDynaset)
        With rst
        .AddNew
            rst("Data") = Me.Data.Value
            rst("cliente") = Me.Cliente.Value
            rst("Tipo") = Me.Tipo.Value
            rst("banco") = Me.Banco.Value
            rst("vrecebido") = Me.Recebido.Value
            rst("porcontade") = Me.PorContaDe.Value
            rst("Loja") = Forms!menu.Form!Loja
            rst("Doc") = Me.Doc.Value
            rst("valorencomenda") = Me.ValorPE.Value
            rst("saldo") = Me.Saldo.Value 'Me.ValorPE - Me.Recebido
        .Update
        End With
      rst.Close: Set rst = Nothing
      db1.Close: Set db1 = Nothing
    '......................................................................
       
        Me.Incorporado37.Requery
        Me.Data = Date
        Me.Cliente = ""
        Me.Tipo = ""
        Me.Banco = ""
        Me.Doc = ""
        Me.Recebido = ""
        Me.PorContaDe = ""
        Me.ValorPE = ""
        Me.Saldo = "0.00"
        Me.Texto26.Visible = False
            Call Form_Current
        Me.Data.SetFocus

    '------------------------
        If MsgBox("Imprimir Recibo Adiantado ?", vbYesNo, "Aviso") = vbYes Then
        DoCmd.OpenForm "ReciboAD"
        Else
        Exit Sub
        End If
    '-------------------------
    Exit_1:
        DoCmd.Hourglass False
        DoCmd.Echo True
        Exit Sub

    1:
        DoCmd.Hourglass False
        DoCmd.Echo True
        Msg = "Erro # " & Str(Err.Number) & " gerado na " & Err.Source _
            & vbNewLine & vbNewLine & "Descrição: " & Err.Description _
            & vbNewLine & vbNewLine & "Por favor contate o Administrador do Sistema."
        MsgBox Msg, vbMsgBoxHelpButton + vbCritical, "Erro", Err.HelpFile, Err.HelpContext
        Resume Exit_1
    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]Mensagem do Access Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem do Access Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem do Access Folder_announce_new Instruções SQL como utilizar...
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Mensagem do Access Empty Re: [Resolvido]Mensagem do Access

    Mensagem  Assis em 5/2/2019, 13:19

    Boa tarde JPaulo

    Apliquei o seu código e a Aviso do Access continuou.

    Cheguei a conclusão que o erro está na formatação de uma caixa de combinação, para não mostrar casas decimais.

    Mas a caixa de combinação é alimentada por um campo da tabela que não tem casas decimais. Na tabela esta formatado como "Numero Inteiro", casas decimais "0"

    Se formatar a caixa de combinação ----> Dá o Aviso

    Se não formatar a caixa ------------------> Não dá o Aviso

    Obrigado

    [Resolvido]Mensagem do Access Sem_tz73


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

    Respeito às Regras 100%

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

    [Resolvido]Mensagem do Access Empty Re: [Resolvido]Mensagem do Access

    Mensagem  JPaulo em 5/2/2019, 13:35

    Certo.

    Você não mencionou nada do que está mal e eu lhe disse acima, mas vá por mim, corriga tudo o que está mal, porque um dia destes o banco vai corromper.

    Teste assim:

    Código:
    NDOC: CInt([DOC])

    Mas retire toda a formatação da caixa de combinação, deixe esse trabalho para o SQL da origem.


    .................................................................................
    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]Mensagem do Access Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem do Access Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem do Access Folder_announce_new Instruções SQL como utilizar...
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Mensagem do Access Empty Re: [Resolvido]Mensagem do Access

    Mensagem  Assis em 5/2/2019, 13:53

    JPaulo

    Esta última resolveu. NDOC: CInt([DOC])

    Quanto á sua pergunta: Sim mudei os nomes dos campos e controles

    Obrigado.

    PS : Esta BD já funciona á quatro anos e até hoje tudo OK, e está sempre em evolução, com a ajuda do Forum.

    Obrigado



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

    Respeito às Regras 100%

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

    [Resolvido]Mensagem do Access Empty Re: [Resolvido]Mensagem do Access

    Mensagem  JPaulo em 5/2/2019, 13:59

    Fico feliz e espero que funcione por mais 4 anos.

    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

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

    Conteúdo patrocinado

    [Resolvido]Mensagem do Access Empty Re: [Resolvido]Mensagem do Access

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 6/12/2019, 05:37