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]Formulário em Branco

    avatar
    kasa1982
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 06/12/2018

    [Resolvido]Formulário em Branco Empty [Resolvido]Formulário em Branco

    Mensagem  kasa1982 em 2/2/2019, 02:14

    Boa noite galera,

    Preciso do seguinte apoio:

    1. Meu formulário 1, tem o seguinte botão:

    [Resolvido]Formulário em Branco T112

    2. O Código desse botão é o seguinte:

    Código:

    Private Sub btnTps_Click()

        If Nz(DCount("[numop_adega]", "public_tbl_adega_tps", "[numop_adega]='" & Me.NumOP & "'"), 0) = 0 Then
            Dim rst1 As Recordset
            Dim sel As String
                                
            'Cria o registro na tabela
            sel = "SELECT * from public_tbl_adega_tps"
            Set rst1 = CurrentDb.OpenRecordset(sel)
        
                rst1.AddNew
                    rst1![numop_adega] = Me.NumOP
                    rst1![CodProduto] = Me.CodProduto
                    rst1![numtfm] = Me.numtanque
                    rst1![seqtp] = 1
                    rst1![status] = 0
                    rst1![usuario_inclusao] = getUsuarioAtual()
                    rst1![datahora_inclusao] = Now()
                    rst1![deletado] = 0
                rst1.Update

            'Fecho a conexão
            rst1.Close
        DoCmd.OpenForm "FRM_Adega_Tps", , , "[numop_adega]='" & Me.NumOP & "'"
        Else
        DoCmd.OpenForm "FRM_Adega_Tps", , , "[numop_adega]='" & Me.NumOP & "'"
        End If
    End Sub

    Esse botão deve abrir essa tela abaixo, se não houver registro na tabela quando o usuário clicar nesse botão, ele vai me levar para a tela e criar o primeiro registro na minha tabela, até ai tudo bem.

    [Resolvido]Formulário em Branco T212


    O Problema acontece quando eu salvo esse registro.

    * Primeiro ponto, quando eu salvar nãoi quero mais que mostre ele na tela 2, ou seja, ao abrir novamente essa tela clicando no primeiro botão deverá abrir um novo registro;
    No Load do segundo form e posicionar no mesmo, filtrando essas informações, portanto, coloquei o seguinte:

    Código:

    Private Sub Form_Load()

        DoCmd.SetWarnings False
        
        Dim xCount As Integer
        xCount = Nz(DCount("[numop_adega]", "public_tbl_adega_tps", "[numop_adega]='" & Me.txtNumop_adega & "'"), 0)

        If xCount >= 1 Then
        
            Dim xSeqL As Integer
            
            xSeqL = DMax("[seqtp]", "public_tbl_adega_tps", "[numop_adega]='" & Me.txtNumop_adega & "'")
            
            Form.AllowAdditions = True
            
            Me.numop_adega = txtNumop_adega
            Me.CodProduto = txtCodProduto
            Me.numtfm = txtnumtfm
            Me.seqtp = xSeqL + 1
            Me.status = 0
            Me.usuario_inclusao = getUsuarioAtual()
            Me.datahora_inclusao = Now()
            Me.num_lote = txtNum_lote
            
            DoCmd.GoToRecord , , acNew
        End If
       End Sub

    Só que ao carregar, me trás o seguinte erro:

    [Resolvido]Formulário em Branco T312


    Como resolvo isso? tentei várias formas e to quebrando muito a cabeça. Vocês podem me auxiliar pf?
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2765
    Registrado : 21/04/2011

    [Resolvido]Formulário em Branco Empty Re: [Resolvido]Formulário em Branco

    Mensagem  Marcelo David em 2/2/2019, 03:32

    Bom dia,
    pode ser que seu formulário esteja bloqueado para inserir novos registros.
    Como teste, na linha acima do comando de inserir registro, ponha isso:


    Me.AllowAdditions = True 'Linha a adiconar
    DoCmd.GoToRecord , , acNew 'Seu comando para inserir um novo registro

    Caso não resolva, tente por no inicio do seu código:

    On Error Resume Next

    E se mesmo assim persistir, poste seu banco.


    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)
    avatar
    kasa1982
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 06/12/2018

    [Resolvido]Formulário em Branco Empty Re: [Resolvido]Formulário em Branco

    Mensagem  kasa1982 em 2/2/2019, 22:06

    Olá, no load do segundo form está o código:

    Código:

    Private Sub Form_Load()

        DoCmd.SetWarnings False
        On Error Resume Next
       
        Dim xCount As Integer
        xCount = Nz(DCount("[numop_adega]", "public_tbl_adega_tps", "[numop_adega]='" & Me.txtNumop_adega & "'"), 0)

        If xCount >= 1 Then
       
        Form.AllowAdditions = True
       
        DoCmd.GoToRecord , , acNew
       
            Dim xSeqL As Integer
           
            xSeqL = DMax("[seqtp]", "public_tbl_adega_tps", "[numop_adega]='" & Me.txtNumop_adega & "'")
                   
            Me.numop_adega = txtNumop_adega
            Me.CodProduto = txtCodProduto
            Me.numtfm = txtnumtfm
            Me.seqtp = xSeqL + 1
            Me.status = 0
            Me.usuario_inclusao = getUsuarioAtual()
            Me.datahora_inclusao = Now()
            Me.num_lote = txtNum_lote
           
            Call NovoRec(Me)
           
        End If
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2765
    Registrado : 21/04/2011

    [Resolvido]Formulário em Branco Empty Re: [Resolvido]Formulário em Branco

    Mensagem  Marcelo David em 2/2/2019, 22:34

    Poderia mostrar os códigos do procedimento NovoRec(Me)?


    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)
    avatar
    kasa1982
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 06/12/2018

    [Resolvido]Formulário em Branco Empty Re: [Resolvido]Formulário em Branco

    Mensagem  kasa1982 em 2/2/2019, 23:26

    Opa!, sem dúvidas.

    Código:

    Function NovoRec(argFrm As Form)
    On Error GoTo Fim
        DoCmd.GoToRecord , , acLast
        DoCmd.RunCommand acCmdRecordsGoToNew
    Fim:
    End Function
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2765
    Registrado : 21/04/2011

    [Resolvido]Formulário em Branco Empty Re: [Resolvido]Formulário em Branco

    Mensagem  Marcelo David em 3/2/2019, 00:15

    Esse erro está acontecendo porque o procedimento em questão já leva o registro para um novo registro.
    E o código do evento load do formulário tem esse linha aqui:
    DoCmd.GoToRecord , , acNew.

    Comente ou apague ela e teste por favor.


    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)
    avatar
    kasa1982
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 06/12/2018

    [Resolvido]Formulário em Branco Empty Re: [Resolvido]Formulário em Branco

    Mensagem  kasa1982 em 3/2/2019, 14:14

    Prezados,

    consegui contornar a situação, mudei a forma com que gravo e pego as informações no banco de dados.

    Primeiro gravei já ao pressionar o botão a mesma sequencia no campo de sequencia, ai deu certo.
    Não precisei usar o envento onload do form.

    Obrigado a todos.

    Conteúdo patrocinado

    [Resolvido]Formulário em Branco Empty Re: [Resolvido]Formulário em Branco

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/7/2019, 21:55