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]Localizar e alterar um registro

    rogeriorcds
    rogeriorcds
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 26/06/2013

    [Resolvido]Localizar e alterar um registro Empty [Resolvido]Localizar e alterar um registro

    Mensagem  rogeriorcds Ter 14 Jan - 6:55

    Mestres,

    Tenho uma dúvida no meu BD, com ajuda dos colegas fiz um DB onde eu gero um contrato com números de parcelas e suas datas de vencimento.
    agora não estou conseguindo fazer com que o meu recibo localize o contrato e coloque a data de pagamento na ultima parcela que esta em aberto.
    pois normalmente não são pagos na data certa então preciso que ele localize o ultima pagamento em aberto.

    Obrigado mais uma vez.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  Dilson Qui 16 Jan - 5:23

    Olá,

    Imagino que suas parcelas tenham uma chave primária (um id, um código único)

    A partir do form que localizar a parcela, coloque em um botão:

    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "NomeDoSeuFormPagamento"
    stLinkCriteria = "[SeuCampoCodigo]=" & Me![SeuCampoCodigo]
    DoCmd.OpenForm stDocName, , , stLinkCriteria

    Isso fará abrir seu formulário que insere os pagamentos com os dados da parcela desejada. Lance os dados e confirme.


    rogeriorcds
    rogeriorcds
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 26/06/2013

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  rogeriorcds Qui 16 Jan - 7:06

    Dilson,

    é mais ou menos assim que tenho o BD

    Cod.  datapgto.   valor.    cliente.  datareceb. valorrecebido.
    1     10/01/14    500,00   Fulano   11/01/14      500,00
    2     10/02/14    500,00   Fulano   09/02/14      500,00
    3     10/03/14    500,00   Fulano   15/03/14      510,00
    4     10/04/14    500,00   Fulano   16/04/14      512,00
    5     10/05/14    500,00   Fulano  
    6     10/06/14    500,00   Fulano  
    7     10/07/14    500,00   Fulano  

    As quatros primeiras estão pagas e falta as 3 ultima, o que eu queria é como eu faço para localizar o codigo que não esta pago e acrescentar os dados de pagamento.

    Obrigado.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  Dilson Qui 16 Jan - 18:04

    Pois é, seu campo Cod aí é a chave primária (código único) das parcelas.

    Antes terá que filtrar as parcelas por cliente e data de recebimento vazia, para vir todas as parcelas em aberto, ex:

    Dim nSQL As String
    nSQL = "SELECT * FROM SuaTabelaParcelas WHERE Cliente = 'Rogerio' And DataReceb IS NULL"
    Me.Lista.RowSource = nSQL
    'Lista seria um controle ListBox para listar todas as abertas

    Dando dois cliques em qualquer parcela listada abriria o form de lançamento de pagamentos na parcela desejada.

    Em seguida use a sugestão que passei na #Mensagem n°2 (no evento duplo clique da listbox) para acessar o formulário de pagamentos na parcela correspondente, ex:

    stLinkCriteria = "[Cod]=" & Me![Cod]
    rogeriorcds
    rogeriorcds
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 26/06/2013

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  rogeriorcds Qui 16 Jan - 18:19

    Dilson,

    Vou tentar fazer aqui qualquer eu te aviso.

    Muitíssimo obrigado pelo ajuda.
    PauloMaia
    PauloMaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 164
    Registrado : 02/05/2014

    [Resolvido]Localizar e alterar um registro Empty Adaptar com mensagem

    Mensagem  PauloMaia Qua 7 maio - 16:28

    Boa tarde a TODOS, Prazer em fazer parte deste Forum / MaximoAccess !

    ////

    A partir do form que localizar a parcela, coloque em um botão:

    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "NomeDoSeuFormPagamento"
    stLinkCriteria = "[SeuCampoCodigo]=" & Me![SeuCampoCodigo]
    DoCmd.OpenForm stDocName, , , stLinkCriteria

    ////

    Estou tentando adaptar esse botão aqui em meu form, porem preciso que esse botão gere uma mensagem onde pede para inserir um numero de chave primaria e após ENTER, ele trazer o registro para verificação ou alteração no cadastro ! Podem ajudar ?  
    Obs.. Campo Codigo aqui é chave primaria.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  Dilson Sex 9 maio - 8:13

    Olá,

    Use um inputbox assim:

    Dim nCod As Long
    Dim stDocName As String
    Dim stLinkCriteria As String
    nCod = InputBox("Digite um número de chave primária", "Atenção ..::")
    stDocName = "NomeDoSeuFormPagamento"
    stLinkCriteria = "[SeuCampoCodigo]=" & nCod
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    PauloMaia
    PauloMaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 164
    Registrado : 02/05/2014

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  PauloMaia Sex 9 maio - 10:38

    Obrigado, Dilson ;


    Funcionou,

    /////

    Dim nCod As Long
    Dim stDocName As String
    Dim stLinkCriteria As String
    nCod = InputBox("Digite um número de chave primária", "Atenção ..::")
    stDocName = "NomeDoSeuFormPagamento"
    stLinkCriteria = "[SeuCampoCodigo]=" & nCod
    DoCmd.OpenForm stDocName, , , stLinkCriteria

    //////



    Porem se eu digito uma chave que não existe ele abre o form em um novo registro limpo para cadastrar ( deveria informar registro não encontrado ou não válido e retornar para uma nova tentativa  ) !  ,  e o o botão cancela ta com

    erro de execução '13':
    Tipos imcompativeis

    { Botão depurar aparece nessa linha } ->     nCod = InputBox("Digite um número de chave primária", "Atenção ..::")


    acredito que ele deveria somente cancelar a tentativa ou seja , fechar a janela aberta de inserção.


    Como corrigir ?
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  Dilson Sáb 10 maio - 10:09

    Então precisaremos verificar se a Chave primária existe.
    Tente:

    Dim nCod As Long
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "NomeDoSeuForm"
    nCod = InputBox("Digite um número de chave primária", "Atenção ..::")
    If (Not IsNull(DLookup("SuaChavePrimaria", "NomeDaSuaTabela", _
    "SuaChavePrimaria =" & nCod))) Then
    stLinkCriteria = "[SuaChavePrimaria]=" & nCod
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Else
    Cancel = True
    MsgBox "Esta Chave Primária não existe. Digite outra e tente novamente", vbInformation, "::.. Atenção"
    nCod = 0
    End If


    Tipos incompatíveis podem ter mais de uma origem, que vai desde campos com tipos de dados diferentes, ex:
    nCod = Tipo Número
    ChavePrimaria = Tipo Texto

    O certo é:
    nCod = Tipo Número
    ChavePrimaria = Tipo Número

    Até uso inadequado de aspas.

    PauloMaia
    PauloMaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 164
    Registrado : 02/05/2014

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  PauloMaia Sáb 10 maio - 11:03

    Obrigado, Dilson ;

    deu certo,  somente o botão cancelar ainda da erro

    Depurar
    Mostra.....
    nessa linha => nCod = InputBox("Digite um número de chave primária", "Atenção ..::")


    quando aperta CANCELAR ele não retorna como se nada tivesse acontecido "fechar a caixa de dialogo" !
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  Dilson Seg 12 maio - 8:52

    Tente assim:

    Dim nCod As String
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "frmIndividual"
    nCod = InputBox("Digite um número de chave primária", "Atenção ..::")
    If nCod = Empty Then
            Exit Sub
        Else
             If (Not IsNull(DLookup("SuaChavePrimaria", "NomeDaSuaTabela", _
                                    "SuaChavePrimaria =" & nCod))) Then
                       stLinkCriteria = "[SuaChavePrimaria]=" & nCod
                       DoCmd.OpenForm stDocName, , , stLinkCriteria
                  Else
                       Cancel = True
                       MsgBox "Esta Chave Primária não existe. Digite outra e tente novamente" _
                                   , vbInformation, "::.. Atenção"
                                   nCod = ""
             End If
    End If

    Mudei o tipo de dado da variável nCod para texto e correu sem problemas. O fato curioso é que não deu problema com incompatibilidade de dados pois nCod está = Texto e ChavePrimaria = Numero. Tenho uma suspeita que o controle InputBox tem por padrão o tipo de dado Texto e o mesmo faz a conversão automática a partir do caractere digitado. Alguém com experiência no tipo de dado da input poderia comentar e confirmar se isso mesmo que acontece, visto que se eu coloco tipo Numero (As Long) acontecem problemas de incompatibilidade. Vamos pesquisar.
    PauloMaia
    PauloMaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 164
    Registrado : 02/05/2014

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  PauloMaia Seg 12 maio - 13:03

    Dilson, Obrigado

    Porem

    Veja que ao verificar a chave quando a mesma não existe mostra a mensagem certo porem e ele fecha a caixa de dialogo , quando deveria dizer que a chave não existe e retornar para caixa de dialogo sem ter que apertão o botão de busca novamente !

    E o botão OK , se não tiver nada ele fecha a caixa de dialogo, quando poderia verificar e dizer "necessário inserir um valor para busca" e retornar a para caixa de dialogo !


    Pode chegar a isso ?
    rogeriorcds
    rogeriorcds
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 26/06/2013

    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  rogeriorcds Sáb 13 Fev - 6:43

    Obrigado,

    Consegui aqui.

    Valeu mestres.

    Conteúdo patrocinado


    [Resolvido]Localizar e alterar um registro Empty Re: [Resolvido]Localizar e alterar um registro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qui 7 Nov - 15:44