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]Abrir registo existente em formulário

    avatar
    joaosreis
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 31/12/2011

    [Resolvido]Abrir registo existente em formulário Empty [Resolvido]Abrir registo existente em formulário

    Mensagem  joaosreis 31/12/2011, 01:27

    Boas minha gente

    Precisava de uma ajuda...

    eu queria que num formulário, introduzir a chave primária (string), me detectasse se já existe esse registo e abri-lo para edição.
    A parte de detectar está feita, encontrei aqui no fórum:
    Código:
    Private Sub Nome_BeforeUpdate(Cancel As Integer)
    If (Not IsNull(DLookup("[Nome]", "tblClientes", _
    "[Nome] =" & Me!nome & ""))) Then
    MsgBox "O Nome já está cadastrado na tabela clientes. Verifique se há duplicidade.", vbInformation
    Cancel = True 'cancela o evento.
    Me!nome.Undo 'desfaz a digitação.
    End If
    Agora queria que abrisse o registo para edição...
    Dêm uma ajuda, obrigado!


    Última edição por joaosreis em 31/12/2011, 23:50, editado 1 vez(es)
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  criquio 31/12/2011, 01:48

    Olá, seja bem vindo ao forum. Tente assim:

    ...
    Me!nome.Undo 'desfaz a digitação.

    Me.Form.Filter = "Código = '" & Me.Código & "'"
    Me.Form.FilterOn = True


    ...


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    joaosreis
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 31/12/2011

    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  joaosreis 31/12/2011, 02:45

    Estou com problemas... Se usar o Me.Undo, diz-me que a seguir que é null, pois apaga a caixa, sem o Me.Undo diz-me que existe algo que o impede de guardar...
    avatar
    Convidado
    Convidado


    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  Convidado 31/12/2011, 05:04

    Boa noite colega JoaoReis essa aplicação identifica e mostra o registro......

    Private Sub nome_AfterUpdate()
    Dim AchaBarras As Variant
    Dim rs As Recordset
    Dim MyBar As Variant

    Achanome = DLookup("[nome]", "tblClientes", "[nome]='" & Me.nome & "'")


    If Achanome <> "" Or Not IsNull(Achanome) Then
    MsgBox "Este nome já encontra-se cadastrado no sistema!" & vbCrLf _
    & "Mostrarei o registro na tela.", vbExclamation, "Atenção"

    MyBar = Me.nome
    Me.Undo
    DoCmd.SelectObject acForm, "nomedoformulário"
    Set rs = Me.RecordsetClone
    rs.FindFirst "[nome]='" & MyBar & "'"
    Me.Bookmark = rs.Bookmark
    rs.Close
    Else
    Me.Descricao.SetFocus
    End If
    End Sub
    avatar
    joaosreis
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 31/12/2011

    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  joaosreis 31/12/2011, 12:23

    Não estou a conseguir minha gente...

    UPDATE:
    Código:

    Private Sub CardNumber_BeforeUpdate(Cancel As Integer)
    If (Not IsNull(DLookup("[CardNumber]", "cards_collection", _
    "[CardNumber] ='" & Me!CardNumber & "'"))) Then
    MsgBox "A carta já está registada no sistema. " & CardNumber.Value, vbInformation, "Aviso"
    Cancel = True 'cancela o evento.
    Me.Filter = "CardNumber = """ & Me.CardNumber & """"
    Me.Undo 'desfaz a digitação
    Me.FilterOn = True
    End If
    End Sub
    Assim consegui! Já me activa o filtro e define como o valor que introduzi.
    avatar
    Convidado
    Convidado


    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  Convidado 31/12/2011, 15:06

    JoaoReis, boa tarde.... o exemplo que lhe passei, faz o que pretende identifica o que foi registrado e lhe mostra. Se pretender fazer alteração é só fazer ou fechar. è ssó trocar os campos pelos seus....
    avatar
    joaosreis
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 31/12/2011

    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  joaosreis 31/12/2011, 15:19

    cafpr, a sua sugestão agrada-me mais, pois não precisa de filtros, obrigado! Já agora, eu ao introduzir os campos altero entre eles com o Tab, podia dizer-me se é possível que, quando ele tivesse que ir a um registo existente, depois quando gravasse, abrisse um novo registo em vez do seguinte?

    UPDATE: Consegui através de macros.
    avatar
    Convidado
    Convidado


    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  Convidado 1/1/2012, 01:14

    Boa noite colega.... crie um botão no form e clame-o de Gravar. No evento "ao clicar", desse botão escreva essa aplicação:
    Quando você anterar algum dado no form ele lhe pedirá para salvar e caso entre no registro e click no botão gracar ele lhe informa se o registro esta salvo ou não.

    Private Sub Gravar_Click()
    Dim X As Integer
    If (Me.Dirty = True) Then
    X = MsgBox("Salvar registro no sistema ?", vbYesNo, "CADASTRO DE CLIENTES")
    If X = vbNo Then
    Me.Undo
    Exit Sub
    Else
    RunCommand acCmdSaveRecord
    DoCmd.GoToRecord , , acNewRec
    Exit Sub
    End If
    End If

    If (Me.Dirty = False) Then
    MsgBox "Registro já salvo...", vbCritical, "Atenção"
    Exit Sub
    End If

    End Sub

    E se por acaso fez alguma alteração e esqueceu de salvar ao fechar o form com o botão ele também irá lembrar que houve alteração e lhe pedirá para salvar ou não. Então no evento ao clicar do botão "fechar" cole essa aplicação.

    Private Sub fechar_Click()
    Dim X As Integer
    If Me.Dirty Then
    X = MsgBox("Houve adição ou alterações de registro, deseja salvar ?", vbYesNo, "CADASTRO DE CLIENTES")
    If X = vbNo Then
    Me.Undo
    End If
    End If

    DoCmd.Close
    End Sub

    Não esqueça de retornar.......se deu certo ou não...........
    avatar
    joaosreis
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 31/12/2011

    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  joaosreis 1/1/2012, 21:17

    Caro cafpr, não testei a sua sugestão pois não quero usar um botão para guardar e tem coisas que não quero.
    Acabei por usar umas macros para o que desejava.
    avatar
    Convidado
    Convidado


    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  Convidado 1/1/2012, 23:06

    Ok, você decide, mas quando possivel use eventos vba e não macros, o risco é menor.....
    Se a questão foi resolvida só falta dar como resolvido...
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  criquio 2/1/2012, 00:24

    Joao, uma dica: converta essa macro para vba e você verá o código que poderia ser usado no lugar dela.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    joaosreis
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 31/12/2011

    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  joaosreis 2/1/2012, 00:44

    Caro criquio, curiosamente estava neste momento a fazer isso, pois queria incluir o formulario num de navegação, e a macro não esta a funcionar assim.
    Só que quando ponho para converter a macro ele dá erro.

    UPDATE: Descobri o que códigos preciso, e agora só preciso do DoCmd.GoToControl, mas tenho isto:
    Spoiler:
    E ele não deixa, diz que primeiro tem de guardar o campo.

    EDIT: Feito! Tive de alterar Private Sub Form_BeforeUpdate(Cancel As Integer) para Private Sub Form_AfterUpdate() e já deixa! Além disso tive de remover DoCmd.SelectObject acForm, "cards_collection" para ele funcionar no formulário de navegação.
    avatar
    joaosreis
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 31/12/2011

    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  joaosreis 3/1/2012, 18:23

    Precisava de mais ajuda, só que desta vez eu queria que ele verificasse o registo de uma tabela mas de acordo com dois campos, em vez de um.
    Isto é, antes precisava que ele procura-se pela chave primária e abrisse o registo, desta vez preciso que procure e abra um registo com base na combinação de dois campos da tabela.
    Não sei se me estou a fazer entender, mas precisava mesmo desta ajuda...
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  vieirasoft 20/1/2012, 10:48

    Como não houve retorno, o tópico passa a resolvido. Qualquer coisa reabra, por favor.

    Conteúdo patrocinado


    [Resolvido]Abrir registo existente em formulário Empty Re: [Resolvido]Abrir registo existente em formulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/5/2024, 22:41