Hola
a todos, en este blog les explicare como hacer el proyecto de Encuesta, lo
primero después de abrir Visual Studio damos clic en Nuevo Proyecto y damos clic en Windows/aplicación de Windows form y
le ponemos como nombre Encuesta.
Seguidamente
damos clic derecho al proyecto Encuesta y
damos clic en agregar/Nueva carpeta y en esa carpeta es donde vamos a guardar
todos nuestros formularios.
Le
cambiamos las propiedades:
Name:
frmEncuesta
Text:
Formulario de Encuesta
Damos
clic derecho en Encuesta/Agregar/Control
de Usuario
Nombre:
Entorno
Clic
en el menú ver/Cuadro de Herramientas
Clic
derecho en Datos/Elegir Elementos
En
filtro escribimos Oledb y seleccionamos OledbConnection
y OledbDataAdapter
Después
de eso añadimos al entorno OledbConnection
y cambiamos la propiedad name y
escribimos oConexion.
Después
nos vamos a Datos/Agregar nuevo origen de Datos
Clic
en Siguiente como lo muestra la imagen
Después
de darle siguiente, agregamos una nueva conexión y como ven en la parte de
arriba le damos en cambiar damos clic donde dice Archivo de base de datos de Microsoft Access... y luego damos clic
en examinar y buscamos la base de
datos de Access. Después damos clic en Siguiente
y Seleccionamos Tablas y
finalizamos la conexión de orígenes de datos. Ojo, la base de datos guardémosla
en una carpeta la cual le podemos llamar Encuesta_2012.
Ahora
damos clic en DataAdapter y lo añadimos al Entorno de Datos
Seleccionamos
la misma base de datos de Access/Siguiente/”No”/Siguiente
Damos
clic en el generador de consultas y agregamos la tabla Encuesta.
Clic
en el generador de consultas/Todas las columnas. Aceptar y Finalizar.
Cambiamos
la propiedad text al OledbDataAdapter y
le ponemos daEncuesta
Nos
vamos a las propiedades, damos clic en DeleteCommand
/CommandText
Y
eliminamos todo lo que aparece en azul, solo dejamos IdPregunta porque es el
único campo que no se puede cambiar.
Lo
mismo hacemos en UpdateCommand/CommandText
y dejamos esto:
UPDATE Encuesta
SET Pregunta1 = ?, Pregunta2 = ?,
Pregunta3 = ?, Pregunta4 = ?, Pregunta5 = ?, Pregunta6 = ?, Pregunta7 = ?,
Pregunta8 = ?, Pregunta9 = ?, Pregunta10 = ?
WHERE (IdPregunta = ?)
Aceptamos
los cambios.
Después
de jalarlos cambiamos el Label de las preguntas y le ponemos las preguntas
especificas y en cada Combobox le
damos editar elementos y ponemos Si,No. Nos quedara algo así:
Listo, ya tenemos el diseño de nuestro Formulario
Encuesta. Ahora nos vamos al Entorno de
datos y apretamos F7 y escribimos el sig. código
El
nuevo entorno Datos nos dice que va estar asociada a toda la clase.
Después
verificamos la descripción del estado de la conexión y la abrimos.
En
la tercera parte creamos la función ObtenerDatos() la cual especifica que será
especificado con tipo de datos DataSet.
Creamos
y poblamos del Dataset llamando al data Adapter, daEncuesta y llenándolo con la
tabla, cerramos la conexión.
Despues damos doble clic en el formulario, para llegar al
evento load y agregamos el sig cod: EncuestaDataSet.Merge(Datos.ObtenerDatos,
False)
Este código nos indica que al
ejecutar el formulario nos traiga los datos.
Nos vamos al formulario y le
damos clic en EncuestaBindingNavigator clic derecho/propiedades y cambiamos dos
de ellas.
AddNewItem: Ponemos “Ninguno”
DeleteItem: Igual, “Ninguno”
Creamos un objeto llamado Set Error, el cual le cambiamos la
propiedad text y le ponemos Err y en
el evento load del formulario copiamos el código siguiente:
Este
código nos especifica que si los campos están vacios tirará un mensaje al darle
clic en el objeto Err y nos dirá que contestemos la pregunta a la cual no
hallamos contestado.
Seguidamente nos vamos al botón Salvar, en la imagen del diskette y
escribimos este código: If validar() = True Then
EncuestaBindingSource.EndEdit()
Datos.salvarencuesta(DsTablas)
DsTablas.AcceptChanges()
MsgBox("Los datos se
han almacenado correctamente", MsgBoxStyle.Information, "salvar")
End If
Nos indica que si validar es igual
a verdadero, entonces se van a realizar los cambios correspondientes, osea que
guardará o modificará ya que aceptará los cambios.
Nos vamos al botón Eliminar la cual aparece un signo como
una X y escribimos el sig. Código:
If MsgBox("Desea eliminar este registro", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Eliminar") = MsgBoxResult.Yes Then
EncuestaBindingSource.EndEdit()
EncuestaBindingSource.RemoveCurrent()
Datos.salvarEncuesta(EncuestaDataSet)
EncuestaDataSet.AcceptChanges()
MsgBox("El registro se
ha eliminado de manera permanente", MsgBoxStyle.Information, "Confirmado")
Pregunta1ComboBox.Focus()
End If
Este código nos indica que si al
tirar la condición y el usuario da clic en sí, entonces eliminaremos los datos
correspondientes al formulario el cual eliminará el registro en Access y nos
dirigirá a la pregunta número 1 para volver a escribir otro registro.
Ahora sí, ya terminamos nuestro
formulario, ahora seguiremos con la grafica.
La
grafica es más sencilla.Creamos otro formulario y le cambiamos form1 y le
ponemos frmGrafica.
Agregamos un objeto chartControl
y lo pegamos al formulario, le cambiamos la propiedad
Name: oConexion
Asimismo pegamos un botón y le
cambiamos la propiedad
Name:cmdActualizar
Text:Actualizar
Tal como lo vemos aquí
Ahora hacemos doble clic al botón
Actualizar y escribimos el siguiente
código
1)
Sirve para importar los objetos
oledbCommand,Connection y DataReader
2)
Aquí creamos la cadena y decimos
hacia donde queremos apuntar en este caso apuntamos a mi tabla de Access que se
encuentra en D:\Encuesta_2012\Encuesta.accdb
Accdb es la extensión de la tabla Encuesta.
3)
Creamos la instrucción SQL, en este
caso estamos llamando a la pregunta1 porque queremos buscar el total se Si y No
por cada pregunta, por eso haremos 10 graficas en el mismo formulario porque
son 10 preguntas
4)
Creamos una conexión llamada
oConexion llamando a la Cadena
5)
Creamos un Comando con OledbCommand
y es el que Permite ejecutar la instrucción en el origen de datos.
6)
Creamos un Lector con
OledbDataReader y permite visualizar lo que queremos
Asi limpiamos la grafica, agregamos
titulo... y enlazamos la grafica
Ahora
seguimos con el reporte
Nos vamos al proyecto Encuesta clic derecho/Agregar/Nuevo Elemento
Nos vamos al Menú
Ver/Cuadro de herramientas
Buscamos el objeto Lista y lo pegamos al formulario, y nos aparecerá esto:
Dejamos el nombre como Dataset1, el origen de Datos
va ser el dataset que tenemos
agregado en el proyecto, en este caso
encuestaDataset y el conjunto de datos la tabla
Encuesta. Ojo, Arreglamos el cuadro de lista para
que abarque el alto y el ancho de
La pagina, ya que es el Que le visualiza todo,
quedará así.
Ahora creamos un cuadro de texto y le ponemos Ficha de Encuesta
Seleccionamos
Ficha de Encuesta y nos vamos al menú:
Formato/Alinear/Al Centro
Formato/Fuente/Negrita
Creamos otro cuadro de Texto, clic
derecho/Expresion, ponemos:
(=”Encuesta #”
&) y seleccionamos
Categoria:Dataset1 Elemento: Todos Valores:IdPregunta
Esto ese para que nos salga el numero de la
Encuesta. Así
Ahora escribimos la primer pregunta con un cuadro de
texto y ponemos 4 cuadros
De textos más como aparece en esa imagen, las cuales
serán
a) Si
b) No
Nos
vamos a Relleno y le ponemos un
color, después Damos clic en Visibilidad/mostrar u ocultar en función de una expresión
y damos clic en fx y escribimos el código
que aparece ahí
=not(Fields!Pregunta1.Value="Si")
Este código es
para que podamos visualizar la respuesta que el usuario da, por ejemplo si el
usuario da clic en Si en la base de datos, ahí se va a visualizar la letra a).
Después nos
vamos a b) y hacemos lo mismo, nada más que el código será al revés
=not(Fields!Pregunta1.Value="No")
Y así hacemos con las demás
preguntas, hasta que nos quede así:
Ahora sí, creamos otro formulario llamado frmReporte
Ahora nos vamos
al cuadro de herramientas Informe/ReportViewer
Lo pegamos en el
formulario y nos aparecerá lo siguiente:
En tareas del ReportViewer elegimos el informe que
hicimos rptEncuesta.rdlc
Listoo!!!
Hemos terminado el proyecto!