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


2 participantes

    [Resolvido]Não salvar caso o formulário esteja em branco

    avatar
    socgyn
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 01/05/2013

    [Resolvido]Não salvar caso o formulário esteja em branco Empty Não salvar caso o formulário esteja em branco

    Mensagem  socgyn 3/7/2013, 04:50

    Boa Noite,

    Mais uma vez venho buscar orientação neste site, que hoje considero essencial para conclusão de alguns trabalhos e pesquisas.

    Vamos lá.

    Um dos formulários de cadastros que tenho, tem guias, quando entro no formulário, abre com o primeiro registro efetuado. Para adicionar novo registro, clico no botão correspondente, até aí tudo bem. O problema é que, ao ir para novo registro e passar de uma guia para outra, mesmo sem inserir nenhum dado, e clicar em sair, ele salva o registro como se tivesse adicionado algo, já com o botão salvar, quando abro o formulário ele cai no primeiro registro efetuado, mesmo sem alterar nada, sai a mensagem que coloquei quando há alteração. Coloquei no botão salvar : para novo registro: "Registro cadastrado com sucesso"
    e em caso de alteração: "Registro alterado com sucesso".
    Finalizando, sem querer abusar, é sobre uma LISTBOX com os registros cadastrados, coloquei em meu form de cadastro um campo onde lista os itens cadastrados, a medida que vou salvando os registro ele atualiza essas informações, ficando com a possibilidade de clicar em um deles carregando-o no formulário de cadastro para alteração ou visualização dos dados.

    Há possibilidade de:

    Caso 1 : Se os campos estiverem em "branco" limpos, sair sem salvar. ou informar que nenhum registro foi feito, se deseja adicionar novo registro, se sim
    vai para o campo inicial se não fecha o formulário;

    Caso 2: Ao abrir no primeiro registro ou qualquer que seja selecionado e não tiver alterado nada e mesmo assim clicar no botão salvar, informar que nenhuma alteração foi feita.

    Caso 3: ter um campo acima da listbox para digitação do item que quero alterar ou visualizar em meu cadastro, ou seja, a medida que vou digitando as letras ele vai filtrando e ao clicar no item na lisbox, abrir os dados no formulário de cadastro, para alteração ou visualização.

    Me desculpem por pedir auxílio em tantos itens, mas estou há muito tempo tentando e não consigo concluir meu banco de dados por essas questões.
    Quem puder ajudar, agradeço imensamente.

    Sandro - Goiânia
    RneoX
    RneoX
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 246
    Registrado : 26/07/2011

    [Resolvido]Não salvar caso o formulário esteja em branco Empty Re: [Resolvido]Não salvar caso o formulário esteja em branco

    Mensagem  RneoX 3/7/2013, 16:54

    1. Use este comando para saber se todos os campos estão nulos ou vazios:
    Código:

    Public Function VerificaCampos (frm as form)
    For Each ctl In frm.Controls
            Select Case ctl.ControlType
            Case acTextBox, acComboBox, acListBox, acOptionGroup, acCheckBox
    If ctl.value = "" or IsNull(ctl.Value) Then Go to Proximo
    Else
         msgbox "Existe campo com dados"
    ctl.Setfocus
    End If
    Proximo:
    Next ctl

    'Aqui você coloca o que deseja fazer caso tudo tiver vazio:

    Exit Function

    Chame está função no formulário que deseja manipular: Call VerificaCampos(Me)

    2. Para você saber se nenhum campo foi alterado use o código VBA:
    Código:

    If Me.Campo.Oldvalue = Me.Campo.Value then
    msgbox "Este campo possui o mesmo valor"
    Else
    msgbox "Este campo teve seus valores alterados..."
    End if
    3. No filtro da sua listbox ou combobox,

    Coloque no evento ao listar combo box (DropList) ou no campo onde está digitando ao alterar ou (Dirty)
    Código:

    Dim sql as string
    Me.CampoBoxouList.RowSource = "SELECT Campo1, Campo2 FROM Tabela WHERE Campo1 LIKE '*' & '" & me.CampoFiltro & "' & '*'"


    .................................................................................
    Conhece meus projetos que ajudam os usuários a entender o funcionamento de várias funções encontradas aqui no fórum? também pode usa-lo para seus negócios ou para uso pessoal, não conhece? então visite aqui e veja como está bacana: Projeto Casco do Máximo Access v3.0 (Pré-Release 4.0) 
    Ser livre é ter liberdade para expressar suas idéias,
    Ser diferente é ser especial e o reverso da igualdade,
    Ser criativo é ser poderoso,
    Ter conhecimentos e não dividir-los é ser egoísta e orgulhoso,
    Ensinar é um prazer que todos devem ter por seus alunos, pois é dele que vem nossos troféus.
    avatar
    socgyn
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 01/05/2013

    [Resolvido]Não salvar caso o formulário esteja em branco Empty Não salvar caso o formulário esteja em branco

    Mensagem  socgyn 4/7/2013, 01:49

    Valeu pela força, mas em nenhum dos casos que vc postou dica, funcionou.

    Por exemplo, nos meus formulários de cadastro, o botão salvar já tem um código vba para quando incluir novo registro sair a mensagem : registro incluído com sucesso e em caso de alteração sai: registro alterado com sucesso, o que preciso é que quando abrirem o formulário e clicarem em salvar mesmo sem ter alterado nenhum registro, informar que nenhum registro foi alterado para que possa ser salvo. Já em caso da pessoa clicar em novo registro e passar para outra guia mesmo sem inserir nada e clicar em sair o registro está salvando em branco o que não pode ocorrer, se caso estiver em branco a pessoa pode até sair, mas que não haja adição no registro. O que vem ocorrendo em Cadastro de clientes e fornecedores (ambos tem guias)
    Referente a lista do itens cadastrados, nos formulário de cadastros tem um caixa a qual sempre que adiciono novo registro já atualiza e fica visível nela, caso clique em algum item carrega os dados no formulário para visualização ou alteração. O que eu queria é que logo abaixo da caixa (listbox - sei lá o nome) coloque uma caixa de texto onde a medida que digite vá filtrando os nomes nessa box e ao clicar carregue no formulário, para alteração ou visualização. Tentei adequar cada código seu mas infelizmente não tive sucesso.
    Estou enviando o bd para avaliação.

    No cadastro de fornecedores ainda não coloquei a caixa listbox, só nos Cadastro de frota de veículo e Cadastro de Clientes. Onde poderá ter uma ideia.
    Anexos
    [Resolvido]Não salvar caso o formulário esteja em branco Attachmentgch.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.6 Mb) Baixado 50 vez(es)
    RneoX
    RneoX
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 246
    Registrado : 26/07/2011

    [Resolvido]Não salvar caso o formulário esteja em branco Empty Re: [Resolvido]Não salvar caso o formulário esteja em branco

    Mensagem  RneoX 4/7/2013, 02:35

    Amigo entendi o conceito seu, mas desta maneira vai salvar sempre um novo registro mesmo...

    Você manda ir para um novo registro, e manda pegar o valor que está na caixa de texto que você usou o DMax para somar, porém quando faz isto você já está dando valor, por isso que sempre vai salvar um novo registro... porém se você apertar ESC não vai salvar as alterações. Você também usa alguns eventos que preenche alguns campos ao sair do campo, tudo isso conta como inserção de dados.

    Para acrescentar o número de cadastro usa o Número Automático do Access da própria tabela, é melhor e ainda é indexado ajuda a agilizar as consultas.

    Vou ver o que posso fazer por você neste seu programa, se eu entender vou dar uma reformada nele.


    .................................................................................
    Conhece meus projetos que ajudam os usuários a entender o funcionamento de várias funções encontradas aqui no fórum? também pode usa-lo para seus negócios ou para uso pessoal, não conhece? então visite aqui e veja como está bacana: Projeto Casco do Máximo Access v3.0 (Pré-Release 4.0) 
    Ser livre é ter liberdade para expressar suas idéias,
    Ser diferente é ser especial e o reverso da igualdade,
    Ser criativo é ser poderoso,
    Ter conhecimentos e não dividir-los é ser egoísta e orgulhoso,
    Ensinar é um prazer que todos devem ter por seus alunos, pois é dele que vem nossos troféus.
    avatar
    socgyn
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 01/05/2013

    [Resolvido]Não salvar caso o formulário esteja em branco Empty Não salvar caso o formulário esteja em branco

    Mensagem  socgyn 4/7/2013, 15:10

    Valeu pelas dicas, mas adequei vários códigos e consegui exito nas questões do salvar ou alterar registro e não salvar caso esteja em branco ou qualquer outra coisa que faça e não clicar no botão salva e clicar direto em sair, saio sem salvar. Só falta a list box de pesquisa, que não estou conseguindo.
    Abaixo segue o código para o botão salvar.

    Private Sub Sair_Click()
    Dim strMsg As String
    If IsNull(Me.Contato) Then

    strMsg = "Deseja sair do Cadastro de Fornecedores sem efetuar alterações?"
    If MsgBox(strMsg, vbQuestion + vbYesNo, "Fechar?") = vbYes Then
    DoCmd.CancelEvent
    Me.Undo
    DoCmd.Close
    End If
    Else
    strMsg = "Deseja sair do Cadastro de Fornecedores?"
    If MsgBox(strMsg, vbQuestion + vbYesNo, "Fechar?") = vbYes Then
    DoCmd.CancelEvent
    Me.Undo
    DoCmd.Close
    End If
    End If
    End Sub
    avatar
    socgyn
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 01/05/2013

    [Resolvido]Não salvar caso o formulário esteja em branco Empty Não salvar caso o formulário esteja em branco

    Mensagem  socgyn 5/7/2013, 20:40

    Laughing  Valeu pela força, mas já consegui finalizar todos os itens que estavam pendentes, tanto nos códigos para os botões, quanto a listagem de pesquisa.

    Posteriormente irei postar os códigos para exemplo de ajuda à quem precisar

    Até mais,

    Sandro

    Conteúdo patrocinado


    [Resolvido]Não salvar caso o formulário esteja em branco Empty Re: [Resolvido]Não salvar caso o formulário esteja em branco

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 06:12