Está en la página 1de 23

MANUAL DE ACCESO A DATOS CON VB.

NET
PRIMERA PARTE


Autor : Christian Rodriguez Olmos
Mail : tantanatan@hotmail.com
Fecha : 27 de Junio de 2007 Inicio 21:25 hrs. Termino 01:53 hrs.

Muchos hemos pasado por los foros haciendo muchas preguntas, y me incluyo,
pues mis conocimientos son mnimos en comparacin a muchos expertos que rondan la
red, especialmente en los foros.
El problema radica en que cada vez que reviso algunos foros de programacin, me
encuentro con preguntas que son relativamente bsicas, lo que demuestra que hay
muchsima gente con escasos conocimientos de programacin, y lo que es ms importante,
de lgica. No se si es debido a que se trata de autodidactas, o por que sus educadores
realmente dieron una base muy pobre.
Bueno, independiente de la situacin, me he dado cuenta que una de las preguntas
mas frecuentes es como obtengo..?, como guardo..? como actualizo..??? datos en una
Base de Datos con Visual Basic.Net
Es por ello que me tom un tiempo para preparar esta gua que es extremadamente
bsica, y talvez no cumpla con grandes estndares de ingeniera de software, o control de
errores, tratamiento de transacciones, etc. Recuerda las preguntas son de Acceso a
datos.
Sin perjuicio de lo anterior, he subido algn material que puedes descargar y que
contiene guas, relacionadas al tratamiento de datos con Visual Basic .Net, e incluso
puedes encontrar algn manual del lenguaje.
Este material lo encontraras en el paquete que incluye este manual, pero si has
llegado solo a este documento, puede solicitarme todo lo ofrecido a mi correo
tantanatan@hotmail.com.

Recuerda que en el paquete encontraras:
- El manual (completo, o hasta la ultima parte terminada)
- Material de apoyo
- El cdigo fuente del proyecto
- La base de datos


OBJETIVOS

El objetivo principal de esta gua es que logremos crear una aplicacin que nos permita
leer, guardar, modificar y eliminar informacin de una base de datos.
Crearemos un sistema que nos permita gestionar productos y ventas, o sea, un micro
T.P.V. (Terminal de Punto de Venta). No quiero que imaginen un sistema de avanzada,
pero lograremos:
- Ingresar los productos
- Modificar Productos
- Vender Productos
(No ser tratado el tema de la impresin, de la boleta, gua, o factura.)



REQUERIMIENTOS

Necesitamos tener instalado el Visual Basic .Net, ya sea en las versiones Express o Visual
Studio 2005, adems, necesitaremos Access (XP / 2003)
Tambin, necesitamos conocimientos bsicos de VB.Net y de Base de datos.



CREANDO LA BASE DE DATOS

Abrimos Access y creamos nuestra base de datos con la siguiente estructura y en el
directorio que t elijas.

Las tablas:
Productos : Guardar nuestros productos. El cdigo del producto lo
generaremos por cdigo, valga la redundancia, para as ver el funcionamiento de las
consultas de tipo Scalar.
UnidadesMedida : Una lista de unidades de medida, tales como; KGS, UND,
LTR, etc.
Compras : Guardaremos los datos de nuestras compras de productos
Ventas : Guardaremos los datos de nuestras ventas de productos
VentasDetalle : El detalle de la venta, asociada al numero de la factura.
IVA : Una lista de los impuestos aplicables.


Hasta aqu ya tenemos lista nuestra Base de Datos, ahora nos vamos a programar.
La definicin de las columnas, es simple y lgica. Pero no te hagas problema pues se
adjunta la base de datos ya terminada, y vaca.
CREANDO EL PROYECTO

Abrimos Visual Basic.Net, ya sea Express o Visual Studio 2005 (en mi caso)

Creamos un nuevo proyecto Windows Aplicacin para Windows
Y le llamamos GestionNegocio


CREANDO LOS FORMULARIOS

CREAR FORMULARIO MDI PRINCIPAL

Luego estando dentro del proyecto, Agregamos un nuevo elemento del tipo Formulario
Primario MDI, y lo llamamos MDIMain.


Nuestro proyecto debe presentarse de esta forma:


A continuacin Eliminamos los componentes que se agregaron automticamente.
(Marcados en rojo) Si vas a usar alguno, djalo

Si borraste los componentes, puede que necesites borrar el cdigo asociado.
En mi caso, como seale que se deban borrar todos, el cdigo del MDIMain debera
quedar as:


Ahora en la vista Diseo del MDIMain arrastramos un MenuStrip para que configuremos
nuestro Men de la aplicacin.


La estructura del Men es:
Archivo Salir
Tablas Unidades de Medida
Productos
Impuestos
Gestin Ingresar Factura de Compra
Emitir Factura de Venta

Si Observas, los mens debes estar ordenados lgicamente. Por ejemplo, Productos esta
bajo Unidades de Medida, pues requiere la existencia de una de ellas, para poder crearse.
Los ingresos de productos estn sobre Emitir Factura de Venta, pues no podemos vender,
sin productos.

Esto es lgico dirs t, pero he visto programas que no guardan un orden lgico en los
mens. Un espanto!!!.

Ahora dejemos lista la opcin de men Salir
En modo diseo hacemos clic en el men Archivo, y doble clic en la opcin Salir, para ver
el cdigo asociado al men.
El cdigo del Men Archivo Salir nos queda si:
Private Sub SalirToolStripMenuItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
SalirToolStripMenuItem.Click

End
End Sub

Con la instruccin End cerramos la aplicacin. Aunque hay otra forma, pero ms larga.
(Global.System.Windows.Forms.Application.Exit())
Ahora, nos vamos al Men del Entorno y Cambiamos el Formulario Inicial.
Menu Proyecto Propiedades de GestionNegocio
Y en la opcin de Formulario de Inicio seleccionamos el MDIMain


Ahora probamos nuestro proyecto. Presionamos F5 y se ejecutar la aplicacin.
Si te arroja algn error, es por que algo te ha faltado, vuelve atrs y revisa.
Si todo sale bien, bastar elegir la opcin de men Archivo Salir, y nuestra aplicacin
se cerrar.


Todo OK, continuamos.


Antes de seguir, necesito que al proyecto le agregues una Nueva Carpeta, y la llames
DataSets, esto nos ayudar a mantener un orden.


CREANDO EL ORIGEN DE LOS DATOS

Desde el men del entorno elegimos la opcin Datos Agregar nuevo origen de datos
Y Elegimos la opcin Base de Datos.

Hacemos clic en siguiente.

Creamos una Nueva Conexin

Cambiamos el Origen de Datos a Archivo de Base de Datos Access


Buscamos la Base de Datos, la seleccionamos (Botn Examinar), y probamos la conexin
(Botn Probar Conexin). Todo debera estar OK hasta aqu.

Podemos Continuar entonces.


Cuando hagamos clic en Siguiente obtendremos el siguiente mensaje.


Lo que pasa es que nuestra base de datos no esta en el directorio de la aplicacin (En mi
caso esta en Escrtorio\Subir\BDGestion.mdb, en tu caso da lo mismo donde la tengas).
Lo importante es elegir la opcin SI. De esta forma la base de datos ser copiada al
directorio del proyecto, y cada vez que ejecutes la aplicacin (F5), esta se copiar al
directorio de resultado (\Projects\GestionNegocio\GestionNegocio\bin\Debug)
Lo importante es que la copia que estar en el directorio del proyecto
(\Projects\GestionNegocio\GestionNegocio), ser nuestra base de datos fuente para
futuras modificaciones, pues cuando ejecutes pruebas y agregues datos, cuando la vuelvas
a ejecutar veras que no estn los datos, esto por que estars copiando nuevamente la base
de datos origen. En este caso tendrs que copiar la base de datos del directorio de
resultados, al directorio del proyecto si quieres mantener los datos de pruebas.
Obviamente, esto no pasar una vez que finalices el proyecto, donde bastar que la base de
datos est en el mismo directorio que el ejecutable de la aplicacin.

Retomando al hacer clic en SI, debemos asignar un nombre a la cadena de conexin.
Podemos mantener el nombre propuesto si lo deseamos (Yo lo har)

Hacemos clic en Siguiente, y luego en finalizar, pues por ahora no nos interesa crear
ningn DataSet. (Confirma el siguiente mensaje)

Si revisamos el Archivo de Configuracin de la Aplicacin app.config, vemos la cadena
de conexin siguiente:
<connectionStrings>
<add name="GestionNegocio.My.MySettings.BDGestionConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=|DataDirectory|\BDGestion.mdb"
providerName="System.Data.OleDb" />
</connectionStrings>

Fjate en el parmetro Source. As se nos permite trabajar con la base de datos en la
misma carpeta que el ejecutable de la aplicacin.

Hasta aqu tendremos as nuestro proyecto.


El DataSet que se cre cuando generamos el acceso a datos, debes eliminarlo, pues no
contiene nada, y no lo necesitamos. Luego crearemos los nuestros.

CREANDO LOS FORMULARIOS HIJOS (CHILD)

Los formularios se crearan segn el orden de los mens.

FORMULARIO DE GESTIN DE UNIDADES DE MEDIDA

Utilizamos el Form1 que se gener al crear el proyecto, o agregamos un nuevo elemento
Windows Forms.
El nombre de este formulario ser frmUnidadesMedida. Cmbialo adems, al archivo
Form1.vb
A la propiedad Text del form le asignamos Unidades de Medida

CREANDO UN DATASET

Ahora a la carpeta DataSets Agrgale un Nuevo Elemento del tipo Conjunto de Datos, y
llmalo dsUnidadesMedida.


Al hacer clic en agregar tendremos este escenario. Pero lo cerramos (el DataSet creado).

Ahora, seleccionamos el men del entorno. Datos Mostrar Orgenes de Datos
Con esto mostramos nuestros orgenes de datos, especficamente nuestros DataSets.

Seleccionamos el dsUnidadesMedida, y lo Configuramos usando el Asistente.

Elegimos la cadena de conexin que ya hemos creado.

Expandimos, y seleccionamos la tabla UnidadesMedida. Y Hacemos Clic en Finalizar.
Obtendremos el siguiente escenario.


A continuacin modificaremos la consulta. Haz clic con el botn secundario del ratn,
sobre los mtodos Fill, GetData() del TableAdapter, y elige Configurar

Podemos usar el Generador de Consultas, o escribirla directamente.
La consulta quedar as

Damos clic en siguiente

Damos clic en siguiente y luego en finalizar, y estamos listos.


As nos queda el DataSet, con el TableAdapter creado.


Cerramos el dsUnidadesMedida y guardamos los cambios.

Ahora cierra los Orgenes de datos.


Para que abras el frmUnidadesMedida. (Diseo)

Ahora, seleccionamos el men del entorno (Nuevamente).
Datos Mostrar Orgenes de Datos


Arrastra el DataSet al frmUnidadesMedida, pero hazlo desde el nodo UnidadesMedida
Y fjate que este seleccionado el modo DataGridView.


Una vez que hayas arrastrado en DataSet al frmUnidadesMedida, consigue la siguiente
apariencia.


Ahora nos vamos al MDIMain y codificamos la accin del men Tablas Unidades de
Medida.
Supongo que ya sabes como hacerlo. Seleccionas el men Tablas, y luego haces doble
clic a la opcin Unidades de Medida.
Debes dejar el cdigo de esta manera.
Private Sub UnidadesDeMedidaToolStripMenuItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
UnidadesDeMedidaToolStripMenuItem.Click

Dim frmUnid As New frmUnidadesMedida
frmUnid.MdiParent = Me
frmUnid.Show()
End Sub

Con este cdigo creamos una nueva instancia del frmUnidadesMedida, luego le
indicamos que es un formulario hijo del MDIMain, y despus lo mostramos.

Ahora, ejecuta la aplicacin (F5), y carga tantas veces quieras el formulario Unidades de
Medida.



Si has llegado hasta aqu, y la aplicacin te funciona. Felicitaciones.
Haz cumplido con la primera parte de este manual, y ya puedes comenzar a ingresar
unidades de medida.
Recuerda guardar los datos con el disquete.
Recuerda que estas trabajando con una copia de la base de datos, si cierras la aplicacin y
la vuelves a ejecutar no tendrs los datos. Debers copiar la base de datos de la carpeta de
resultados, y reemplazar la de la carpeta del proyecto, para mantener los datos

Yo ingrese las siguientes unidades de medida

MEJORAS

Seguramente, te preguntaras
Que pasa si modifico la columna IdUnidadMedida?
Que pasa si ingreso dos veces una unidad de medida?

Bueno, para evitar modificar la columna IdUnidadMedida, que es Autonumerica,
selecciona el Grid, y en sus propiedades selecciona Columns Coleccin
Tendrs lo siguiente:

Aqu puedes jugar con las propiedades de las columnas.
A la columna IdUnidadMedida, puedes poner a False la propiedad Visible.
A la columa UnidadMedida, puedes cambiar las siguientes propiedades:
HeaderText = Unidad de Medida
MaxInputLength = 5

Con esto, hemos solucionado lo de la columna IdUnidadMedida, y un posible error si
ingresramos una unidad de medida de 6 o ms caracteres, pues en la tabla se defini con
5 caracteres.

Ahora, sin ingresamos 2 veces una misma unidad de medida nos arrojara el siguiente error
en tiempo de ejecucin.

Lo podemos evitar de la siguiente manera.
El mtodo donde se genera el error djalo de la siguiente forma
Private Sub UnidadesMedidaBindingNavigatorSaveItem_Click(ByVal sender _
As System.Object, ByVal e As System.EventArgs) Handles _
UnidadesMedidaBindingNavigatorSaveItem.Click

Me.Validate()
Me.UnidadesMedidaBindingSource.EndEdit()

Try
Me.UnidadesMedidaTableAdapter.Update _
(Me.DsUnidadesMedida.UnidadesMedida)
Catch err As System.Data.OleDb.OleDbException
MsgBox("Se ha producido un error de consistencia en los datos
ingresados para guardar o actualizar", MsgBoxStyle.Exclamation)
Catch ex As Exception
MsgBox("Se ha producido un error no controlado al guardar o
actualizar los datos", MsgBoxStyle.Exclamation)
End Try
End Sub

Con esto controlaremos, errores de consistencia de los datos, y errores de carcter general.
Puedes agregar los que t quieras. (de Conexin, etc.)
Si ejecutamos la aplicacin, ya no tendremos los problemas de:
Que pasa si modifico la columna IdUnidadMedida?
Ya no puede ser modificada por el usuario
Que pasa si ingreso dos veces una unidad de medida?
Pasar esto:


Bastar con hacer clic en Aceptar, y luego eliminar la fila con error.




Bueno espero que esta primera parte del manual les sirva. Y recuerden, que esto es
bsico y talvez se me puedan pasar muchas ideas, pero es una base para Uds. Y espero
que saquen provecho a este trabajo.


Saludos desde San Felipe Chile

Christian Rodriguez Olmos

Si necesitas comprar cuentas Rapidshare.com Premium escrbeme a
cuentas.rapidshare@gmail.com

También podría gustarte