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

3 participantes

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT

    avatar
    cristiansouza
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 12/01/2021

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Empty [Resolvido] Formulário em branco ao não encontrar registro via SELECT

    Mensagem  cristiansouza Sex 8 Jul - 9:51

    Olá pessoas!  Very Happy

    Tenho uma text box onde após atualizar, ele realiza a instrução SELECT, conforme código abaixo:

    Código:

            On Error GoTo Erro
            Dim strSQL As String
            Dim localizar As Variant
            localizar = Me.Ordem_de_Fabricacao_2
            If IsNull(Ordem_de_Fabricacao_2) Then
            MsgBox ("Informe o número da ordem de fabricação"), vbCritical
            Me.Ordem_de_Fabricacao_2.SetFocus
            Else
            strSQL = "SELECT * FROM [Cst_ApontamentoDeProdução] WHERE [Ordem de Fabricação]='" & localizar & "'"
            Me.Form.RecordSource = strSQL
            
            End If
            Exit Sub
    Erro:
            MsgBox("Registro não localizado.")


    Acontece que a busca está sendo realizada perfeitamente, porém quando digito um valor que o SELECT não encontra, o formulário apenas fica em branco, some todos os campos, todos os botões, sendo necessária a reinicialização do form para que seja normalizado.

    O ideal é que apareça uma MsgBox caso não encontre nenhum registro.

    Alguém teria alguma ideia de como resolver este problema?
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Empty Re: [Resolvido] Formulário em branco ao não encontrar registro via SELECT

    Mensagem  Alexandre Fim Sex 8 Jul - 9:57

    Olá Cristian,

    Na instrução abaixo, se a instrução SQL não carregar nenhum registro, seu formulário será atualizado em branco mesmo.
    Me.Form.RecordSource = strSQL

    É isso
    Alexandre Fim


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    cristiansouza
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 12/01/2021

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Empty Re: [Resolvido] Formulário em branco ao não encontrar registro via SELECT

    Mensagem  cristiansouza Sex 8 Jul - 10:22

    Alexandre, muito obrigado!!

    Entendi perfeitamente sua explicação sobre motivo deste acontecimento, porém ainda estou engatinhando em VBA e SQL e não consegui enxergar uma solução para este problema..

    Poderia por gentileza detalhar mais a resposta?
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Empty Re: [Resolvido] Formulário em branco ao não encontrar registro via SELECT

    Mensagem  Alexandre Fim Sex 8 Jul - 11:00

    Cristian,
    Por gentileza, compartilhe uma cópia do seu bd, somente objetos (tabelas/fomulários/consultas e etc.) envolvidos na questão, para análise e solução do problema.
    Desta forma, fica mais fácil entender a situação.

    Att,
    Alexandre Fim


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Setinf11
    Sistemas e Tecnologia Ltda
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Empty Re: [Resolvido] Formulário em branco ao não encontrar registro via SELECT

    Mensagem  Silvio Sex 8 Jul - 14:03

    Boas, com a permissão do Alexandre.

    Sem ter o banco em mãos, apenas dando um pitaco.

           On Error GoTo Erro
           Dim strSQL As String
           Dim localizar As Variant
           localizar = Me.Ordem_de_Fabricacao_2
           If IsNull(Ordem_de_Fabricacao_2) Then
           MsgBox ("Informe o número da ordem de fabricação"), vbCritical
           Me.Ordem_de_Fabricacao_2.SetFocus
           Else
           strSQL = "SELECT * FROM [Cst_ApontamentoDeProdução] WHERE [Ordem de Fabricação]='" & localizar & "'"
           Me.Form.RecordSource = strSQL

    Elseif strSql = "" then
           msgbox" Não há registro a ser mostrado !", " AVISO"
    me.requery
           end if

           Exit Sub
    Erro:
           MsgBox("Registro não localizado.")


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    cristiansouza
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 12/01/2021

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Empty Re: [Resolvido] Formulário em branco ao não encontrar registro via SELECT

    Mensagem  cristiansouza Ter 12 Jul - 8:02

    Olá Silvio! Fico muito grato pela ajuda!

    Ao aplicar o código sugerido, apareceu a mensagem:

    "Erro de Compilação - Else sem If", onde o trecho "ElseIf strSQL = "" Then" foi destacado no erro.

    Alexandre, infelizmente não consigo enviar um projeto, uma vez que o BD já está dividido para uso em rede.. Sad

    Para facilitar na visualização, segue em anexo os prints apresentando o erro.

    Lembrando que a consulta do SQL está sendo realizada no evento "Após atualizar" do campo Ordem_de_Fabricacao_2.

    Caso necessitem de mais informações, estarei à disposição.
    Anexos
    [Resolvido] Formulário em branco ao não encontrar registro via SELECT AttachmentPRINTS.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (324 Kb) Baixado 2 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Empty Re: [Resolvido] Formulário em branco ao não encontrar registro via SELECT

    Mensagem  Alexandre Fim Ter 12 Jul - 12:44

    Cristian,
    Realmente, os prints não ajudam em nada, mas pelo que vc mencionou na Mensagem nº1, onde os controles "somem" da tela, deve ser por alguma propriedade do formulário.

    No Modo Design do formulário, vá em "Folha de Propriedades", na guia "Dados" e mude a propriedade "Entrada de Dados" de Sim para Não.
    Acredito que irá funcionar também, se não, copie e cole o código abaixo:

    Código:


    On Error GoTo Erro
    Dim strSQL As String
    Dim localizar As Variant
       
        localizar = Me.Ordem_de_Fabricacao_2
       
        '-- Alexandre Fim - 12/07/2022
        '-- Se o campo for nulo ou vazio, emite mensagem ------------------------------------------------------
        If IsNull(Ordem_de_Fabricacao_2) Or Trim(Ordem_de_Fabricacao_2) = Empty Then
            MsgBox "Informe o número da ordem de fabricação", vbExclamation, "Aviso!"
            Me.Ordem_de_Fabricacao_2.SetFocus
            Exit Sub '-- pára aqui e suspende a execução do código restante
        End If
        '-------------------------------------------------------------------------------------------------------
       
        '-- Executa a função para contar registros conforme o campo informado. Se contar ZERO, emite mensagem
        If Nz(DCount("*", "Cst_ApontamentoDeProdução", "[Ordem de Fabricação]='" & localizar & "'"), 0) = 0 Then
            MsgBox "O sistema não localizou os dados de Ordem de Fabricação informada.", vbExclamation, "Aviso!"
            Exit Sub '-- pára aqui e suspende a execução do código restante
        End If
        '-------------------------------------------------------------------------------------------------------
       
       
        '-- Caso não ocorra nenhum erro, carrega o formulário com a instrução SQL ------------------------------
        strSQL = "SELECT * FROM [Cst_ApontamentoDeProdução] WHERE [Ordem de Fabricação]='" & localizar & "'"
        Me.Form.RecordSource = strSQL
        Me.Requery
        '-------------------------------------------------------------------------------------------------------
       
        Exit Sub  '-- Finaliza o procedimento

    '-- Tratamento de erro é utilizado somente quando houver erro de sintaxe, execução e processamento.
    '-- Não deve ser utilizado para exibir mensagem ao usuário quando o sistema não encontrar o registro, até pq não é um erro.
    Erro:
        MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
        Exit Sub

    End Sub



    OBS: Como vc mesmo mencionou que ainda é iniciante no VBA e Instruções SQL, sugiro que vc estude mais sobre o assunto antes de utilizar a lnguagem em seus sistemas. O COPIAR+COLAR não é o suficiente e o importante é entender o que cada rotina executa e os conceitos de linguagem e banco de dados.

    É isso.

    Espero ter ajudado

    Att,
    Alexandre Fim



    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Setinf11
    Sistemas e Tecnologia Ltda

    cristiansouza gosta desta mensagem

    avatar
    cristiansouza
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 12/01/2021

    [Resolvido] Formulário em branco ao não encontrar registro via SELECT Empty Re: [Resolvido] Formulário em branco ao não encontrar registro via SELECT

    Mensagem  cristiansouza Ter 12 Jul - 13:19

    Alexandre, sua solução funcionou perfeitamente.

    Prometo que irei buscar mais conhecimento referente aos assuntos comentados!

    Muito obrigado amigo! Very Happy

      Data/hora atual: Sab 1 Out - 11:38