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]Grava dois registos, um deles com campos vazios

    avatar
    anvs
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 75
    Registrado : 26/06/2012

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Grava dois registos, um deles com campos vazios

    Mensagem  anvs 7/8/2013, 16:44

    Vivam!

    Tenho um formulártio para registar anomalias.

    Para que o aviso de registyo só fique visível após gravar o registo segundo as condições da MsgBox, tenho:

    Private Sub Form_Load()
    Me.DataRegAnom.Visible = False
    Me.lblDataHoraRegisto.Visible = False
    End Sub

    **********
    Para a gravação do registo, tenho:

    Option Compare Database
    Option Explicit

    Private Sub cmdConfEntrDados_Click()
    If Me.CodAnom = "" Or _
    Me.cboZona = "" Or _
    Me.cboQuad = "" Then

    MsgBox "Falta inserir dados", vbExclamation

    Else

    On Error Resume Next
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("T_Registos")
    rs.AddNew

    rs!Anom = cboAnom.Value
    rs!CodAnom = CodAnom.Value 'Cx de txt cujos valores resultam da cboAnom ... cboAnom.Column(x)
    rs!Classe = Classe.Value 'Idem
    rs!Quad = cboQuad.Value
    rs!Zona = cboZona.Value
    rs!OBS = OBS.Value

    rs.Update

    End If

    ' Para exibir o rótulo e a caixa de texto, após inserção do registo
    Me.lblDataHoraRegisto.Visible = True
    Me.DataRegAnom.Visible = True

    End Sub

    Clicando no botão de comando para executar o código para gravação do registo, acontece:

    1 - Se os campos estiverem vazios, a MsgBox avisa que falta preencher campos mas grava um registo com os campos sem dados;
    2 - O rótulo e a caixa de texto que indicam a Data/Hora do resgisto são exibidos porque foi gravado o tal registo com os campos vazios;
    3 - Se os campos forem todos preenchidos, grava dois registos, sendo um deles sem dados nos campos.

    Não consigo perceber a situação e para isso contarei com a vossa ajuda.

    Antecipadamente grato.
    anvs

    avatar
    Mrsilva
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 03/11/2011

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  Mrsilva 7/8/2013, 17:14

    Olá.

    Não entendi muito bem o que você quer, mas se for para não gravar o registro caso tenha campo sem preenchimento coloque o seguinte codigo após a mensagem.

    Exemplo:

    MsgBox "Falta inserir dados", vbExclamation

    Exit sub

    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  JPaulo 7/8/2013, 17:32

    Para você estar a inserir dados via RecordSet (rs.AddNew), o formulario tem de estar desvinculado.

    E quando abrir o RecordSet faça o select completo;

    Set rs = CurrentDb.OpenRecordset("Select * from T_Registos")

    E no final tem de fechar o Rs senão o seu banco pode corromper.

    rs.Close


    .................................................................................
    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]Grava dois registos, um deles com campos vazios Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new Instruções SQL como utilizar...
    avatar
    anvs
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 75
    Registrado : 26/06/2012

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  anvs 7/8/2013, 17:34

    Agradeço a resposta mas grava na mesma dois registos; sendo que um deles fica com os campos vazios.

    Obrigado.
    anvs
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  JPaulo 7/8/2013, 18:00

    Impossible...

    Quer anexar aqui parte do seu banco ?


    .................................................................................
    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]Grava dois registos, um deles com campos vazios Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new Instruções SQL como utilizar...
    avatar
    anvs
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 75
    Registrado : 26/06/2012

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  anvs 7/8/2013, 21:35

    J Paulo, Perfeito!

    O formulário estava vinculado a T_Registos.
    Muito agradeço também as outras duas dicas, para não corromper.

    anvs
    avatar
    anvs
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 75
    Registrado : 26/06/2012

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  anvs 8/8/2013, 08:14

    Ooops!

    Só exibe a MsgBox de falta de dados, ao segundo click no botão de comando.
    Entretanto, no primeiro click, grava um registo com os campos vazios, não obstante Exit Sub.

    Obrigado.
    anvs
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  JPaulo 8/8/2013, 09:57


    Private Sub cmdConfEntrDados_Click()
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("Select * from T_Registos")

       If Me.CodAnom = "" Or _
       Me.cboZona = "" Or _
       Me.cboQuad = "" Then

           MsgBox "Falta inserir dados", vbCritical
       Exit Sub
       Else
           rs.AddNew
           rs!Anom = cboAnom.Value
           rs!CodAnom = CodAnom.Value 'Cx de txt cujos valores resultam da cboAnom ... cboAnom.Column(x)
           rs!Classe = Classe.Value 'Idem
           rs!Quad = cboQuad.Value
           rs!Zona = cboZona.Value
           rs!OBS = OBS.Value
           rs.Update
    End If
    ' Para exibir o rótulo e a caixa de texto, após inserção do registo
       Me.lblDataHoraRegisto.Visible = True
       Me.DataRegAnom.Visible = True
    rs.Close: Set rs = Nothing
    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]Grava dois registos, um deles com campos vazios Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new Instruções SQL como utilizar...
    avatar
    anvs
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 75
    Registrado : 26/06/2012

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  anvs 8/8/2013, 23:36

    :-(

    Mestre J Paulo,

    Agradeço a sua ajuda mas, um dos problemas subsiste:
    clicando no botão para confirmar entrada, mesmo que não tenha preenchido qualquer campo, independentemente da linha Exit Sub a seguir à MsgBox, que também não avisa, é adicionado um registo vazio na T_registos.
    Era isso que eu queria evitar para utilizadores menos disciplinados.

    Muito obrigado.
    anvs
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  JPaulo 9/8/2013, 09:22

    Vou continuar a insistir;

    Se é um formulario desvinculado de qualquer tabela, é de todo impossivel acrescentar um registo em branco na tabela.

    É simples de entender, por isso recomendo que veja com atenção se o seu formulario na origem, não está a referenciar-se a uma tabela.


    .................................................................................
    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]Grava dois registos, um deles com campos vazios Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new Instruções SQL como utilizar...
    avatar
    anvs
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 75
    Registrado : 26/06/2012

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  anvs 9/8/2013, 11:03

    Bom dia.

    Agradeço a sua paciência e recomendação.
    Confirmo que o formulário não está vinculado a qualquer tabela.
    Inicialmente estev, por distração minha.

    Mais: agora dá erro, informando que não reconhece uma da combos.
    Assim, por admitir que o ficheiro esteja corrompido, vou criar outro, de raiz, com o código que fez o favor de me corrigir.

    Uma vez mais, agradeço a atenção.
    anvs

    PS:
    Anteriormente enviei prototótipo para melhor ilustração.
    Não terá seguido porque não ía zipado.
    Vou reenviar.

    Ob
    anvs
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  JPaulo 9/8/2013, 11:57

    Envie diretamente para mim por favor;

    jpaulo65@gmail.com


    .................................................................................
    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]Grava dois registos, um deles com campos vazios Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Grava dois registos, um deles com campos vazios 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]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  JPaulo 9/8/2013, 14:47

    Agora que vi o seu exemplo, eu explico-lhe o porquê de você dizer que insere uma linha em branco.

    Você tem na tabela "DataRegAnom", o valor por defeito =Hoje() ou =Now(), e sempre que adicionar um registo esse valor por defeito vai
    sempre ficando disponivel no proximo registo para inserção, é isso que está a confundir o amigo.

    Recomendo, que retire esse valor por defeito na estrutura da tabela e faça a inserção desse valor no proprio código, assim;

    Private Sub cmdConfEntrDados_Click()
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("T_Registos")

    If Me.cboAnom = "" Or _
    Me.cboZona = "" Or _
    Me.cboQuad = "" Then
    MsgBox "Falta inserir dados ", vbExclamation, "AVISO"
    Exit Sub
    Else

    On Error Resume Next
    rs.AddNew
    rs!Anom = cboAnom.Value
    rs!CodAnom = CodAnom.Value 'Resulta de cboAnom
    rs!Classe = Classe.Value 'Resulta de cboAnom
    rs!Quad = cboQuad.Value
    rs!Zona = cboZona.Value
    rs!DataRegAnom = Now()
    rs.Update
    End If

    ' Para limpeza dos campos
    Me.cboAnom = ""
    Me.CodAnom = ""
    Me.Classe = ""
    Me.cboQuad = ""
    Me.cboZona = ""

    rs.Close
    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]Grava dois registos, um deles com campos vazios Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Grava dois registos, um deles com campos vazios 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]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  JPaulo 12/8/2013, 17:32

    Sem retorno, Resolvido.


    .................................................................................
    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]Grava dois registos, um deles com campos vazios Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new Instruções SQL como utilizar...
    avatar
    anvs
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 75
    Registrado : 26/06/2012

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  anvs 13/8/2013, 00:40

    JPaulo,

    Muito obrigado pelo esclarecimento.
    anvs
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  JPaulo 13/8/2013, 08:53

    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]Grava dois registos, um deles com campos vazios Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Grava dois registos, um deles com campos vazios Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    [Resolvido]Grava dois registos, um deles com campos vazios Empty Re: [Resolvido]Grava dois registos, um deles com campos vazios

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 08:43