Usuário com melhor resposta
Passar valores para variaveis Stored Procedure

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
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...
- Marcado como Resposta Levi DomingosModerator sexta-feira, 12 de novembro de 2010 13:53
-
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!- Marcado como Resposta Levi DomingosModerator sexta-feira, 12 de novembro de 2010 13:52
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...
- Marcado como Resposta Levi DomingosModerator sexta-feira, 12 de novembro de 2010 13:53
-
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);
-
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...
-
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!- Marcado como Resposta Levi DomingosModerator sexta-feira, 12 de novembro de 2010 13:52
-
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.