MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Passar RecordSet para uma Array

    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 358
    Registrado : 28/10/2010

    [Resolvido]Passar RecordSet para uma Array Empty [Resolvido]Passar RecordSet para uma Array

    Mensagem  zcarloslopes em 21/5/2020, 14:54

    Boa tarde a todos,

    Uma ajuda por favor:

    Porque o código abaixo só me retorna a última linha?
    Código:
    (...)
    Dim MySearch As Variant
    sSQL = "SELECT xxxxxxxxxxxxxxxx);"
    Set dbs = CurrentDb
    Set Rst = dbs.OpenRecordset(sSQL, dbOpenSnapshot)
    Rst.MoveFirst

    Do While Not Rst.EOF
            MySearch = Array(Rst!NomeProf & vbCrLf)
            Rst.MoveNext       
    Loop
    (...)
    Obrigado


    Última edição por zcarloslopes em 22/5/2020, 10:04, editado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7783
    Registrado : 05/11/2009

    [Resolvido]Passar RecordSet para uma Array Empty Re: [Resolvido]Passar RecordSet para uma Array

    Mensagem  Alexandre Neves em 21/5/2020, 21:39

    Boa noite
    Código:
    (...)
    Dim MySearch As Variant
    sSQL = "SELECT xxxxxxxxxxxxxxxx);"
    Set dbs = CurrentDb
    Set Rst = dbs.OpenRecordset(sSQL, dbOpenSnapshot)
    Rst.MoveFirst

    Do While Not Rst.EOF
            MySearch = Array(Rst.absoluteposition)=Rst!NomeProf
            Rst.MoveNext     
    Loop
    (...)


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 358
    Registrado : 28/10/2010

    [Resolvido]Passar RecordSet para uma Array Empty Re: [Resolvido]Passar RecordSet para uma Array

    Mensagem  zcarloslopes em 22/5/2020, 10:03

    Bom dia Alexandre Neves,

    Obrigado pelo retorno, mas não funciona. Talvez por causa da versão que estou a usar.

    Mas consegui resolver.
    Deixo aqui a solução para quem precisar:
    Código:
    (...)
    Dim MySearch As Variant
    sSQL = "SELECT xxxxxxxxxxxxxxxx);"
    Set dbs = CurrentDb
    Set Rst = dbs.OpenRecordset(sSQL, dbOpenSnapshot)

    '-------------------------------------------------------- Solução
    If Not (Rst.BOF And Rst.EOF) Then
      Rst.MoveLast 'necessário para o record count
      Rst.MoveFirst
      ReDim MySearch(Rst.RecordCount - 1)

       Do Until Rst.EOF
         MySearch(i) = Rst.Fields(0)
         Rst.MoveNext
         i = i + 1
       Loop    
    End If
    '------------------------------------------------------
    (...)

      Data/hora atual: 4/12/2020, 08:41