Web Toolbar by Wibiya [Reporting Services] Configurando el DataSource para Access - Fran Diaz

Fran Diaz

Reporting Services, .NET, tecnologías Microsoft y otros

Email Notifications

Recent Posts

Tags

News

Community

Comunidades

  • OnobaNET
  • Grupo de usua
  • INETA
  • Culminis
  • Zona de Grupos de Usuarios Online
  • Foro MSDN Español: Colaborador

Webs Amigas

Archives

[Reporting Services] Configurando el DataSource para Access

Buenas :), en alguna ocasión, me han preguntado como trabajar con una base de datos Access o como conectarse a esta. Pues bien, la forma de diseñar para informes de servidor es la misma que para otra base de datos. Si es verdad, que la forma de conectarse no, aunque no es muy diferente, os la explico a continuación de forma detallada :D.

Primero, configuramos nuestro DataSource, que es la fuente de acceso a nuestro origen de datos. Para ello, en la pestaña data, nos vamos donde pone dataset y desplegamos el combo que aparece al lado. A continuación, pulsamos nuevo New DataSet como está en la siguiente imagen:

Data

Al pulsar, no sale una ventana para configurar nuestro DataSource. En este pondremos un nombre y en Type (1), elegiremos OLE DB. Luego pulsamos edit (2) para configurar la siguiente pantalla.

Data Source

En esta pantalla, tenemos las siguientes opciones:

  • DataSource: Esta es la pestaña edit, de la pantalla anterior. Si pulsamos change (o cambiar si estáis con la interfaz en español), podremos volver a cambiarla.
  • OLE DB Provider (1): Este es el proveedor de datos que vamos a utilizar. Este nombre sale así porque en la pestaña edit de la pantalla anterior así lo elegimos. Del desplegable (o combo), elegiremos el que más se adapte a nuestras versión de office. En nuestro caso será Microsoft Jet 4.0 OLE DB Provider.
  • Enter a Server or file name (2): Aquí le diremos la ruta donde se encuentra nuestra base de datos.
  • Log on to the Server. Aquí solo le diremos que no tiene contraseña (Blank password (3)), asi es que activaremos esa pestaña.
    En caso de que nuestra base de datos tuviese usuario y password, tan sólo tendríamos que rellenar los dos textbox que viene para ello (User Name y Password)
  • Test Connection (4). Por último, probamos que la conexión está correcta y ya podemos pulsar ok.

Connection Properties

Bueno, pues la primera parte de conexión a la base de datos, ya está realizada. Después de hacer esto, la pestaña de datos del informe, ya tendrá el dataset en su combo, con lo que podremos ver todas las tablitas que tiene nuestra base de datos.

Barra Menú 1

Si pulsamos cuarto icono después de esta lista (el que está en rojo en la imagen), podremos ver como esta pequeña barra cambia por esta otra:

Barra Menú 2

Si pulsamos el último icono (el que está en un cuadro rojo), nos saldrá una ventan con todas nuestras tablas y vistas.

clip_image012[1]

Ahora, tan sólo tenemos que agregar las que nosotros tengamos y queramos utilizar.

Por último, una vez tenemos las tablas agregadas, y creadas las consultas necesarias que nos devolverán nuestros datos, pulsamos el botón actualizar (tercer botón después del combo, donde aparece el nombre de nuestro DataSet).
Al hacer esto, se actualizará la ventana DataSet (en la siguiente imagen, la de la izquierda), donde saldrá nuestro dataset y los campos de la consulta que hayamos creado.

Y ahora sólo nos queda diseñar nuestro informe (pestaña layout), pero eso ya es otro tema (más info aquí).

Espero que os sirva.

Un Saludo

Posted: 27/10/2008 23:15 por Fran Díaz | con 9 comment(s) |
Comparte este post:

Comentarios

ARLOAN ha opinado:

DESPUES DE QUE SE HA DEFINIDO EL DATASOURCE PUEDE SER FILTRADO MEDIANTE PROGRAMACION EN UNA FUNCION LANZADA DESDE FUERA DEL FORMULARIO DONDE SE ENCUENTRA REPORTVIEWER QUIEN CONSUMIRA LA INFORMACION AL SER LANZADO EN EL EVENTO LOAD, DE LA SIGUIENTE MANERA:

*VISUAL BASIC 2008

   Function IniciarForma() As Integer 'Devuelve el numero de registros de: dsForm.tables(0)

       IniciarForma = 0

       strSQL = "SELECT"

       Select Case strTipoDelInforme.ToUpper

           Case "INCIDENCIAS"

               strSQL += " INC.idIncidencias,"

               strSQL += " INC.idEmpresa,"

               strSQL += " INC.idPeriodo,"

               strSQL += " INC.TipoPeriodo,"

               strSQL += " INC.Ejercicio,"

               strSQL += " INC.Periodo,"

               strSQL += " INC.Incidencia,"

               strSQL += " INC.Descripción,"

               strSQL += " INC.FechaHora,"

               strSQL += " EMP.NombreLargo,"

               strSQL += " ERE.NombreEmpresa,"

               strSQL += " HOR.DescripcionHorario,"

               strSQL += " EMP.Departamento,"

               strSQL += " EMP.Puesto,"

               strSQL += " EMP.TipoEmpleado,"

               strSQL += " EMP.Status"

               strSQL += " FROM"

               strSQL += " tbIncidencias AS INC,"

               strSQL += " tbEmpresas AS ERE, "

               strSQL += " tbHorarios AS HOR,"

               strSQL += " tbEmpleados AS EMP"

               strSQL += " WHERE"

               strSQL += " ERE.idEmpresa = INC.idEmpresa"

               strSQL += " AND"

               strSQL += " INC.idEmpleado = EMP.idEmpleado"

               strSQL += " AND"

               strSQL += " HOR.idHorario = EMP.idHorario"

               'NOMBRE DEL INFORME

               Select Case strNombreDelInforme.ToUpper

                   Case "INCIDENCIAS1"

                       strSQL += " AND"

                       strSQL += " Aplicado = 'SI'"

                       strNombreArchivoInforme = "rsIncidencias1.rdlc"

                   Case "INCIDENCIAS2"

                       strNombreArchivoInforme = "rsIncidencias2.rdlc"

               End Select

               'EMPLEADOS

               If strEmpleados.Length > 0 Then

                   strSQL += strEmpleados

               End If

               'FILTRO POR FECHAS O POR PERIODOS

               If strTipoPeriodo.Length > 0 Then

                   'FILTRO POR PERIODOS

                   strSQL += " AND"

                   strSQL += " INC.TipoPeriodo = '" & strTipoPeriodo & "'"

                   strSQL += " AND"

                   strSQL += " idPeriodo >= " & intIdPeriodoInicial.ToString

                   strSQL += " AND"

                   strSQL += " idPeriodo <= " & intIdPeriodoFinal.ToString

               End If

               If strFechaInicial.Length > 0 Then

                   'FILTRO POR FECHAS

                   strSQL += " AND"

                   strSQL += " FechaHora"

                   strSQL += " BETWEEN"

                   strSQL += " CONVERT(CHAR(10), CONVERT(DATETIME, '" & strFechaInicial & " 00:00:00 AM'), 112)"

                   strSQL += " AND"

                   strSQL += " CONVERT(CHAR(10), CONVERT(DATETIME, '" & strFechaFinal & " 00:00:00 AM'), 112)"

               End If

       End Select

       dsForm = Obtener_dsDeSQL(strSQL, , , , gl.NombreSistema, gl.BaseDatos)

       IniciarForma = dsForm.Tables(0).Rows.Count

       If IniciarForma > 0 Then 'Si hay registros por mostrar

           Select Case strTipoDelInforme.ToUpper

               Case "INCIDENCIAS"

                   rvReportes.LocalReport.ReportEmbeddedResource = "TempoControl." & strNombreArchivoInforme

                   tbIncidenciasBindingSource.DataSource = Nothing

                   tbIncidenciasBindingSource.DataSource = dsForm

                   tbIncidenciasBindingSource.DataMember = dsForm.Tables(0).TableName.ToString

                   Me.tbIncidenciasTableAdapter.Fill(Me.dsIncidencias.tbIncidencias)

           End Select

       End If

   End Function

   Private Sub FrmReportes_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown

       'Lanzar el reporte

       rvReportes.RefreshReport()

   End Sub

# October 30, 2008 6:32 AM

Fran Díaz ha opinado:

Claro, sólo tienes que agregarle un parámetro en la sección de data y darle tú la consulta en tiempo de ejecuión ;).

Un Saludo

# October 30, 2008 8:06 AM

Cesar Sky ha opinado:

Fran en tu experiencia, haber si te ha sucedido algo asi, mis informes los muestro con un ReportViewer conectandolo a una BD SQl Server, pero de manera local, he evitado que te pida la contrasena un inicio de sesion y demas, pero cuando ejecutamos en una red(acceso remoto), te vuelve a hacer el mismo cuadro auqnue no pone el nombre de la DB y aunque le des el pass y user correcto no se conecta, habra una forma de evitar esto?

# October 31, 2008 8:45 PM

Miguel ha opinado:

Bueno soy nuevo en esto y posiblemente mi pregunta sea algo muy muy simple.

La cosa es que no me aparece la pestaña Data y ya la busque por todos lados y no la encuentro

# March 30, 2009 8:30 PM

Fran Díaz ha opinado:

Hola Miguel,

Escribe a través del contacta de este blog (el mío :)) y te contesto.

Si no, seguro se me olvida el comentario cuando lo vaya a leer no recuerdo quién escribió :$

Un Saludo

# March 31, 2009 12:07 AM

Jose Antonio ha opinado:

Hola Fran, cuando uno lo hacer pero utilizando el control Report View y el archivo .rdlc, que no es una interfaz igual a la que muestras, 1)pero supongo que todo se hace igual con DataSet?, 2) Cuando uno crea una consulta SQL para obtener los datos de access pero la implementa desde Visual Studio, se hace con SQL de SQL Server o SQL de Access?

Gracias,

Saludos

Jose Antonio::..

# April 15, 2009 4:34 PM

Fran Díaz ha opinado:

Hola Antonio,

Escribeme al contacta y lo vemos ;)

Un Saludo

# April 15, 2009 11:10 PM

Ramon ha opinado:

El Dataset se configura bien pero ahora como se le puede pasar algun parametro a la consulta? O solo pueden ser Selects estaticas?

# May 30, 2011 8:32 AM

Fran Díaz ha opinado:

Hola Ramón,

Si añades a tu consulta algo así:

Select TusCampos From TuTabla WHERE TuCampo1 = @Valor

Reporting entenderá que @Valor es un parámetro y te lo tratará como tal.

Un Saludo!

# June 1, 2011 11:34 AM