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

    Modo correto de executar Store Procedure Sql Server com VBA

    avatar
    Motar
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Modo correto de executar Store Procedure Sql Server com VBA Empty Modo correto de executar Store Procedure Sql Server com VBA

    Mensagem  Motar 20/7/2014, 12:57

    Utilizo das duas formas abaixo e ambas funcionam, mas qual a diferença e qual a mais correta?

    Opção1:
    Call ConServer
    con.Execute "EXEC ImpExcel12", adExecuteNoRecords
    con.Close

    Opção2:
    Call ConServer
    con.Execute "EXEC ImpExcel12", , adExecuteNoRecords
    con.Close
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Modo correto de executar Store Procedure Sql Server com VBA Empty Re: Modo correto de executar Store Procedure Sql Server com VBA

    Mensagem  Marco Messa 24/7/2014, 20:47

    O Método execute tem os seguintes parâmetros:

    connection.Execute CommandText, RecordsAffected, Options

    Porquê funciona?
    Porque os 2 últimos parâmetros solicitam um valor númerico do tipo Long, como o enumerador que você utilizou retorna um número, então ele pode ser usado tanto no primeiro como no último parâmetro.

    O valor de adExecuteNoRecords é 128. Na primeira situação o valor 128 foi passado pro parâmetro RecordsAffected, e na segunda situação o valor foi passado pro parâmetro Options.
    No VBScript, quando vc usa uma vírgula e empaço em branco no lugar do parâmetro, você está dizendo que aquele parâmetro em branco você não vai informar (Call Método(Parametro1, , Parametro3).
    Obs.: Só funciona com parâmetros opcionais.

    O jeito certo depende do que você precisa, veja os valores que podem ser passados pro parâmetro Options aqui:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms675946(v=vs.85).aspx
    E aqui:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms676517(v=vs.85).aspx

    Esses valores podem ser combinados conforme a documentação do método execute:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms675023(v=vs.85).aspx


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    Motar
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Modo correto de executar Store Procedure Sql Server com VBA Empty Re: Modo correto de executar Store Procedure Sql Server com VBA

    Mensagem  Motar 25/7/2014, 18:59

    Obrigado Marco pela explicação, mas como os artigos estão em inglês fiquei com algumas duvidas.
    Quais os parametros/configuração que você aconselha para as seguintes situações:
    - Quando o store procedure retorna registos
    - Quando o store procedure não retorna registos sendo para aplicar a função delete ou update
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Modo correto de executar Store Procedure Sql Server com VBA Empty Re: Modo correto de executar Store Procedure Sql Server com VBA

    Mensagem  Marco Messa 25/7/2014, 19:14

    Retornando registros apenas diga que é uma SP:
    con.Execute "EXEC ImpExcel12", , adCmdStoredProc

    Apenas insert, update e delete:
    con.Execute "EXEC ImpExcel12", , adCmdStoredProc + adExecuteNoRecords


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    Motar
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Modo correto de executar Store Procedure Sql Server com VBA Empty Re: Modo correto de executar Store Procedure Sql Server com VBA

    Mensagem  Motar 25/7/2014, 19:27

    Marco
    Aplicando dessa forma dá este erro:
    run-time error '-2147217900'
    erro de sintaxe ou violação de acesso

    Porque será que assim dá erro?
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Modo correto de executar Store Procedure Sql Server com VBA Empty Re: Modo correto de executar Store Procedure Sql Server com VBA

    Mensagem  Marco Messa 25/7/2014, 19:43

    Você usou esse?

    con.Execute "EXEC ImpExcel12", , adCmdStoredProc


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    Motar
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Modo correto de executar Store Procedure Sql Server com VBA Empty Re: Modo correto de executar Store Procedure Sql Server com VBA

    Mensagem  Motar 25/7/2014, 19:46

    Sim, este também dá erro

    Conteúdo patrocinado


    Modo correto de executar Store Procedure Sql Server com VBA Empty Re: Modo correto de executar Store Procedure Sql Server com VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 07:07