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]Dúvida com comando recordset.find

    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Dúvida com comando recordset.find Empty [Resolvido]Dúvida com comando recordset.find

    Mensagem  thiagomcosta 9/6/2017, 18:12

    Olá!

    Estou com uma dúvida na utilização do método find no Excel.
    Estou tentando ler uma tabela do Access de dentro do Excel (versão 2010)

    A seguinte linha está dando erro:
    Código:
    rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 1"

    Porém se eu colocar apenas 1 critério não há erro:
    Código:
    rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "'"
    rs_Cronograma.Find "NumEtapa_Cronograma = 1"

    Abaixo o código completo:
    Código:
    Sub Importa_Dados()
    Dim vSQL_Clientes As String, vSQL_Cronograma As String, vSQL_IDs As String
    Dim rs_Clientes As ADODB.Recordset, cn_Clientes As ADODB.Connection
    Dim rs_Cronograma As ADODB.Recordset, cn_Cronograma As ADODB.Connection
    Dim rs_IDs As ADODB.Recordset, cn_IDs As ADODB.Connection
    Dim vLinha As Integer, vLinhaMax As Integer
    Dim vID As String

    'Abre a tabela cronograma e lança na planilha
    vSQL_Cronograma = "SELECT tb_Cronograma.ID_Cronograma, tb_Cronograma.Etapa_Cronograma, tb_Cronograma.NumEtapa_Cronograma, tb_Cronograma.Previsto_Cronograma, tb_Cronograma.Executado_Cronograma "
    vSQL_Cronograma = vSQL_Cronograma & "FROM tb_Cronograma;"
        
    Set cn_Cronograma = New ADODB.Connection
    cn_Cronograma.CursorLocation = adUseClient
    cn_Cronograma.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=Z:\Publico\Gestão Ideés\IdeesGestao_be.accdb;Persist Security Info=False"
        
    Set rs_Cronograma = New ADODB.Recordset

    rs_Cronograma.Open vSQL_Cronograma, cn_Cronograma
        
    For vLinha = 2 To vLinhaMax
        vID = Worksheets("Cadastro das Turmas").Cells(vLinha, 2).Value
        rs_Cronograma.MoveFirst
    '>> NA LINHA ABAIXO QUE DÁ O ERRO <<
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 1"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 11).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 13).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 2"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 40).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 21).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 3"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 41).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 22).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 4"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 42).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 23).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 5"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 43).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 24).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 6"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 44).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 25).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 7"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 45).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 26).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 8"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 46).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 28).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 9"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 47).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 29).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 10"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 48).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 31).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 11"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 49).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 32).Value = rs_Cronograma!Executado_Cronograma
            rs_Cronograma.MoveFirst
        rs_Cronograma.Find "ID_Cronograma LIKE '" & vID & "' AND NumEtapa_Cronograma = 12"
            Worksheets("Cadastro das Turmas").Cells(vLinha, 8).Value = rs_Cronograma!Previsto_Cronograma
            Worksheets("Cadastro das Turmas").Cells(vLinha, 35).Value = rs_Cronograma!Executado_Cronograma
    Next

    'Fecha as tabelas
    rs_IDs.Close
    Set rs_IDs = Nothing
    cn_IDs.Close
    Set cn_IDs = Nothing

    rs_Clientes.Close
    Set rs_Clientes = Nothing
    cn_Clientes.Close
    Set cn_Clientes = Nothing

    rs_Cronograma.Close
    Set rs_Cronograma = Nothing
    cn_Cronograma.Close
    Set cn_Cronograma = Nothing

    End Sub


    O erro que dá é o seguinte:
    Erro em tempo de execução '3001':
    Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.


    Última edição por thiagomcosta em 14/6/2017, 14:07, editado 1 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Dúvida com comando recordset.find Empty Re: [Resolvido]Dúvida com comando recordset.find

    Mensagem  Alvaro Teixeira 10/6/2017, 12:55

    Olá Thiago Costa,
    Este fórum é de Access.
    Tópico movido para OffTopic.
    Abraço
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Dúvida com comando recordset.find Empty Re: [Resolvido]Dúvida com comando recordset.find

    Mensagem  thiagomcosta 12/6/2017, 12:34

    Pedrão pela gafe.
    Obrigado!

    Na verdade eu tenho a planilha pronta, mas os dados estão duplicados. Tenho a informação no Access e depois é cadastrado novamente no Excel. Queria aproveitar toda a estrutra do Excel, com as tabelas filtradas, os gráficos, e outros recursos mais que não teria no Access. Mas também deixar de ter um cadastro paralelo. Ter as informações em apenas um local, no caso, o aAccess.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Dúvida com comando recordset.find Empty Re: [Resolvido]Dúvida com comando recordset.find

    Mensagem  Alvaro Teixeira 13/6/2017, 08:18

    Olá,
    Quais são os recursos que lhe estão a faltar no Access?
    Pode enumerar?
    Abraço
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Dúvida com comando recordset.find Empty Re: [Resolvido]Dúvida com comando recordset.find

    Mensagem  thiagomcosta 13/6/2017, 17:34

    Primeira parte são os gráficos, que já estão prontos na planilha que tenho. Ganharia tempo e faria isso somente daqui uns meses.

    Outra parte é uma barra que indica a etapa do processo que se encontra o cliente. A medida que as datas são lançadas a barra é atualizada automaticamente. Clicando sobre a etapa é possível atualizar a data de realização. Sei que é possível fazer no access, mas, novamente, não quero perder tempo HOJE com algo que já está pronto.

    Estou ainda no meio da programação de todo o sistema e o que já existe e funciona não queria trabalhar agora. Só o fato da duplicação dos dados que está sendo um problema.


    [Resolvido]Dúvida com comando recordset.find Exempl10
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Dúvida com comando recordset.find Empty Re: [Resolvido]Dúvida com comando recordset.find

    Mensagem  Alvaro Teixeira 13/6/2017, 17:39

    Olá Thiago Costa,
    Sim, creio ser tudo possivel em Access.
    Face à urgencia, não lhe resta outra alternetive se não procurar um forum de Excel.

    Qualquer coisa de Access ja sabe Máximo Access Wink
    Abraço
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Dúvida com comando recordset.find Empty Re: [Resolvido]Dúvida com comando recordset.find

    Mensagem  thiagomcosta 14/6/2017, 13:15

    Aqui já me ajuda bastante a alguns anos... hehe...

    Consegui resolver puxando campo por campo ao invés de uma consulta em SQL com todos os campos. Ficou um pouco demorado para abrir a planilha, mas de imediato atende o que eu necessito.

    Valeu, grande abraço!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Dúvida com comando recordset.find Empty Re: [Resolvido]Dúvida com comando recordset.find

    Mensagem  Alvaro Teixeira 14/6/2017, 14:46

    Olá Thiago Costa,
    Obrigado pelo retorno.
    Abraço

    Conteúdo patrocinado


    [Resolvido]Dúvida com comando recordset.find Empty Re: [Resolvido]Dúvida com comando recordset.find

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 15:12