MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Comando RecordSetClone Dinamico

    Compartilhe
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 327
    Registrado : 01/08/2011

    [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  ronaldojr1 em 19/2/2018, 18:15

    boa tarde galera td bem
    venho pedir a ajuda de vcs para descobrir como deixar o comando a baixo dinamico


    Set rst = Form_NomeDoMeuFormulario.RecordsetClone 'como deixar o nome do meu formulario dinamico?
    avatar
    CassioFabre
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 728
    Registrado : 18/01/2013

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  CassioFabre em 19/2/2018, 18:52

    Boa tarde,

    Você pode criar uma variável para ser o form. Exemplo:

    Código:
    Public Sub clone(ByVal frm As Form)
        dim rst as recordset

      set rst = frm.recordsetclone
    End sub

    Não tenho como testar agora, mas acredito que dê certo.

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 327
    Registrado : 01/08/2011

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  ronaldojr1 em 19/2/2018, 19:52

    mas ai desse jeito nao vai ficar mais pesado minha aplicação?
    é que para usar a sua funcao eu imagino q eu terei q criar uma nova instancia do meu formulario para depois
    usar a sua função. é assim q usa?

    exemplo:

    Código:


    'no form q vai usar a funcao
    Dim frmInstance As New Form_Employees

    call clone frmInstance


    'sua funcao no modulo a parte
    Public Sub clone(ByVal frm As Form)
        dim rst as recordset

      set rst = frm.recordsetclone
    End sub



    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  Noobezinho em 19/2/2018, 22:54

    Ronaldo

    Da pra fazer isso:

    Crie uma função que ira fazer o recordsetclone do formulário que estiver utilizando no momento (Ativo):


    Função clone()
          dim rst as recordset
          set rst = Screen.activeForm.recordsetclone
    End sub


    chame o código :
    Call clone
    rst.movefirst
    ...
    ...

    [ ]'s
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 327
    Registrado : 01/08/2011

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  ronaldojr1 em 20/2/2018, 12:55

    bom dia galera,
    consegui aqui. uhuuu vlw

    segue codigo:

    Código:
    Public Function moveCursorSelecao(valorCampo As String, nmCampo As String)

    Dim rst As DAO.Recordset
    Dim Codigo  As Variant
     
     Set rst = Screen.ActiveForm.RecordsetClone
     
     Codigo = Nz(nmCampo & " = " & valorCampo, nmCampo & " = 0")

     rst.FindFirst (Codigo)

     If Not rst.NoMatch Then
        Screen.ActiveForm.Bookmark = rst.Bookmark
     End If

    End Function
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 327
    Registrado : 01/08/2011

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  ronaldojr1 em 20/2/2018, 13:03

    olha eu de novo,
    o codigo funciona, mas eu nao consigo colocar em uso a função sem dar erro 2475:
    você inseriu um expressão que requer que um formulário seja a janela ativa.

    mas eu ja fiz a chamada da função nos eventos:
    ao abrir - erro
    ao carregar - erro
    ao ativar - erro
    ao receber foco - nao chama a função
    ao clicar em algum botao - sucesso

    tem alguma dica ai?

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  Noobezinho em 20/2/2018, 14:37

    Como eu disse é para chamar a função dentro do formulário ativo. (ActiveForm)

    mas vc está usando o screen.activeform, dentro do proprio formulário ativo, sendo

    que a função  que passei deve ficar num módulo e então chamar dentro

    de qualquer formulário que queira utilizar a funçã0

    Chamar a função é isso:

    Call clone

    ou simplesmente: Clone

    [ ]'s
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 327
    Registrado : 01/08/2011

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  ronaldojr1 em 20/2/2018, 20:23

    entao Noobezinho,
    o q eu fiz foi justamente o q vc ja disse
    a função esta em um modulo a parte
    e a chamada esta no form ativo
    mas eu quero q a função seja executada ao abrir o formulário. é nessa hora q da o erro.
    quando o formulario abre.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  Noobezinho em 20/2/2018, 20:46

    Quando um controle dentro do formulário recebe o foco, o formulário está ativo.

    Então experimente criar uma caixa de texto, deixe ela como o primeiro controle a ser acessado quando abrir formulário.

    Se faz isso clicando no botão Ordem de tabulação no menu da ribbon, colocando ela no topo da lista.

    Coloque o código no evento Ao entrar dessa textbox e no final do código

    colocar um gotocontrol ou nomedacaixadetexto.setfocus, para o cursor do mouse ir já para a segunda caixa de texto.

    Dai vai funfar.

    Essa caixa de texto pode ser reduzida a um traço ( | ), ela exite só para executar o código.






    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 327
    Registrado : 01/08/2011

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  ronaldojr1 em 21/2/2018, 12:47

    Deu certo aqui. Muito obrigado pela força.


    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Comando RecordSetClone Dinamico

    Mensagem  Noobezinho em 21/2/2018, 12:54

    Opa!

    Que ótimo!

    Valeu pelo retorno

    Boa sorte!

      Data/hora atual: 24/9/2018, 05:17