jwcolby
jwcolby at colbyconsulting.com
Thu Jan 22 14:36:36 CST 2009
Thanks James.
John W. Colby
www.ColbyConsulting.com
James Barash wrote:
> John:
> Here is a procedure I use in Access to call a stored procedure in SQL with
> parameters. It takes two integer parameters. You will need to add a
> Reference to the Microsoft ActiveX Data Objects library. It should give you
> everything you need to start.
> Hope it helps.
>
> James Barash
>
> Public Sub SetOrderStatus(ID As Long, Status As Integer)
> Dim conn As ADODB.Connection
> Dim cmd As ADODB.command
>
> On Error GoTo HandleErr
>
> Set conn = New ADODB.Connection
> conn.ConnectionString =
> "PROVIDER=MSDASQL;uid=<UserID>;pwd=<Password>;driver={SQL
> Server};server=<ServerName>;database=<DatabaseName>" ' substitute proper
> credentials here
> conn.CursorLocation = adUseClient
> conn.Open
> If conn.State <> adStateOpen Then
> msgbox "Error opening Connection"
> set conn = Nothing
> Exit Sub
> End if
>
>
> Set cmd = New ADODB.command
> With cmd
> Set .ActiveConnection = conn
> .CommandType = adCmdStoredProc
> .CommandText = "sp_SetOrderStatus" ' name of stored procedure
> .Parameters.Append cmd.CreateParameter("ID", adInteger, adParamInput, ,
> ID) 'parameters must be defined in order
> .Parameters.Append cmd.CreateParameter("Status", adInteger,
> adParamInput, , Status)
> .Execute
> End With
> Set cmd = Nothing
> conn.Close
> Set conn = Nothing
>
> Exit Sub
>
> HandleErr:
> Select Case err.Number
> Case Else
> MsgBox "Error " & err.Number & ": " & err.Description, vbCritical,
> "basCustom.SetOrderStatus"
> End Select
> End Sub
>
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
> Sent: Thursday, January 22, 2009 1:42 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Stored procedures from Access
>
> Martin,
>
> Thanks for the links. In fact I found the first, and it
> will no doubt be useful to me someday however...
>
> I have pretty complex (to me at least) set of stored
> procedures created out in SQL Server. For example I have a
> stored procedure that does a BCP out to export data from a
> table for processing by a third party called Accuzip
> (address validation). The data in the table is name /
> address information that has to be exported to files in a
> specific directory, on a specific server (actually a virtual
> machine here in my office). The virtual machine is running
> Accuzip, which is is watching that folder. As I place files
> into the watched directory, Accuzip starts processing them,
> and placing processed files into an "output" directory. I
> then have to get the files back into SQL Server. I have a
> matching set of stored procedures that BCP the data back in
> to a table in SQL Server.
>
> So what I am trying to accomplish is simply tap SQL Server
> on the shoulder and say "hey, execute SPXXX in database
> YYYY, with these parameters".
>
> This is not about getting a result set to bind to a form or
> control, this is about telling SQL Server to do some
> specific stored procedure, to perform some process.
>
> Once Accuzip processes the input files and creates the
> output files, I then need to tap SQL Server on the shoulder
> and say "hey, execute this Stored Procedure in database YYY
> with these parameters. The end results will be to import
> the files back into SQL Server.
>
> I have all of the stored procedures created, and have used
> them for quite some time, however it still takes significant
> manual labor to manually tap SQL Server on the shoulder.
>
> I want to tie the pieces together from Access.
>
> This is a very well defined process, but the database name,
> stored procedure names and table names can change from run
> to run.
>
> I kind of envisioned something like Charlotte's function
> that would do exactly this... tap SQL on the shoulder and
> tell it to do something, passing in parameters as required.
> Unless it is somehow required in order to accomplish this
> task, I have no need for pass through queries in Access, no
> need for linked tables to SQL Server, no need for loading
> data into forms or combos etc.
>
> I might someday, but not for this specific task.
>
> John W. Colby
> www.ColbyConsulting.com
>
>
>