valores lista ejemplos consulta sql-server-2008 ms-access stored-procedures access-vba pass-through

sql-server-2008 - ejemplos - lista de valores sql



Devuelve los valores de una consulta de paso a través de VBA (2)

Tengo un código VBA para ejecutar una consulta en SQL-Server 2008. Funciona bien y muestra la tabla que necesito. El código que hace esto está aquí:

Set db = CurrentDb Set qdf = db.QueryDefs("MyStoredProcedure") qdf.SQL = "exec [WCNS_Ops].[dbo].MyStoredProcedure [plus a bunch of parameters]" DoCmd.OpenQuery "MyStoredProcedure"

que muestra esta tabla:

Mi pregunta es esta: ¿cómo devuelvo estos valores mediante programación al código VBA sin mostrar la tabla?


El siguiente código no ha sido probado, pero debe hacerlo apuntar en la dirección correcta:

Set db = CurrentDb Set qdf = db.QueryDefs("MyStoredProcedure") qdf.ReturnsRecords = True qdf.SQL = "exec [WCNS_Ops].[dbo].MyStoredProcedure [plus a bunch of parameters]" With qdf.OpenRecordset(dbOpenSnapshot) ''could also be dbOpenDynaset, etc. '' Do Until .EOF Debug.Print !firstid Debug.Print !lastid .MoveNext Loop End With


Todo lo que necesita hacer es ejecutar la consulta y establecer su salida a un conjunto de registros. De la parte superior de mi cabeza algo como esto

Dim dbCon as new ADODB.Connection Dim rst as new ADODB.Recordset Dim cmd as new ADODB.Command dbCon.ConnectionString=”Your Connection String” with cmd .comandtype=adCmdStoredProc .commandtext=”Your SP name” .Parameters.Append .CreateParameter("@Pram1", adVarChar, adParamInput, 50, “WhatEver”) .ActiveConnection=dbCon .NamedParameters = True Set rst = .Execute end with with rst if .EOF=false then myVar=!Column1 end if end with rst.close dbcon.close set cmd=nothing