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


2 participantes

    [Resolvido]SELECIONAR ÚLTIMO REGISTRO

    avatar
    edjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 22/03/2012

    [Resolvido]SELECIONAR ÚLTIMO REGISTRO Empty [Resolvido]SELECIONAR ÚLTIMO REGISTRO

    Mensagem  edjr 6/7/2012, 01:06

    Fiz um formulário que mostra os usuários cadastrados no banco de dados.

    O BD tem uma Tbl que registra cada login e o horário que o usuário fez.


    Os campos do formulário são:

    USUARIO
    PERFIL "operador, administrador..."
    HORALOGIN


    Os campos da TblLogin são: num_login, usuario, horalogin.

    Para mostrar o ultimo login, tentei utilizar esse procedimento ao abrir o formulário:

    Private Sub Form_Open(Cancel As Integer)
    Dim db As Database
    Dim rs As Recordset

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("SELECT Last(horalogin) FROM TblLogin where usuario = '" & Me!usuario & "'")


    me!horalogin = rs!horalogin



    End Sub

    Esse procedimento não deu certo! Entra no modo de
    depuração e acusa o seguinte erro:

    "Erro em tempo de execução '3265'

    Item não encontrado na coleção.

    e destaca de amarelo: me!horalogin = rs!horalogin


    Onde foi que eu errei?
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]SELECIONAR ÚLTIMO REGISTRO Empty Re: [Resolvido]SELECIONAR ÚLTIMO REGISTRO

    Mensagem  rgondim 6/7/2012, 01:24

    Creio que a função DMax seja mais adequada.

    DMax("Num_login", "TblLogin", "Usuario=" & Me.Usuario)

    Qual o campo chave primária da tabela? Num_login? Ele é Numeração Automática? Se não, você pode numerá-lo através desse recurso evento antes de inserir do formulário (Num_login = Nz(DMax("CampoID","TblLogin"),0)+1).

    Acho que assim funcionará, pois cada vez que um novo login é registrado na tabela será inserido um número ID e este sempre será o maior valor. Portanto, DMax sempre buscará o maior valor do campo.


    Última edição por rgondim em 9/7/2012, 21:22, editado 1 vez(es)
    avatar
    edjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 22/03/2012

    [Resolvido]SELECIONAR ÚLTIMO REGISTRO Empty Re: [Resolvido]SELECIONAR ÚLTIMO REGISTRO

    Mensagem  edjr 6/7/2012, 02:21

    Não deu certo!
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]SELECIONAR ÚLTIMO REGISTRO Empty Re: [Resolvido]SELECIONAR ÚLTIMO REGISTRO

    Mensagem  rgondim 6/7/2012, 02:48

    Onde e como você está tentando?

    Quando você fala em selecionar o último registro sua intenção é ir para este registro ou apenas localizá-lo?
    avatar
    edjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 22/03/2012

    [Resolvido]SELECIONAR ÚLTIMO REGISTRO Empty Re: [Resolvido]SELECIONAR ÚLTIMO REGISTRO

    Mensagem  edjr 6/7/2012, 03:37

    na TblLoogin a chave primária é num_login e é um dado de numeração automática.

    No formulário que eu falei, ele tá no modo formulário contínuo:
    USUARIO PERFIL HORALOGIN

    o que eu fiz foi pedir para que quando o formulario abrisse executasse a função que voce me indicou:

    Private Sub Form_Open(Cancel As Integer)

    Me!horalogin = DMax("Num_login", "TblLogin", "Usuario=" & Me.usuario)

    End Sub


    Que dá a mensagem: Erro em tempo de execução 2471

    A expressão que você inseriu como parametro da consulta gerou este erro:'NomedeUmDosUsuarios'.


    O que eu quero é que apareça apenas o ultimo login de cada usuário ao lado do seu respectivo nome no formulario continuo.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]SELECIONAR ÚLTIMO REGISTRO Empty Re: [Resolvido]SELECIONAR ÚLTIMO REGISTRO

    Mensagem  rgondim 6/7/2012, 03:57

    Você pode criar um campo, UltLogin, e inserir nele - como origem do registro - a função:

    =DMáx("Num_login"; "TblLogin", "Usuario='" & Me.Usuario&"'")

    Agora, Usuario é um campo texto?
    Se for, creio - mas não tenho plena certeza - tem que usar aspas simples. Teste o modelo acima. Caso ocorra erro, teste sem elas.


    Conteúdo patrocinado


    [Resolvido]SELECIONAR ÚLTIMO REGISTRO Empty Re: [Resolvido]SELECIONAR ÚLTIMO REGISTRO

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 17:28