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]Campo no subformulário for nulo, não deixar continuar

    Compartilhe
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  Assis em 17/4/2018, 22:09

    Boa noite

    Neste código quando o "Texto36" for nulo não deixar abrir o formulário "frmProdutoAlterar"

    Texto 36 é numero padrão

    Não dá erro nenhum nenhum dos 2 If

    Código:
    '=============================
    Private Sub btnAlterar_Click()

    'If IsNull(Forms![frmproduto]![frmProduto_Composicao].Form![Texto36]) Then


    If IsNull(Forms![frmproduto]![frmProduto_Composicao]![Texto36]) Then
         Exit Sub
    Else
          DoCmd.openForm "frmProdutoAlterar", , , "[Ref]= '" & Me!ref & "'"
       End If
    End Sub


    Obrigado


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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 08/09/2012

    É erro de referência fiz

    Mensagem  Maicon em 18/4/2018, 07:27

    É erro de referência com certeza.
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4064
    Registrado : 20/04/2011

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  Silvio em 18/4/2018, 12:59

    Bom dia, com permissão de todos...

    Se o texto36 for um campo desacoplado, sugiro que inclua o mesmo na tabela principal.

    E na tabela principal, coloque como preenchimento obrigatório.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5553
    Registrado : 15/03/2013

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  ahteixeira em 18/4/2018, 13:30

    Olá a todos

    Assis, tente assim:

    Código:
    If len(Forms![frmproduto]![frmProduto_Composicao]![Texto36] &"") = 0 Then

    Abraço
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  Assis em 18/4/2018, 13:44

    Teixeira

    Essa parte do campo 36 está resolvida.

    Agora tenho outro problema relacionado com o mesmo Texto36


    Ao clicar num botão para abrir um formulário:

    - Se o texto 36 NÂO FOR nulo abre logo o formulário - DoCmd.openForm "frmProdutoAlterar", , , "[Ref]= '" & Me!ref & "'"


    - Se o texto 36 FOR nulo pergunta:

    Código:
    If MsgBox("Quer Colocar os Componentes Neste Produto ? ", vbYesNo, "Aviso") = vbYes Then

    DoCmd.openForm "frmProdutoAlterar", , , "[Ref]= '" & Me!ref & "'"

    Else

    'Não abre o formulário

    End If
    End If


    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  Assis em 19/4/2018, 10:54

    Bom dia

    Up


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4064
    Registrado : 20/04/2011

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  Silvio em 19/4/2018, 12:39

    Bom dia, apenas um pitaco, se me permitem...

    No evento ao clicar ou pressionar.
    Código:

       Dim stDocName As String
       Dim stLinkCriteria As String

       If Not IsNull ( me.texto36) then
       stDocname = "FrmProdutoAlterar"
       stLinkCriteria = "[Ref]=" & Me![Ref]
       Elseif IsNull(Me.texto36) Or Me.texto36= "" Then
       If MsgBox("Quer Colocar os Componentes Neste Produto ? ", vbYesNo, "Aviso") = VbnoThen
       me.undo
       Exit Sub
       Else
       DoCmd.openForm "frmProdutoAlterar", , , "[Ref]= '" & Me!ref & "'"
       
       End If
       End If


    Assis, fiz sem fazer teste algum, espero que funcione.

    SE não der, avise.

    Abraços.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  Assis em 19/4/2018, 13:00

    Bom dia Silvio

    Não resultou.

    Não abre o formulário "frmProdutoAlterar" mesmo quando o Texto36 não é nulo.

    Estou queimando os neurónios

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4064
    Registrado : 20/04/2011

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  Silvio em 19/4/2018, 13:53

    Assis, poste o " baita" aqui para gente dar uma olhada.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  Assis em 19/4/2018, 14:23

    Silvio

    Não é não querer postar, pois confio nos Amigos do forum, nem querer não mostrar para ninguém copiar ...... rsrsrsrsrsrsr

    Mas é o desmembrar a BD, pois tem 6 formulário, e não sei quantas consultas englobadas, e tudo funfa .... mas essa informação que estou querendo seria ouro sobre azul.

    O mais próximo que tenho é este:


    Código:

    '=========================================

    Private Sub btnSalvar_Click()

    If Not IsNull(Me.Texto36) Then
       DoCmd.openForm "frmProdutoAlterar", , , "[Ref]= '" & Me!ref & "'"

    End If

    If Me.Texto36 = "" Then
        DoCmd.Close acForm, "frmProdutoAlterar"

    If MsgBox("Quer Colocar os Componentes Neste Produto ? ", vbYesNo, "Aviso") = vbYes Then

        DoCmd.openForm "frmProdutoAlterar", , , "[Ref]= '" & Me!ref & "'"

    Else
        DoCmd.CancelEvent
      DoCmd.Close acForm, "frmProdutoAlterar"

    End If
    End If


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5553
    Registrado : 15/03/2013

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  ahteixeira em 19/4/2018, 16:09

    Olá a todos,

    Assis, será seguir a lógica da mensagem nº 4

    Veja se é isto:
    Código:
    Private Sub btnSalvar_Click()
        If Len(Me.Texto36 & "") <> 0 Then
          DoCmd.OpenForm "frmProdutoAlterar", , , "[Ref]= '" & Me!ref & "'"
        End If
       
        If Len(Me.Texto36 & "") = 0 Then
            DoCmd.Close acForm, "frmProdutoAlterar"
           
            If MsgBox("Quer Colocar os Componentes Neste Produto ? ", vbYesNo, "Aviso") = vbYes Then
                DoCmd.OpenForm "frmProdutoAlterar", , , "[Ref]= '" & Me!ref & "'"
            Else
                DoCmd.CancelEvent
                DoCmd.Close acForm, "frmProdutoAlterar"
            End If
        End If
    End Sub

    Abraço a todos
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5553
    Registrado : 15/03/2013

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  ahteixeira em 19/4/2018, 16:34

    Esqueci de dizer, Assis Parabéns Very Happy pela indentação!
    cheers
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  Assis em 19/4/2018, 17:59

    Obrigado Teixeira pelos Parabéns  pela indentação . bounce bounce bounce


    Mas principalmente OBRIGADO pelo código

    cheers cheers cheers cheers

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5553
    Registrado : 15/03/2013

    Re: [Resolvido]Campo no subformulário for nulo, não deixar continuar

    Mensagem  ahteixeira em 20/4/2018, 11:19

    Olá Assis, Obrigado pelo retorno.

    Já sabe continuar com indentação e ficar mais atento, já tinha a solução.

    Eu uso normalmente assim, explicação breve:

    O estado dos campos. quando não é defendido um valor é NULO, mas também pode ser VAZiO.
    Da forma que está o exemplo está a concatenar com string vazia ( .. &"" ) e verifica o tamanho ( Len... ), ora ser for zero já sabemos que não tem valor nenhum.

    Abraço a todos

      Data/hora atual: 22/10/2018, 22:13