none
Passar valores para variaveis Stored Procedure RRS feed

  • Pergunta


  • Tenho um formulario access ligado com banco sql server,
    e tenho um botão de comando que ao clicar abre uma Stored.
    Nesta stored possuo 2 variaveis, gostaria de ao clicar
    no botão, puxe o valor de dois campos do formulario para as variaveis para
    assim abrir a consulta, já tentei de varias formas, mas não deu certo.
    Gostaria que alguem me ajuda-se
    NOME DA STORED: Formulario PRD_PRE_PEDIDO_EXPORTA_PROFORMA
    NOME DAS VARIAVEIS: @PCodEmpresa e @PPrePedidoCodigo as duas são tipo INTEGER
    NOME DOS CAMPOS NO FORMULARIO: Me.CodEmpresa e Me.Prepedidocodigo

    Código que fiz

    Private Sub BtnExportaProforma_Click()
    Dim cnn As ADODB.Connection
    Dim cmd As New ADODB.Command
    Dim prm As ADODB.Parameter

    Set cnn = CurrentProject.Connection
    Set cmd.ActiveConnection = cnn
    cmd.CommandText = "dbo.[Formulario PRD_PRE_PEDIDO_EXPORTA_PROFORMA]"
    cmd.CommandType = adCmdStoredProc
    Set prm = cmd.CreateParameter("PCodEmpresa", adInteger, adParamInput, , Me.CodEmpresa)
    cmd.Parameters.Append prm
    Set prm = cmd.CreateParameter("PPrePedidoCodigo", adInteger, adParamInput, , Me.PrePedidoCodigo)
    cmd.Parameters.Append prm
    cmd.Execute
    End Sub

    Por favor me corrigam se estiver totalmente errado, hehe
    quarta-feira, 14 de abril de 2010 10:29

Respostas

Todas as Respostas

  • Rodrigo,

        Aparentemente está tudo CERTO!

        Mas faltou alguma coisa. Não conheço desenvolvimento com access, mas acredito que você executou a proc e ela trouxe o resultado. Mas não vi nenhum trecho de seu código que EXIBE o resultado.

        Talvez seja isso...

    sábado, 17 de julho de 2010 15:43
  • Tens de usar parametro. Tens de dizer onde buscar o valor para fazer a pesquiza. aqui vai um exemplo, esta em dot.net, podes mudar como queiras.

    SqlConnection CNN = new SqlConnection(CSharp_Teste.Properties.Settings.Default.CNNSetting); 
     
    
    SqlCommand command = new SqlCommand("GetProducts", CNN); 
     
    command.CommandType = CommandType.StoredProcedure; 
     
    SqlParameter pam = new SqlParameter("@ID", this.textBox1.Text.ToString()); 
     
    command.Parameters.Add(pam);
    
    
     
    
    
    
    
    
     
    
    sábado, 17 de julho de 2010 23:06
    Moderador
  • Malange,

        Pelo que andei consultando na Web, o Rodrigo está usando uma procedure no Access. Pelo que ví o esquema é meio diferente. Com SQL fica baba mesmo....

        Encontrei um site com um exemplo de código "idêntico" ao dele. Porém no exemplo do Rodrigo, ele está obtendo o resultado, mas não exibindo em nenhuma lugar...

     

    terça-feira, 20 de julho de 2010 20:02
  • Obrigado.

    Pelo que eu saiba o Access nao aceita procedure. Como foi que ele criou este procedure no access?

    Diz ele para ver este exemplo: http://devcity.net/Articles/18/1/.aspx

     


    Just Be Humble Malange!
    terça-feira, 20 de julho de 2010 22:39
    Moderador
  • Companheiro (chamar assim é complicado), Malange.

     

        As novas versões aceitam. No link que você colocou tá escrito mesmo:

        In the more recent releases of Microsoft Access, great effort has gone into making this product a full-featured relational database system. Stored procedures, a functionality usually associated with enterprise database systems such as SQL Server, can now be found in Access. Stored procedures in Access have been available since Access 2000 and are native to the Jet 4 Database Engine. If you're accustomed to using stored procedures in SQL Server, then you'll be right at home with how they're used in Access. However there are some limitations to keep in mind. I'll discuss those later on.

        Eu nunca usei, mas já tinha lido sobre isso....

    Rodrigo,

        Vê se o artigo indicado pelo Malange não te ajuda.

    quarta-feira, 21 de julho de 2010 20:47