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]Recordset com nome do campo em matriz

    avatar
    Mauricio.Santos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 15/02/2016

    [Resolvido]Recordset com nome do campo em matriz Empty [Resolvido]Recordset com nome do campo em matriz

    Mensagem  Mauricio.Santos 17/6/2016, 14:50

    Olá!

    Tenho o seguinte código:

    Código:

        strSql = "SELECT * from myTable WHERE MyField like '" & dtaDataImport & "%" & "'"
        Set Rst = New ADODB.Recordset
        Rst.CursorLocation = adUseClient
        Rst.Open strSql, conexaoSQL, adOpenDynamic, adLockOptimistic
       
        ' Variável string convertida em matriz que contém os nomes de campos que existem  no recordset aberto anteriormente
        varListaCampos = Split(varListaCampos, ",")
       
        For i = 0 To UBound(varListaCampos)
       
            Debug.Print Rst!varListaCampos(i) '-> Comando de teste
           
           
        Next i

    No código dentro do for/next ocorre o erro "3265 - O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado", porém o nome do campo está correto e ele consta no recordset.

    Já tentei também Rst(varListaCampos(i)) sem sucesso.

    Como fazer para que o comando dentro do for/next funcione???

    Obrigado a todos.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Recordset com nome do campo em matriz Empty Re: [Resolvido]Recordset com nome do campo em matriz

    Mensagem  FabioPaes 18/6/2016, 04:06

    Amigo, qual o Objetivo desse Codigo???

    Dica: Coloque para exibir a lista de Campos atraves de uma MsgBox, assim sabera se realmente esta capturando os Nomes dos Campos...

    Ex

    strSql = "SELECT * from myTable WHERE MyField like '" & dtaDataImport & "%" & "'"
    Set Rst = New ADODB.Recordset
    Rst.CursorLocation = adUseClient
    Rst.Open strSql, conexaoSQL, adOpenDynamic, adLockOptimistic

    ' Variável string convertida em matriz que contém os nomes de campos que existem no recordset aberto anteriormente
    varListaCampos = Split(varListaCampos, ",")

    msgbox varListaCampos
    Msgbox UBound(varListaCampos)

    For i = 0 To UBound(varListaCampos)

    Debug.Print Rst!varListaCampos(i) '-> Comando de teste


    Next i



    Assim sabera se esta tudo ok com os dados ou nao...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Mauricio.Santos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 15/02/2016

    [Resolvido]Recordset com nome do campo em matriz Empty Re: [Resolvido]Recordset com nome do campo em matriz

    Mensagem  Mauricio.Santos 20/6/2016, 12:05

    Olá FabioPaes.

    Utilizo Access 2016 e estou trabalhando com ADODB, BD desvinculado e utilizando a string de conexão:

    cnSQL.Open "Provider=SQLOLEDB; Data Source=" & strBDSqlSrvH & "; Initial Catalog=" & strBDSqlDBH & "; User ID=" & strBDSqlUserH & "; Password=" & strBDSqlPassH & ""

    Se eu utilizar BD vinculado as seguintes linhas de código funcionam normalmente:

    Código:

    Dim rs As DAO.Recordset
    Dim varListaCampos, i%
    varListaCampos = "id,Nomepaciente,nomeMae,dta"
    varListaCampos = Split(varListaCampos, ",")
    Set rs = CurrentDb.OpenRecordset("tblTeste")
    For i = 0 To UBound(varListaCampos)
      Debug.Print rs(varListaCampos(i))
    Next
    rs.Close
    Set rs = Nothing

    Nas minhas pesquisas verifiquei que em BD desvinculado meu código não vai funcionar como desejo.
    Vou ter que encontrar outra forma de resolver meu problema.

    Obrigado pela ajuda.

    Conteúdo patrocinado


    [Resolvido]Recordset com nome do campo em matriz Empty Re: [Resolvido]Recordset com nome do campo em matriz

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/3/2024, 08:28