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]SQL no VBA

    avatar
    elemke
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 25/05/2010

    [Resolvido]SQL no VBA Empty SQL no VBA

    Mensagem  elemke Sex 13 maio 2011, 2:16 pm

    Prezados, boa tarde!

    Fiz a função abaixo no VBA do access, onde a sentença de SQL está correta, porém, eventualmente tenho retorno do erro de que o "processo foi cancelado devido a uma interrupção", alguém poderia me ajudar?

    Quando o erro ocorre, a depuração mostra que o problema é na linha sql.MoveFirst, ao meu ver, parece que o SQL ainda não retornou todos os dados e o MoveFirst acaba interrompendo o processo. Como resolver isso?




    Function LIB_EMP()

    Dim conn As ADODB.Connection
    Dim sql As ADODB.Recordset
    Dim strConnect As String
    Dim strSql As String
    Dim dtInicial As String
    Dim dtFinal As String
    dtInicial = InputBox("Informe a Data Inicial:", "Informar Data")
    dtFinal = InputBox("Informe a Data Final:", "Informar Data")


    strConnect = "DRIVER={IBM DB2 ODBC DRIVER};DSN=***;DBALIAS=***;UID=***;PWD=****"

    Set conn = New ADODB.Connection
    conn.Open strConnect


    'STRING SQL

    strSql = "SELECT " & _
    "CO.NUMCOOPERATIVA AS COOP, " & _
    "B.IDUNIDADEINST AS PAC, " & _
    "A.IDPRODUTO, " & _
    "COUNT(A.NUMCONTRATOCREDITO) AS QTDE, " & _
    "SUM(A.VALORCONTRATOOPCRED) As VALOR " & _
    "FROM COOPCONS.CONTRATOCREDITO AS A " & _
    "JOIN COOPCONS.INSTITUICAOCOOPERATIVA AS CO ON (CO.IDINSTITUICAO=A.IDINSTITUICAO) " & _
    "JOIN COOPCONS.CLIENTEINSTUNIDADE AS B ON (A.IDCLIENTE=B.IDCLIENTE " & _
    "AND A.IDINSTITUICAO=B.IDINSTITUICAO) " & _
    "JOIN COOPCONS.MODALIDADEPRODUTOINSTITUICAO AS C ON (C.IDPRODUTO=A.IDPRODUTO " & _
    "AND A.IDMODALIDADEPRODUTO=C.IDMODALIDADEPRODUTO " & _
    "AND A.IDINSTITUICAO=C.IDINSTITUICAO) " & _
    "JOIN COOPCONS.CONTRATOMUTUO AS D ON (D.IDPRODUTO=A.IDPRODUTO " & _
    "AND D.IDMODALIDADEPRODUTO=A.IDMODALIDADEPRODUTO " & _
    "AND D.IDCLIENTE=A.IDCLIENTE " & _
    "AND D.NUMCONTRATOMUTUO=A.NUMCONTRATOCREDITO " & _
    "AND D.IDINSTITUICAO=A.IDINSTITUICAO) " & _
    "JOIN COOPCONS.FINALIDADEOPCRED AS E ON (E.IDPRODUTO=D.IDPRODUTO " & _
    "AND E.IDFINALIDADEOPCRED=D.IDFINALIDADEOPCRED " & _
    "AND E.IDINSTITUICAO=D.IDINSTITUICAO) "

    strSql = strSql & "WHERE A.IDINSTITUICAO IN (22,24,28,29,30,31,264) " & _
    "AND A.IDPRODUTO=7 " & _
    "AND A.DATAMOVENTRADA BETWEEN '" & dtInicial & "' AND '" & dtFinal & "'" & _
    "AND A.IDNIVELRISCOINICIAL<>'HH' " & _
    "AND C.DESCMODALIDADEPRODUTO<>'RENEGOCIAÇÃO' " & _
    "AND E.DESCFINALIDADEOPCRED NOT LIKE ('CESSAO%') " & _
    "AND E.DESCFINALIDADEOPCRED NOT LIKE ('CESSÃO%') " & _
    "Group BY " & _
    "B.IDUNIDADEINST, " & _
    "A.IDPRODUTO, " & _
    "CO.NUMCOOPERATIVA"

    Set sql = conn.Execute(strSql)


    sql.MoveFirst

    Do While Not sql.EOF


    DoCmd.RunSQL ("INSERT INTO TB_LIBERACOES (COOP, PAC, PRODUTO, QTDE, VALOR) VALUES (" & sql!COOP & "," & sql!PAC & "," & sql!IDPRODUTO & "," & sql!QTDE & ",'" & sql!valor & "')")

    sql.MoveNext
    Loop


    conn.Close
    Set sql = Nothing
    Set conn = Nothing


    End Function

    [/color]
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]SQL no VBA Empty Re: [Resolvido]SQL no VBA

    Mensagem  criquio Sex 13 maio 2011, 2:53 pm

    Acontece do erro ocorrer mesmo tendo registros no RecordSet ou isso ocorre em casos de RecordSet vazio?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    elemke
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 25/05/2010

    [Resolvido]SQL no VBA Empty Re: [Resolvido]SQL no VBA

    Mensagem  elemke Sex 13 maio 2011, 3:07 pm

    Criquio,

    Pesquisando na internet, percebi que o problema está relacionado ao CommandTimeout, que por padrão é 30 segundos. Alterei aqui para 120 segundos (CommandTimeout = 120) e parece ter resolvido, porém, gostaria de entender melhor esse comando, o mesmo se refere ao tempo para conclusão da consulta sql??
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]SQL no VBA Empty Re: [Resolvido]SQL no VBA

    Mensagem  vieirasoft Sex 13 maio 2011, 3:13 pm

    é o tempo limite para o sistema esperar uma resposta
    avatar
    elemke
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 25/05/2010

    [Resolvido]SQL no VBA Empty Re: [Resolvido]SQL no VBA

    Mensagem  elemke Sex 13 maio 2011, 3:15 pm

    Se eu colocar um tempo bem alto isso afetará o tempo de execução da função ou não?
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]SQL no VBA Empty Re: [Resolvido]SQL no VBA

    Mensagem  vieirasoft Sex 13 maio 2011, 3:15 pm

    abra um módulo qualquer no seu programa, chame a ajuda do VB e digite Timeout. Vale a pena.
    avatar
    elemke
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 25/05/2010

    [Resolvido]SQL no VBA Empty Re: [Resolvido]SQL no VBA

    Mensagem  elemke Sex 13 maio 2011, 3:24 pm

    Ok... Valeu.

    Conteúdo patrocinado


    [Resolvido]SQL no VBA Empty Re: [Resolvido]SQL no VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Sáb 23 Nov 2024, 11:06 am