INESEM Business School
Contactar por whatsappWhatsapp

Contacta con nosotros

Teléfono de INESEM 958 050 205
Imagen genérica del Canal Informática y TICS
Te ayudamos a elegir tu formación

Ejecutar Procedimientos Almacenados de SQL Server desde Microsoft Access

Para ejecutar procedimientos almacenados escritos en SQL Server desde Microsoft Access, solo tenemos que recurrir a ADODB.

A través de esta librería, disponemos de varios objetos que nos ofrecerán a su vez varios modos de ejecutar:

  • Directamente a través del objeto Connection. Este es el método más sencillo y es adecuado para procedimientos que no devuelvan información, aunque si se le puede enviar información en la llamada al procedimiento.
  • A través de un objeto Command. Por este método sí podemos asociar parámetros al procedimiento que nos permiten tanto enviar como recibir informacion (input, output, input/output).

Veamos unos ejemplos:

A través del objeto Connetion:

Dim cs As String

cs = "Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=pepe;Initial Catalog=basededatos;Data Source=192.168.3.44"

Dim objConn As New ADODB.Connection

objConn.Open cs

objConn.Execute "exec actualizar_empresa '" + Trim(Me.CIF_NIF.Value) + "','Nombre_Base_Datos'"

A través del objeto command:

Dim cs As String
cs = "Provider=SQLOLEDB.1;Password=1234; Persist Security Info=True; User ID=pepe;Initial Catalog=basededatos;Data Source=192.168.3.44"

Dim objConn As New ADODB.Connection
objConn.Open cs
Dim objRs As New ADODB.Recordset
Dim oc As New ADODB.Command
Set oc.ActiveConnection = objConn
'El procedimiento almacenado en SQL Server es actualizar_empresa
oc.CommandText = "actualizar_empresa"
oc.CommandType = adCmdStoredProc
'Podemos enviar parámentros de entrada. Ej enviamos datos para un filtro.
Dim op As ADODB.Parameter
Set op = oc.CreateParameter("CIF_EMPRESA", adVarChar,adParamInput, 9)
oc.parameters.Append op
op.Value = Trim(cif)
Dim op1 As ADODB.Parameter
Set op1 = oc.CreateParameter("NOMBRE", adVarChar, adParamInput, 50)
oc.parameters.Append op1
op1.Value = "PEPE SANCHEZ"
oc.Execute

Por supuesto este código irá escrito en algún evento del formulario de Access desde el que deseemos lanzar el procedimiento.

Por último reseñar que debemos de tener referenciada en Access la librería ADO que deseamos usar (Herramientas – referencias y selecciónar la versión de Microsoft Activex Data Objects… que deseamos usar, con la 2.1 library funciona).

Estos ejemplos están probados para Access 2007 contra un procedimiento almacenado programado en SQL Server 2005.

Categorizado en: Informática y TICS

Solicita información de nuestros cursos y masters




    Información básica sobre Protección de Datos. Haz clic aquí

    Acepto el tratamiento de mis datos con la finalidad prevista en la información básica

    ¿Quieres más artículos de Informática y TICS ?

    Selecciona la categoría que más te interese

      Comentarios

    1. Ariel Furmanski dice:

      Buenas tardes .podrán decirme si puedo enlazar un procedimiento almacenado en SQL que devuelve registros a un recordset de un formulario de Access ?He logrado con una tabla una consulta. Pero no con un SPGracias! !!

    2. brandon diaz dice:

      buenas tardes muy interasante su post pero tengo un problema al ejecutar el  Private Sub Comando0_Click()Dim cs As String    cs = «Provider=SQLOLEDB.1;Password=Bf0ment0;Persist Security Info=True;User ID=sa;Initial Catalog=BASE_RIESGOS;Data Source=srvsqlserver»    Dim objConn As New ADODB.Connection      objConn.Open cs        objConn.Execute «exec patrimonio » + «8» + «,» + «2014»  ////** el 8  y 2014 son parametros que tiene mi  store procedure que son numero de mes y y añoEnd Subel problema es que me tira un mensaje de «EXPIRO TIEMPO DE ESPERA DE LA CONSULTA »  me podria ayudar con este problema ya que  e buscado y no e podido solucionarloesperare muy agradecido su  respuesta

    3. Guillermo Velasco dice:

      Buenos días quiero hacerle la siguiente pregunta. Pues llevo varios días investigando por internet y no lo encuentro y lo más aproximado lo explica usted.
      Tengo un procedimiento almacenado en un servidor sql, por ejemplo «BuscarDni», que tiene un parametro de entrada que es el DNI a buscar, y este procedimiento almacenado nos puede devolver un registro, o muchos registros o nada y esto meterlo en un recordset
      ¿Esto se puede hacer en Access.?

      Un saludo y muchas gracias.

    Ver más comentarios

    ¡Descubre los secretos de inesem en nuestro canal de Telegram!

    Artículos más leídos

    Descubre Territorio Inesem

    Disfruta del mejor contenido con los últimos podcast y webinars

    ES EL MOMENTO

    Comienza tu futuro de la mano de INESEM Business School con el programa de

    EXECUTIVE MASTERS

    Únete al selecto grupo de alumnos que han conseguido alcanzar una carrera de éxito en las profesiones más demandadas.

    ÚNETE AL EQUIPO DE REDACCIÓN

    Comparte tu conocimiento con otros profesionales

    Saber más