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]Saber qual recordset foi adicionado

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Saber qual recordset foi adicionado Empty Saber qual recordset foi adicionado

    Mensagem  Marcelo David 20/3/2012, 00:57

    Boa noite amigos...
    Há a possibilidade de saber exatamente qual registro foi adcionado via recordset?
    Tenho essa dúvida porque quando usamos o Add, os registros só vão para a tabela após o Update e conseqentimente a Chave Primário só é criada nesse momento(posso está errado).
    Mas preciso saber exatamente qual registro foi inserido.

    Pensei em usar o DLast, mas não seria confiável, uma vez que o banco de dados é usado em rede e por esse motivo, duas pessoas ao mesmo tempo podem estarem fazendo inclusões e sendo assim o DLast irá pegar o último registro adcionado, podendo ser ou não o registro atual... (será que esta lógica está certo ,risos)

    Conto com os amigos!


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Saber qual recordset foi adicionado Marcel11
    avatar
    Convidad
    Convidado


    [Resolvido]Saber qual recordset foi adicionado Empty Re: [Resolvido]Saber qual recordset foi adicionado

    Mensagem  Convidad 20/3/2012, 01:22


    Boa noite, Marcelo!

    Não sei se entendi a intenção...

    Uma ideia seria acrescentar uma rotina que, após o update, enviasse o valor de um dos campos que identifique o registro adicionado (a própria chave ou outro) para um campo não acoplado ou para uma variável, dependendo de onde vc quer fazer esta verificação.
    Gilberto Rocha
    Gilberto Rocha
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1027
    Registrado : 21/01/2010

    [Resolvido]Saber qual recordset foi adicionado Empty Re: [Resolvido]Saber qual recordset foi adicionado

    Mensagem  Gilberto Rocha 20/3/2012, 01:27

    Podes usar o dlast no cronometro do formulario, atualizando a cada segundo.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Saber qual recordset foi adicionado Empty Re: [Resolvido]Saber qual recordset foi adicionado

    Mensagem  Marcelo David 20/3/2012, 01:54

    Obrigado pelas respostas amigos!

    topbr, nesse caso aínda não teremoa certeza de que o registro adicionado é o atual ou de outra pessoa que também pode ter adicionado.

    Vamos lá...

    Norbs
    Mas é aí que entra minha dúvida...
    Como ter certeza de que o valor que a variável irá receber é realmente do registro que acabei de adicionar?
    Pois o formulário não é acoplado, ele apenas serve para a inserção de dados...

    A intençao é que esse formulária irá alimentar duas tabelas, a tabela 1 será a principal, já a tabela receberá tem uma chave estrangeira que é a chave primária da tabela 1.

    No momento do Update, tenho que inserir a chave primária da tabela 1 na chave estrangeira da tabela 2...

    Em resumo:

    É exatamente como se trabalhesse com subformulários, onde teriamos os campos mestres e filhos...



    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Saber qual recordset foi adicionado Marcel11
    avatar
    Convidad
    Convidado


    [Resolvido]Saber qual recordset foi adicionado Empty Re: [Resolvido]Saber qual recordset foi adicionado

    Mensagem  Convidad 20/3/2012, 02:11


    E se vc abrir os dois recordsets e adicionar a chave estrangeira à tabela2 logo após o update da tabela1 ? (Não sei se seria possível na sua estrutura)
    A probabilidade de coincidência seria mínima...
    avatar
    Convidad
    Convidado


    [Resolvido]Saber qual recordset foi adicionado Empty Re: [Resolvido]Saber qual recordset foi adicionado

    Mensagem  Convidad 20/3/2012, 09:57

    um truque que se costuma fazer, é inserir o ID na Tag (marca) guardando assim a ultima inserção, esse passo é feito após o UPdate.

    outra maneira simples é ter uma tabela apenas com um campo para receber o ID, e fazer-lhe o update, sempre terá a ultima inserção.


    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Saber qual recordset foi adicionado Empty Re: [Resolvido]Saber qual recordset foi adicionado

    Mensagem  Avelino Sampaio 20/3/2012, 11:46

    Olá Amigos

    Marcelo, assim que é acionado o metodo AddNew o número do campo exclusivo já fica a nossa disposição:

    Criei um novo formulário(frmNovoCliente) no Maestro , para explicar o artigo abaixo.

    http://www.usandoaccess.com.br/dicas/dica29.asp?id=1#inicio


    Neste formulário tem o seguinte código, que mostra a técnica de capturar o número exclusivo. Observe a variável ID capturando o valor logo após o Addnew. (id = rs!idCliente)

    Código:
    Private Sub btSalvar_Click()
    Dim rs As DAO.Recordset
    Dim id As Long

    If Len(Me!tx1 & "") = 0 Then
        Me!tx1.SetFocus
        Exit Sub
    End If

    If DCount("*", "tblClientes", "Cli_nome = """ & Me!tx1 & """") = 1 Then
        MsgBox "Cliente já cadastrado...", , "Aviso"
        Me!tx1.SetFocus
        Exit Sub
    End If

    Set rs = CurrentDb.OpenRecordset("tblClientes")
    rs.AddNew
        id = rs!idCliente 'captura o número exclusivo do novo registro
        rs!cli_Nome = Me!tx1
    rs.Update
    rs.Close
    Set rs = Nothing
    Forms!frmClientes.Filter = "idcliente = " & id
    Forms!frmClientes.FilterOn = True
    Forms!frmClientes!cli_Endereço.SetFocus
    DoCmd.Close acForm, "frmNovoCliente"
    End Sub


    Observe que logo após eu uso o número capturado para realizar uma filtragem

    Forms!frmClientes.Filter = "idcliente = " & id

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Saber qual recordset foi adicionado Empty Re: [Resolvido]Saber qual recordset foi adicionado

    Mensagem  Marcelo David 20/3/2012, 12:39

    Puxa vida... Não sabia que entre o AddNew e o Update já está a disposição o Id do registro... Embarassed

    Muito obrigado Avelino, deu certinho!!! cheers

    Grato a todos os outros amigos que também deram suas dicas!!! cheers


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Saber qual recordset foi adicionado Marcel11

    Conteúdo patrocinado


    [Resolvido]Saber qual recordset foi adicionado Empty Re: [Resolvido]Saber qual recordset foi adicionado

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 3/5/2024, 01:36