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


    [Resolvido]Alterar valores da tabela a partir do formulário

    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 20/2/2013, 12:41

    boas.

    Cá estou eu a pedir de novo a vossa preciosa ajuda. Laughing

    Eu tenho o formulário que se encontro em anexo.

    O que quero e que ao escolher uma opção na combobox e depois escolher o valor do estado seguinte e gravar e ele alterar o valor nas colunas passo e estado da tabela Tiniciativa. Não quero que ele me deixe andar para trás. Se já escolhi o 2 ~já não posso escolher o 1 nem o 4 só mesmo o 3. penso que isso consegui. Não consigo é gravar.

    Também queria quando escolher o passo 7 e o 11 me aparece-se para inserir um anexo na respetiva linha da iniciativa escolhida na combo.

    Espero que me consigam ajudar
    Anexos
    [Resolvido]Alterar valores da tabela a partir do formulário AttachmentDatabase4.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (158 Kb) Baixado 16 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 27/2/2013, 02:49

    Boas Joana, forneça-nos mais detahes.

    Cumprimentos.
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 27/2/2013, 09:24

    O objetivo é no formulário Fmetodo11passos escolher uma iniciativa na combo box. Depois para essa iniciativa escolher o passo onde se vai (1,2,3, etc) e ao gravar, escrever na tabela Tiniciativa na linha da iniciativa selecionada na coluna passo o nº do passo e na coluna estado o que aparece na text box txt item. Quando eu selecionar o passo seguinte e gravar ele substitui os valores que lá estavam pelos que selecionei agora.

    Agora imaginemos que eu numa iniciativa já ia no passo 3. Queria quando eu a selecionar aparecer-me so disponivel para carregar o passo 4. E quando eu escolher o 4 aparecer-me o 5

    Eu fiz um códio associado ao botão gravar mas está semrpe a dar erro.

    Espero que assim esteja mais explicito

    Agradeço a atenção
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 27/2/2013, 10:23

    Eis para a op1, faça assim para as outras...

    No evento após atualizar:

    Private Sub op1_AfterUpdate()
    If Me.op1 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 1, Estado = '" & Me.Label44.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op1 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    End Sub


    cumprimentos.
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 27/2/2013, 10:53

    E o restante código fica igual?

    É que já coloquei esse em todos mas continua a dar o mesmo erro
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 27/2/2013, 11:04

    No evento de cada botão de opção, coloque o codigo mas substituindo o nome do botão pelo nome do botão que esta aplicando e o seu respectivo rótulo:


    Private Sub op1_AfterUpdate()
    If Me.op1 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 1, Estado = '" & Me.Label44.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op1 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    End Sub
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 27/2/2013, 11:15

    Sim isso eu fiz

    o que estava a perguntar era se mantenho o codigo que já ttinha feito antes ou não.

    O problema que me acontece e que quando carrego no botão de gravar ele fecha-me o formulário e não grava
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 27/2/2013, 12:19

    Salvar o que???? este código acima é autônomo, realiza já o update na tabela...

    não necessita de botão gravar algum.

    Cumprimentos.
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 27/2/2013, 12:25

    ok era isso que eu perguntava. Todo o código que eu tinha antes é para apagar e manter apenas este?
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 27/2/2013, 12:37

    vamos simplificar tudo isto...

    1 - Crie uma caixa texto e a nomeeie como txtCod
    2 - Nos eventos após atualizar da sua caixa de combinação:

    Private Sub cxiniciativa_AfterUpdate()
    Dim X As Integer
    Me.txtCod = Me.cxiniciativa.Column(0)
    Me.pa.Requery
    Me.txtitem.Requery

    X = Me.pa + Val(1)
    Me("op" & X).Visible = True


    3 - Deixe seus botões de opcão como ocultos
    4 - Dentro da caixa txtItem

    =DPesquisa("[Estado]";"Tiniciativa";"[cod_iniciativa]=[txtCod]")



    Teste e retorne
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 27/2/2013, 12:44

    Todo Código que necessita, observe que fiz apenas para 3 botões,,, faça para o resto.

    Option Compare Database

    Private Sub cxiniciativa_AfterUpdate()
    Dim X As Integer
    Me.txtCod = Me.cxiniciativa.Column(0)
    Me.pa.Requery
    Me.txtitem.Requery

    X = Me.pa + Val(1)
    Me("op" & X).Visible = True

    End Sub


    Private Sub op1_AfterUpdate()
    If Me.op1 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 1, Estado = '" & Me.Label44.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op1 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    End Sub


    Private Sub op2_AfterUpdate()
    If Me.op2 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 1, Estado = '" & Me.Label46.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op2 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    End Sub

    Private Sub op3_AfterUpdate()
    If Me.op3 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 1, Estado = '" & Me.Label48.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op3 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    End Sub



    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 27/2/2013, 12:50

    Para o evento após atualizar da caixa de combinação, quando não há dados gravados no campo passo sera gerado erro 94 "uso de Null inválido"

    Trataremos o erro direcionando para habilitiação de todos os botões... ou podes habilitar apenas o primeiro se preferir:


    Dim X As Integer
    On Error GoTo TrataErro

    Me.txtCod = Me.cxiniciativa.Column(0)
    Me.pa.Requery
    Me.txtitem.Requery

    X = Me.pa + Val(1)
    Me("op" & X).Visible = True
    Exit Sub
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 94
    Dim Y As Integer
    For Y = 1 To 11
    Me("op" & Y).Visible = True
    Next Y
    Case Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgBox "Erro Gerado no: " & Me.Name & "" _
    & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
    & vbNewLine & "Erro Número: " & Err.Number _
    & vbNewLine & "linha: " & Erl _
    & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
    End Select
    End Sub

    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 27/2/2013, 13:15

    Criado uma sub para ocultar todos os botões antes de efetuar a liberação do proximo botão de opcão no evento apos atualizar da caixa de combinaçào:

    Sub Desabilita


    Option Compare Database

    Private Sub cxiniciativa_AfterUpdate()
    Dim X As Integer
    On Error GoTo TrataErro

    Me.Desabilita
    Me.txtCod = Me.cxiniciativa.Column(0)
    Me.pa.Requery
    Me.txtitem.Requery

    X = Me.pa + Val(1)
    Me("op" & X).Visible = True
    Exit Sub
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 94
    Dim Y As Integer
    For Y = 1 To 11
    Me("op" & Y).Visible = True
    Next Y
    Case Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgBox "Erro Gerado no: " & Me.Name & "" _
    & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
    & vbNewLine & "Erro Número: " & Err.Number _
    & vbNewLine & "linha: " & Erl _
    & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
    End Select
    End Sub

    Sub Desabilita()
    Dim Y As Integer
    For Y = 1 To 11
    Me("op" & Y).Visible = False
    Next Y
    Exit Sub
    End Sub

    Private Sub op1_AfterUpdate()
    If Me.op1 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 1, Estado = '" & Me.Label44.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op1 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    End Sub


    Private Sub op2_AfterUpdate()
    If Me.op2 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 2, Estado = '" & Me.Label46.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op2 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    End Sub

    Private Sub op3_AfterUpdate()
    If Me.op3 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 3, Estado = '" & Me.Label48.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op3 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    End Sub


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 27/2/2013, 13:23


    Option Compare Database

    Private Sub cxiniciativa_AfterUpdate()
    Dim X As Integer
    On Error GoTo TrataErro

    Me.Desabilita
    Me.txtCod = Me.cxiniciativa.Column(0)
    Me.pa.Requery
    Me.txtitem.Requery

    X = Me.pa + Val(1)
    Me("op" & X).Visible = True
    Exit Sub
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 94
    Dim Y As Integer
    For Y = 1 To 11
    Me("op" & Y).Visible = True
    Next Y
    Case Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgBox "Erro Gerado no: " & Me.Name & "" _
    & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
    & vbNewLine & "Erro Número: " & Err.Number _
    & vbNewLine & "linha: " & Erl _
    & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
    End Select
    End Sub

    Sub Desabilita()
    Dim Y As Integer
    For Y = 1 To 11
    Me("op" & Y).Visible = False
    Next Y
    Exit Sub
    End Sub

    Private Sub op1_AfterUpdate()
    If Me.op1 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 1, Estado = '" & Me.Label44.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op1 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op2_AfterUpdate()
    If Me.op2 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 2, Estado = '" & Me.Label46.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op2 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op3_AfterUpdate()
    If Me.op3 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 3, Estado = '" & Me.Label48.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op3 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op4_AfterUpdate()
    If Me.op4 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 4, Estado = '" & Me.Label50.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op4 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op5_AfterUpdate()
    If Me.op5 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 5, Estado = '" & Me.Label52.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op5 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op6_AfterUpdate()
    If Me.op6 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 6, Estado = '" & Me.Label54.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op6 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op7_AfterUpdate()
    If Me.op7 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 7, Estado = '" & Me.Label56.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op7 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op8_AfterUpdate()
    If Me.op8 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 8, Estado = '" & Me.Label58.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op8 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op9_AfterUpdate()
    If Me.op9 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 9, Estado = '" & Me.Label60.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op9 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op10_AfterUpdate()
    If Me.op10 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 10, Estado = '" & Me.Label62.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op10 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub

    Private Sub op11_AfterUpdate()
    If Me.op11 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 11, Estado = '" & Me.Label64.Caption & "' WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op11 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    End Sub



    Cumprimentos.
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 28/2/2013, 10:25

    Obrigada por toda a atenção. Já está melhor do que tinha agora tem 3 coisas:

    - Quando escolho a iniciativa na combo e ainda nao tem nenhum passo associado permite-me escolher qualquer um deles e queria que so desse o primeiro.

    - Imaginemos que a iniciativa vai no passo 5 quando a escolho aparece-me o passo 6 livre. Mas ao escolher o 6 já não me aparece o 7. e assim sucessivamente.

    -Queria que na coluna de data de atualização altere também a data.
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 28/2/2013, 10:41

    Vamos por parte ok?

    Fale a primeira.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 28/2/2013, 10:46

    Para quando não há passo:


    Dim X As Integer
    On Error GoTo TrataErro

    Me.Desabilita
    Me.txtCod = Me.cxiniciativa.Column(0)
    Me.pa.Requery
    Me.txtitem.Requery

    X = Me.pa + Val(1)
    Me("op" & X).Visible = True
    Exit Sub
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 94
    Dim Y As Integer
    Me.op1.Visible = True
    For Y = 2 To 11
    Me("op" & Y).Visible = False
    Next Y
    Case Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgBox "Erro Gerado no: " & Me.Name & "" _
    & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
    & vbNewLine & "Erro Número: " & Err.Number _
    & vbNewLine & "linha: " & Erl _
    & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
    End Select
    End Sub


    Qual a próxima necessidade?

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 28/2/2013, 10:52

    Para gravar Data...

    Primeiramente altere o nome do seu campo Data, evite palavras reservadas do access como: Data, Nome, valor, Soma etc.. isso dára erros em teu sistema

    prefira assim CpData, cpNome etc..

    Na instrução que atualiza acresente a parte em Azul:


    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 1, Estado = '" & Me.Label44.Caption & "', CpData = #" & Date & "# WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""

    Faça assim para todas.

    Cumprimentos.
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 28/2/2013, 10:57

    O primeiro está resolvido. cheers Muito obrigada

    Agora é o segundo ponto.

    Quando escolho um ponto não aparece disponivel o ponto seguinte e era importante aparecer

    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 28/2/2013, 11:00

    Testou a gravação da data?

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 28/2/2013, 11:04

    Para o passo seguinte, acrescente a parte em vermelho em todas as instruções logicamente alterando o nome da Op para a seguite.

    Private Sub op1_AfterUpdate()
    If Me.op1 = -1 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = 1, Estado = '" & Me.Label44.Caption & "', Data = #" & Date & "# WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    ElseIf Me.op1 = 0 Then
    CurrentDb.Execute "UPDATE TIniciativa Set Passo = Null, Estado = Null WHERE Cod_Iniciativa = " & Me.cxiniciativa.Column(0) & ""
    End If
    Me.pa.Requery
    Me.txtitem.Requery
    Me.op2.Visible = True
    Me.op2.SetFocus
    Me.op1.Visible = False

    End Sub


    Veja que habilitamos o passo seguinte e desabilitamos o passo clicado

    Cumprimentos.
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 28/2/2013, 11:28

    Está a dar erro no Date:

    Can't find object or library

    @
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 28/2/2013, 12:00

    Já consegui Very Happy

    À partida Está a funcionar certinho Smile

    Só queria acrescentar uma coisa para ficar melhor. Se numa iniciativa já tiver escolhido o passo 11 se a volto a escolher ele dá um erro. Queria alterar essa mensagem de erro para Iniciativa já Concluida!.
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 28/2/2013, 14:42

    Mande-me o teu bd com as alteraçòes para que eu veja.

    Cumprimentos.
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 28/2/2013, 14:47

    Aqui está. É só mesmo o pormenor da mensagem
    Anexos
    [Resolvido]Alterar valores da tabela a partir do formulário AttachmentDatabase2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (169 Kb) Baixado 3 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 28/2/2013, 15:01

    É um erro correto? justamente porque os passos são adicionados somando +1, portanto depois do 11 não encontra o 12 e gera este erro.

    O que fazer então?

    Tratatar o erro... Observe no tratamento do código onde esta o case do erro:


    Private Sub cxiniciativa_AfterUpdate()
    Dim X As Integer
    On Error GoTo TrataErro

    Me.Desabilita
    Me.txtcod = Me.cxiniciativa.Column(0)
    Me.pa.Requery
    Me.txtitem.Requery

    X = Me.pa + Val(1)
    Me("op" & X).Visible = True
    Exit Sub
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 94
    Dim Y As Integer
    Me.op1.Visible = True
    For Y = 2 To 11
    Me("op" & Y).Visible = False
    Next Y
    Case 2465
    MsgBox "Iniciativa já concluída", vbInformation, "CONCLUÍDO"

    Resume Next
    Case Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgBox "Erro Gerado no: " & Me.Name & "" _
    & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
    & vbNewLine & "Erro Número: " & Err.Number _
    & vbNewLine & "linha: " & Erl _
    & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
    End Select
    End Sub


    Cumprimentos.
    avatar
    joanammc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 88
    Registrado : 30/12/2012

    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  joanammc 28/2/2013, 15:07

    Impecável Very Happy

    Isso mesmo.

    Muito obrigada por toda a ajuda foi preciosa Very Happy Very Happy
    avatar
    Convidado
    Convidado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Convidado 28/2/2013, 15:12

    O Fórum agradece o Retorno.

    Conteúdo patrocinado


    [Resolvido]Alterar valores da tabela a partir do formulário Empty Re: [Resolvido]Alterar valores da tabela a partir do formulário

    Mensagem  Conteúdo patrocinado


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