Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2010 Manual PDF
2010 Manual PDF
Elaborada por:
Ing. Alfredo Díaz
Cabimas, Septiembre de 2011
GUIA DE ESTUDIO
VISUAL BASIC .NET 2010
¿Que es .NET?
.Net es la nueva plataforma de desarrollo que ha lanzado al mercado MicroSoft, y en la que ha
estado trabajado durante los últimos años. Sin duda alguna va a ser uno de los entornos de
desarrollo que reinen durante los proximos años.
¿Entonces .NET es un lenguaje de programación?, No. Es mucho más que eso, Microsoft .NET
es un conjunto de tecnologías de software , compuesto de varios lenguajes de programación
que se ejecutan bajo el .NET Framework. Es además un entorno completamente orientado a
objetos y que es capaz de ejecutarse bajo cualquier plataforma. Vamos por partes. Podriamos
dividir el entorno .NET en las siguientes partes:
Lenguajes .NET. Destacan C# y VB.NET,y recientemente J#, aunque existen más lenguajes y
con toda seguridad surgirán nuevos.
El Common Runtime Language CRL, que es el motor de ejecución común a todos los
lenguajes .NET.
MSIL, Microsoft Intermedial language, es el lenguaje intermedio al que compilan las apliaciones
(Asemmblies) .NET. Este lenguaje intermedio es interpretado por el CRL en tiempo de
ejecución.
CLS, common Language Specification, que engloban las pautas que deben cumplir los
lenguajes .NET. Es está característica la que va a permitir a otras compañias producir
lenguajes compatibles con .NET.
ADO.NET, es la nueva interfaz de bases de datos. No se trata de una evolución de ADO, sino
que se trata de una interfaz completamente nueva.
Biblioteca de clases .NET, es el conjunto de clases que componen el .NET framework y que
nos permiten realizar casi cualquier tarea de una manera facil y rápida.
Al igual que con todos los lenguajes de programación basados en .NET, los programas escritos
en VB .NET requieren el Framework .NET para ejecutarse.
EL .NET FRAMEWORK
El Framework de .Net es una infraestructura sobre la que se reúne todo un conjunto de
lenguajes y servicios que simplifican el desarrollo de aplicaciones. Mediante esta herramienta
se ofrece un entorno de ejecución que permite crear aplicaciones robustas y escalables. Los
principales componentes de este entorno son: Lenguajes de compilación, Biblioteca de clases
de .Net, CLR (Common Language Runtime)
Actualmente, el Framework de .Net es una plataforma no incluida en los diferentes sistemas
operativos distribuidos por Microsoft, por lo que es necesaria su instalación previa a la
ejecución de programas creados mediante .Net. El Framework se puede descargar
gratuitamente desde la web oficial de Microsoft.
.Net Framework soporta múltiples lenguajes de programación y aunque cada lenguaje tiene sus
características propias, es posible desarrollar cualquier tipo de aplicación con cualquiera de
estos lenguajes. Existen más de 30 lenguajes adaptados a .Net, desde los más conocidos
como C# (C Sharp), Visual Basic o C++ hasta otros lenguajes menos conocidos como Perl o
Cobol.
De esta forma se consigue con .Net cierta independencia de la plataforma, ya que cada
plataforma puede tener su compilador JIT y crear su propio código máquina a partir del código
MSIL. La compilación JIT la realiza el CLR a medida que se invocan los métodos en el
programa y, el código ejecutable obtenido, se almacena en la memoria caché de la
computadora, siendo recompilado sólo cuando se produce algún cambio en el código fuente.
Cuando se está programando una aplicación muchas veces se necesitan realizar acciones
como manipulación de archivos, acceso a datos, conocer el estado del sistema, implementar
seguridad, etc. El Framework organiza toda la funcionalidad del sistema operativo en un
espacio de nombres jerárquico de forma que a la hora de programar resulta bastante sencillo
encontrar lo que se necesita.
Para ello, el Framework posee un sistema de tipos universal, denominado Common Type
System (CTS). Este sistema permite que el programador pueda interactuar los tipos que se
incluyen en el propio Framework (biblioteca de clases de .Net) con los creados por él mismo
(clases). De esta forma se aprovechan las ventajas propias de la programación orientada a
objetos, como la herencia de clases predefinidas para crear nuevas clases, o el polimorfismo
de clases para modificar o ampliar funcionalidades de clases ya existentes.
La biblioteca de clases de .Net Framework incluye, entre otros, tres componentes clave:
ASP.NET para construir aplicaciones y servicios Web.
Windows Forms para desarrollar interfaces de usuario.
ADO.NET para conectar las aplicaciones a bases de datos.
La forma de organizar la biblioteca de clases de .Net dentro del código es a través de los
espacios de nombres (namespaces), donde cada clase está organizada en espacios de
nombres según su funcionalidad. Por ejemplo, para manejar ficheros se utiliza el espacio de
nombres System.IO y si lo que se quiere es obtener información de una fuente de datos se
utilizará el espacio de nombres System.Data.
La principal ventaja de los espacios de nombres de .Net es que de esta forma se tiene toda la
bliblioteca de clases de .Net centralizada bajo el mismo espacio de nombres (System).
Además, desde cualquier lenguaje se usa la misma sintaxis de invocación, ya que a todos los
lenguajes se aplica la misma biblioteca de clases.
Ensamblados
Uno de los mayores problemas de las aplicaciones actuales es que en muchos casos tienen
que tratar con diferentes archivos binarios (DLL´s), elementos de registro, conectividad abierta
a bases de datos (ODBC), etc. Para solucionarlo el Framework de .Net maneja un nuevo
concepto denominado ensamblado. Los ensamblados son ficheros con forma de EXE o DLL
que contienen toda la funcionalidad de la aplicación de forma encapsulada. Por tanto la
solución al problema puede ser tan fácil como copiar todos los ensamblados en el directorio de
la aplicación.
1. Para iniciar Visual Basic .NET 2010, deberá clickear en el menú Inicio de Windows, luego en
“Todos los Programas” y posteriormente en el grupo de programas “Microsoft Visual Studio
2010, y finalmente en “Microsoft Visual Studio 2010”.
En este momento, procederemos a crear una “Nueva aplicación para Windows” utilizando el
lenguaje de programación Visual Basic 2010. Para ello, haga clic en el menú “Archivo” y luego
“Nuevo Proyecto” (o presione Control+U). Allí, se mostrará la siguiente ventana:
Un proyecto es una colección de archivos (código fuente, imágenes y demás archivos) que el
programador o diseñador de software integra para dar origen al producto final (software)
deseado.
3. Una vez que hemos dado nombre al proyecto, se muestra el entorno de desarrollo integrado,
el cual es un conjunto de herramientas que al trabajar de manera integrada, facilitan el diseño,
codificación, prueba, depuración y demás actividades relacionadas con el desarrollo de
software. A continuación se describen cada una de sus partes:
Menú Barras de
Cuadro de Principal herramienta
herramientas s Explorador
de Soluciones
Formulari
o
Escritorio
Barra de
Estado
Escritorio: Es el área blanca que sirve de “soporte” a los elementos que componen el entorno
integrado de desarrollo. No confundir con el escritorio de Windows.
Menú Principal: Es el listado de opciones que permiten desencadenar las distintas acciones
permitidas por el IDE. Es muy similar al de otros programas Windows como Word o Excel, pero
con posibilidades para crear o abrir proyectos, depurar archivos, ejecutar complementos entre
muchas otras posibilidades.
Formulario: Es el principal objeto contenedor de Visual Basic donde se pueden “dibujar” las
interfaces a modo de ventanas y que pueden contener otros objetos que tienen diversos
comportamientos. Así como en Word existe el documento en blanco sobre el cual, el usuario
comienza a escribir, en Visual Basic existe el formulario.
Cuadro de Herramientas: Es una sección que aparece como una “pestaña” al lado izquierdo
de la ventana principal del IDE. Al clickear sobre ella, se pueden observar una serie de iconos
que representan “clases”, las cuales pueden crear objetos dentro del formulario. Se clasifican
por categorías y abarcan desde etiquetas y cuadros de texto hasta objetos para acceso a
datos.
Orígenes de Datos: Es una sección que permite configurar la accesibilidad hacia bases de
datos (por ejemplo, SQL Server). Abarca la creación de orígenes de datos, creación de bases
de datos, tablas y demás elementos relacionados para utilizarlos dentro de la solución o
proyecto.
Explorador de soluciones: Proporciona una vista organizada de los proyectos y sus archivos,
así como acceso rápido a los comandos relativos a ellos. Normalmente, una barra de
herramientas asociada a esta ventana ofrece los comandos que se utilizan con más frecuencia
con el elemento resaltado en la lista.
Ventana Propiedades: Utilice esta ventana para ver las propiedades de los elementos
seleccionados. También puede utilizarla para ver las propiedades de archivos, proyectos y
soluciones.
Barra de Estado: Muestra el estado de la ejecución de un proceso o actividad dentro del
entorno de trabajo.
2. Seleccione la ficha “NET” y allí, posiciónese sobre el ítem “adodb” tal como se muestra:
3. Ya estamos listos para empezar a trabajar con datos desde Visual Basic .NET 2010.
Específicamente, en este curso aprenderemos cómo vincularnos con Access 2010 aunque
ADO.NET permite conectividad con numerosos motores de bases de datos como SQL Server y
MySQL entre otros.
Es importante que antes de conectarnos con cualquier motor de bases de datos, revisemos la
documentación respectiva, ya que cada uno tiene características propias y de compatibilidad
con Visual Studio.NET y más específicamente con VB.NET
Se pretende crear una pequeña aplicación que conste de un formulario con acceso a datos
donde el usuario puede crear, editar, eliminar y consultar registros de una tabla de “alumnos”
dentro de una base de datos de Access llamada “central”. Primeramente, debemos saber cómo
se insertan los objetos en nuestro formulario.
1. Insertaremos un label en nuestro formulario. Para ello, abrimos el cuadro de controles (nos
posicionamos con el mouse sobre la pestaña “cuadro de herramientas” que está a la izquierda
de la pantalla) y allí se abrirá la paleta de controles.
2. Ubicamos el icono (que es el objeto que deseamos insertar).
3. Haga doble click sobre el icono identificado en el paso anterior (Label) y allí se insertará un
objeto de tipo “Etiqueta” en la esquina superior izquierda del formulario.
Nombre del
objeto
seleccionado y
Espacio de
nombres
Valores
Nombres de las asignados a
propiedades cada propiedad
Descripción de
la propiedad
seleccionada
En la parte superior se muestra una lista desplegable con el nombre del objeto y el espacio de
nombres del cual proviene. En el caso de la figura, dado que se trata una aplicación para
Windows, se observa “System.Windows.Forms….”
Esta lista desplegable también puede ser utilizada para seleccionar un objeto del formulario
directamente desde la ventana propiedades (sin clickear sobre el objeto del formulario).
En la parte izquierda se visualizan los nombres de las propiedades del objeto, por ejemplo:
Text, Tag, WindowState, etc.
Al lado de cada propiedad se encuentra el valor asignado a ella. En el ejemplo, se visualiza la
propiedad “Text” y su valor “Form1”, así como también ShowInTaskBar con True. Cabe
destacar que algunas propiedades reciben una cadena de caracteres, otras valores lógicos
(True/False) o numéricos como en el caso de Height y Width (altura, anchura).
Algunos especialistas aseguran que las propiedades deben pensarse como variables debido a
que a éstas también se le asignan valores de diversos tipos. El tipo de datos de estos valores,
dependerá entonces de la naturaleza de la propiedad, por lo que se recomienda documentarse
un poco sobre su utilización.
3. Ahora bien, es el momento de modificar algunas propiedades de nuestro formulario. Si aún
no lo hemos seleccionado, hagamos un click sobre él e inmediatamente dirijámonos a la
ventana propiedades.
4. Busquemos la propiedad Text y coloquemos la frase “Mantenimiento de Alumnos” (sin
comillas). Esto cambiará el título de nuestra ventana.
5. Ahora, vayamos a la propiedad MaximizeBox y seleccionamos el valor False. Esto para
evitar que nuestro formulario tenga el botón Maximizar.
6. Luego, en la propiedad StartUpPosition seleccione el valor CenterScreen para que la
ventana aparezca en el centro de la pantalla cuando nuestra aplicación se ejecute. Recuerde
que aún estamos en tiempo de diseño.
7. Ahora, es el momento de asignar el Nombre del objeto (Name), propiedad de mucha
importancia, ya que a través de él, haremos referencia a dicho objeto a nivel de código. En el
caso de nuestro formulario, lo llamaremos frmAlumnos.
Así como los seres humanos tienen características únicas (por ejemplo el número de cédula)
que no es compartido por ningún otro, por lo menos en el mismo País, los objetos tienen una
propiedad que es el nombre (o name) cuyo valor no puede ser compartido por ningún otro
objeto dentro del mismo formulario. En otras palabras, dos o más objetos no pueden tener el
mismo nombre dentro del mismo formulario.
Para asignar el nombre a un objeto, deben seguirse una serie de reglas, entre las cuales
tenemos:
a. El nombre de un objeto no distingue entre mayúsculas y minúsculas. Es lo mismo escribir
“TXTCEDULA” que “txtCedula”, aunque por razones de estética, se recomienda el uso de
minúsculas para el prefijo, mayúscula para la inicial del nombre y el resto en minúsculas.
b. El nombre no puede quedar en blanco y tampoco empezar con números
c. El nombre no puede ser una palabra reservada o propia del lenguaje. Ejm: “function”
d. No deben tener caracteres especiales ($,#, ¡) por ejemplo.
e. Deben ser descriptivos de su contenido, aunque no demasiado largos para su comprensión
f. No deben tener espacios en blanco. Si necesita separar palabras, utilice el guion bajo (_)
g. Es altamente recomendado que se utilice un prefijo en el nombre del objeto y éste debe
estar asociado al tipo al que corresponde, naturaleza o funcionalidad.
Durante años, se han utilizado prefijos que sin ser estándares, se han vuelto costumbre y
obligación entre los programadores no sólo de Visual Basic, sino de otras herramientas. Ellos
son:
El uso de los prefijos tiene su importancia en el hecho de que en un formulario pueden existir
muchos objetos de diversos tipos. Sería confuso llamar a un objeto “Cédula” y luego escribir
código asociado a él, ya que no sabríamos si se trata de un cuadro de texto o una etiqueta.
Entonces sería más descriptivo escribir txtCedula e identificar al objeto como un textbox sin
necesidad de tener que ir al formulario y visualizar el objeto en cuestión.
Así mismo, en la tabla no aparece el label “Cédula” puesto que ya lo hemos agregado
anteriormente.
6. Ahora, es el turno de los cuadros de texto (textboxes). Nota: El texto de la propiedad Text se
borrará dejando la propiedad vacía.
TIPO DE OBJETO PROPIEDAD VALOR
TextBox Name txtCedula
Text “” (Vacío)
Name txtNombre
TextBox
Text “”
Name txtApellido
TextBox
Text “”
Name txtDir
TextBox
Text “”
Name txtTelf
TextBox
Text “”
Nota: Todos los textboxes deberán tener además, la propiedad Enabled a False.
7. Procedamos ahora a incluir los botones de comando (buttons) que desplegarán las acciones
en el formulario.
Al terminar de ajustar las propiedades, sólo basta ajustar algunos detalles estéticos como el
tamaño de los cuadros de texto (trate de dejarlos todos del mismo tamaño). Para ello, utilice el
mouse como si de ajustar una imagen se tratara.
Es un buen momento
para guardar los
cambios en el
proyecto. Presione el icono del disquete en la barra de herramientas (o CTRL+S)
Como se habrá dado cuenta, hemos utilizado algunas propiedades al momento de diseñar
nuestra interfaz. De allí, es importante conocer su significado de cada una de ellas y algunos
detalles que facilitarán nuestro trabajo.
Name: Indica el nombre del objeto. Este punto fue tratado extensivamente en un apartado
anterior. Aplica para todos los objetos.
MaximizeBox / MinimizeBox: Permite que el formulario muestre los botones de Maximizar y
Minimizar. Aplica al objeto Form.
Enabled: Activa o desactiva un objeto para que el usuario pueda posicionarse o escribir sobre
él. Aplica a los textboxes, combos, forms, entre muchos otros.
StartupPosition: Indica en qué posición se desea que el formulario se muestre cuando se
ejecute. Si se quiere que aparezca en el centro de la pantalla, seleccione “CenterScreen”.
ShowInTaskBar: Indica si el formulario debe mostrarse en la barra de tareas o no. Aplica al
objeto Forn.
Height / Width: Alto / Ancho de un objeto. Indican las dimensiones de un objeto. Aparecen
como detalle de la propiedad Size. Aplica para distintos tipos de objetos.
Text: Importante propiedad que almacena el valor ingresado en un textbox (el que el usuario
ingresa), o bien, el titulo o leyenda de un objeto. Por lo tanto, no debe confundirse con el
Name, ya que el Text es una cadena de caracteres que en la mayoría de los casos es visible
en tiempo de diseño y ejecución, además, permite el uso de espacios en blanco y caracteres
especiales.
En otras palabras, si deseamos saber qué valor ha ingresado el usuario en el cuadro de texto
con el nombre txtCedula, debemos leer la propiedad Text del referido objeto.
Al inicio, los botones Nuevo, Modificar, Eliminar, Cerrar y Buscar, deben estar activos ya que se
espera que el usuario desencadene una de estas acciones, estando inactivos los botones
Guardar y Cancelar.
Luego de una operación de agregación o modificación, cuando el usuario selecciona Guardar o
Cancelar, se regresan todos los cuadros de texto a su estado inactivo y los botones Nuevo,
Modificar, Eliminar, Cerrar y Buscar, se activan; desactivando entonces a Guardar y Cancelar.
Es el momento de codificar los objetos del formulario para conectarnos a nuestra base de datos
“central” (de Access 2010), específicamente a la tabla “alumnos”. Para ello, hagamos doble
click sobre cualquier área libre de nuestro formulario. Al hacer esto, aparecerá la siguiente
ventana:
Esta es la ventana
“Código” donde podrá
agregar las instrucciones
necesarias para que su
aplicación funcione según
sus necesidades.
End Sub
End Class
El Public Class nos indica que se ha definido una Clase llamada frmAlumnos. Una clase es
una plantilla u objeto base sobre la que se habrá de “hacer algo”. Recuerde algunas
definiciones básicas de la programación orientada a objetos.
El Public Class deberá terminar con su respectivo End Class.
Cuando se abre un Private Sub debe cerrarse con un End Sub. De lo contrario, se generará
un error. No debe borrar las líneas Private Sub ni End Sub.
Algunos Provedimientos de Evento (o Sub) reciben valores para que puedan hacer lo que
tienen programado. Visual Basic nos coloca automáticamente cuáles son esos valores
llamados Parámetros. Los podemos visualizar en la línea:
Entiéndase que los parámetros son los que están encerrados entre paréntesis y tampoco
deben ser cambiados por el programador, aunque los valores que reciben si pueden utilizarse a
conveniencia.
1. Ahora, ubíquese en la línea Public Class frmAlumnos y agregue unas 2 o 3 lineas de
código en blanco (presione ENTER al final de la palabra frmAlumnos) tal como lo haría en
Word, luego, agrégue las siguientes líneas de código:
Lo primero que observamos, es la declaración de dos variables públicas, una para abrir la
conexión hacia nuestra base de datos y otra para “abrir” la tabla o conjunto de registros que
necesitamos. Vayamos paso a paso…
En Visual Basic (con las librerías de ADO.NET) existe un objeto llamado Connection que es
invisible en tiempo de diseño y de ejecución, pero que nos permite conectarnos con algunos
motores de bases de datos (como Access). De allí que se declara una variable llamada db
como un objeto NUEVO (New) ADODB.Connection.
Este objeto también tiene propiedades que podemos utilizar (se verán posteriormente) y
muchas otras bondades.
Cabe destacar que una Variable podría definirse como un objeto de programa que almacena
un valor temporalmente (en memoria) y que podemos utilizar para realizar algún cálculo o
acción cualquiera. Por ejemplo, si deseásemos almacenar la edad de una persona en memoria,
podríamos declarar una variable llamada Edad y colocarle el valor 30 en números. Edad=30.
Así, quedaría establecido el valor 30 a la variable que hemos dispuesto.
Las variables pueden tener distintos tipos de datos y para nombrarlas se seguirán los mismos
lineamientos de los nombres de objetos. Los tipos de datos soportados por VB.NET 2010 se
muestran al final de esta guía
En el mismo orden de ideas, para declarar una variable de cualquier tipo se utiliza la palabra
reservada DIM y la siguiente sintaxis:
El archivo de la base de datos debe llamarse “central.accdb” y debe estar ubicado en la carpeta
\debug del proyecto, en este caso:
C:\Documents and Settings\Administrador\Mis documentos\Visual Studio 2010\Projects\sistema\sistema\bin\Debug
De no ser así, podría generarse un error al momento de ejecutar el programa, ya que no podría
encontrar la base de datos.
3. Ahora, agregue las siguientes líneas de código dentro del procedimiento Private Sub
frmAlumnos_Load
db.Open()
Nota: La instrucción db.ConnectionString se escribirá toda en una línea, ya que por razones de
espacio, en esta guía abarca 2 líneas. Así mismo, la instrucción db.open() debe estar en una
línea independiente de la anterior.
Al analizar un poco el código, se tiene que el objeto db tiene una propiedad llamada
ConnectionString que no es más que una Cadena de Conexión, es decir, una cadena de
caracteres de uso especial donde se le indica a Visual Basic (o mejor dicho, a ADO.NET) la
ubicación de la base de datos, el motor al cual pertenece e inclusive algunos parámetros de
seguridad.
La cadena de conexión utilizada en este ejemplo es válida para Access 2007 y 2010. Si se
desea utilizar versiones anteriores u otros motores de bases de datos como MySQL, SQL
Server, ORACLE o similar, debe buscar la documentación pertinente.
b. El Origen de Datos (Data Source). Es decir, la ruta donde se encuentra nuestro archivo de
bases de datos. Nótese que se utiliza la instrucción Application.StartupPath para obtener
automáticamente la ruta desde donde se está ejecutando nuestra aplicación, asumiendo que
es la misma donde se encuentra la base de datos.
c. Opciones Adicionales: Dependen de cada motor de bases de datos. Por ejemplo, si la base
de datos tiene contraseña, debemos especificar el Password.
Es importante resaltar que estas instrucciones se han colocado en el evento Load para que se
ejecuten cuando el formulario se carga en memoria.
Me.txtApellido.Text = ""
Me.txtNombre.Text = ""
Me.txtCedula.Text = ""
Me.txtDir.Text = ""
Me.txtTelf.Text = ""
Me.cmdAgregar.Enabled = False
Me.cmdModificar.Enabled = False
Me.cmdBuscar.Enabled = False
Me.cmdEliminar.Enabled = False
Me.cmdCerrar.Enabled = False
Me.cmdGuardar.Enabled = True
Me.cmdCancelar.Enabled = True
Básicamente, lo que se hace en este código es activar todos los cuadros de texto para que el
usuario pueda escribir sobre ellos (Enabled=True) y se limpia el contenido para que queden en
blanco (se establece la propiedad Text a “” que indica “vacío”).
Nótese el uso de la palabra reservada Me que no es más que una referencia al formulario
actual (en este caso, frmAlumnos). Recordemos que por herencia, el objeto formulario (Me),
”contiene” el resto de los objetos como cuadros de texto y botones.
Finalmente, se activan solamente los botones para Guardar y Cancelar ya que serán las
únicas opciones permitidas al agregar nuevos registros a la base de datos (Enabled=True) y
se desactiva el resto de los botones.
7. Ahora, haga doble clic sobre el botón cmdModificar y escriba el código en el evento
Click(…) que se muestra a continuación:
Me.txtApellido.Enabled = True
Me.txtNombre.Enabled = True
Me.txtDir.Enabled = True
Me.txtTelf.Enabled = True
Me.cmdAgregar.Enabled = False
Me.cmdModificar.Enabled = False
Me.cmdBuscar.Enabled = False
Me.cmdEliminar.Enabled = False
Me.cmdCerrar.Enabled = False
Me.cmdGuardar.Enabled = True
Me.cmdCancelar.Enabled = True
En este botón lo único que hacemos es activar los cuadros de texto (excluyendo txtCedula) ya
que cuando editamos un registro, no “debemos” cambiar el valor del campo clave de la tabla
por razones de integridad de datos. Además, es importante destacar que como estaríamos
editando un registro, sólo permitimos los botones cmdGuardar y cmdCancelar, dejando el
resto inactivo.
Me.txtApellido.Text = ""
Me.txtNombre.Text = ""
Me.txtCedula.Text = ""
Me.txtDir.Text = ""
Me.txtTelf.Text = ""
Me.cmdAgregar.Enabled = True
Me.cmdModificar.Enabled = True
Me.cmdBuscar.Enabled = True
Me.cmdEliminar.Enabled = True
Me.cmdCerrar.Enabled = True
Me.cmdGuardar.Enabled = False
Me.cmdCancelar.Enabled = False
Application.Exit()
Es importante destacar que no es lo mismo cerrar una aplicación (Terminarla) que cerrar un
formulario (destruirlo o descargarlo de memoria). En este caso, se utiliza la instrucción
Application.Exit() para terminar nuestra aplicación, ya que por ahora sólo tiene un formulario.
Sin embargo, para aquellas aplicaciones donde tengamos muchos forms y sólo deseemos
cerrar el actual, dejando la ventana principal abierta, es conveniente utilizar la instrucción
Me.Close()
10. Procedamos Entonces a agregar el código del botón cmdGuardar (Evento Click( )). Es
importante resaltar que en este procedimiento, se conectará con la tabla alumnos de la base
de datos previamente creada. (sistema.accdb).
If condición then
Instrucciones
Else
Instrucciones
End if
La condición se evalúa y si resulta verdadera, se ejecuta el primer bloque de instrucciones (el
que está antes del Else). De lo contrario, (es decir, si la condición es falsa, se ejecuta el
segundo bloque. También debe estar consciente de que el bloque Else es opcional
dependiendo del caso y en cualquier momento puede ejecutar Exit Sub para salir de ese
procedimiento sin continuar ejecutando el resto de las instrucciones.
Botones: Uno de los valores MessageBoxButtons que especifica qué botones se mostrarán en el
cuadro de mensaje.
Icono: Valor que indica el icono a mostrar en el cuadro. Corresponde con uno de los valores de
la colección MessageBoxIcon Los valores permitidos por MessageBoxIcon son los siguientes:
Valor Descripción
Asterisk El cuadro de mensaje está compuesto por un símbolo que consiste en un letra 'i'
minúscula en un círculo.
Error El cuadro de mensaje está compuesto por un símbolo que consiste en una X
blanca en un círculo con fondo rojo.
Exclamation El cuadro de mensaje está compuesto por un símbolo que consiste en un signo
de exclamación en un triángulo con fondo amarillo.
Hand El cuadro de mensaje está compuesto por un símbolo que consiste en una X
blanca en un círculo con fondo rojo.
Information El cuadro de mensaje está compuesto por un símbolo que consiste en un letra 'i'
minúscula en un círculo.
Question El cuadro de mensaje está compuesto por un símbolo que consiste en un signo
de interrogación en un círculo.
Stop El cuadro de mensaje está compuesto por un símbolo que consiste en una X
blanca en un círculo con fondo rojo.
Warning El cuadro de mensaje está compuesto por un símbolo que consiste en un signo
de exclamación en un triángulo con fondo amarillo.
Valor Descripción
En este caso, el objeto db (que es una conexión de ADO), ejecuta la instrucción “DELETE *
FROM alumnos” que le hemos pasado como parámetro. También puede utilizarse con otras
instrucciones como INSERT INTO y UPDATE.
Así mismo, debemos conocer algunos métodos sobre el objeto recordset (en nuestro caso, la
variable se llama lrst).
lrst.open(), crea una nueva colección de registros en la memoria (recordset). Para abrirlo con
el open, se le debe pasar una instrucción SELECT de SQL. Su sintaxis general es como sigue:
El parámetro cadenaSQL indica una instrucción SELECT de SQL la cual permitirá abrir un
conjunto de registros de la(s) tabla(s) especificadas.
La variable conexión no es más que una variable tipo objeto que hace referencia a nuestra
conexión de ADO.NET (la que hemos declarado como pública en nuestro formulario).
Para mayor información, consulte la ayuda de Visual Stuio.NET 2010. Las constantes descritas
anteriormente, pertenecen a la colección de objetos ADODB.CursorTypeEnum.
El ejemplo anterior corresponde al bloqueo Optimista, es decir, sólo se bloquea el registro que
se está utilizando en ese momento y no se bloquea la totalidad de la tabla.
Por su parte, existe el bloqueo Pesimista que no es más que el bloqueo de toda la tabla para
evitar que otros usuarios puedan acceder a ella mientras nosotros la estamos utilizando. Esta
opción no es práctica en entornos multiusuario y debe utilizarse con cuidado. Para activar el
bloqueo optimista o pesimista, utilizamos las constantes adLockOptimistic y
adLockPessimistic respectivamente.
Existen otros modos de bloqueo que pueden ser revisados en la documentación de Visual
Studio.NET 2010 y pertenecen a la colección de objetos ADODB.LockTypeEnum.
lrst.addnew() agrega un nuevo registro en blanco al final de la tabla, el cual, esperará que se
genere un update() para actualizar los cambios físicamente.
lrst.update() realiza los cambios físicamente en la tabla. Si ha indicado previamente un
addnew() se creará un nuevo registro, pero si no lo hace, se asumirá una modificación.
Para revisar mayor documentación sobre la propiedad CursorLocation del objeto Recordset,
revise la documentación de Visual Studio.NET 2010.
lrst.Fields.Item("campo").Value se utilize para “capturer”, (leer o escribir) el valor que tiene en ese
momento el campo de la tabla. Entonces, si queremos que el campo nombre de nuestra tabla
alumnos reciba el valor que tiene el objeto txtCedula.Text, debemos escribir:
lrst.Fields.Item("nombre").Value = Trim(Me.txtNombre.Text)
El nombre del campo debe ir entre comillas y podríamos utilizar el índice numérico del campo en la
tabla, pero no es muy recomendable; así, lo que el usuario haya ingresado en el cuadro de texto
txtNombre (específicamente en la propiedad Text), se le asignará al campo “nombre” del
recordset que tenemos previamente abierto en la memoria.
Es importante tomar en cuenta la función Trim() cuya función es eliminar los espacios en blanco del
valor de una variable tipo cadena. En este caso, si guardamos el valor “ALFREDO “ dentro del
objeto txtNombre (específicamente en la propiedad Text), se guardará la cadena completa
incluyendo los espacios en blanco; pero si utilizamos Trim(Me.txtNombre.Text) y previamente
hemos incluido el valor con espacios, sólo se guardará la cadena como tal y se ignorarán todos los
“blancos” que existan.
Bien, ahora es el momento de escribir el código del botón cmdGuardar, evento Click(..)
Entonces, es poco lo que habría que acotar sobre el procedimiento de guardar. Primeramente,
se declara una variable tipo recordset (local) para abrir la tabla alumnos y se le establece que
el cursor se abre en el equipo cliente (ya este punto se ha abordado anteriormente). Luego, se
verifica que los cuadros de texto tengan algún valor ingresado en su propiedad text. De no ser
así, se emite un mensaje de error. Nótese el uso del operador lógico OR, ya que se leería
como: “Si el nombre, o el apellido, o la cédula, etc, están en blanco, hacer esto…”. Si existe
error en el ingreso de los valores requeridos, se muestra un error y no continua ejecutando el
procedimiento. Nótese el Exit Sub.
Luego, se procede a la creación del registro y para ello, utilizamos el método addnew() del
recordset. Procedemos a asignarle los valores de los textboxes a cada campo de dicho
recordset como se ha explicado anteriormente y al final disparamos un update() para que los
cambios se realicen físicamente. Por último, mostramos un mensaje informando que se ha
guardado correctamente; cerramos el recordset con el close() e invocamos al evento click()
del botón cancelar con el único objetivo de volver a todos los objetos del formulario a su estado
inicial.
11. Ahora, haga doble click sobre el botón cmdEliminar (evento Click()) y agregue el
siguiente código…
Dim lrst As New ADODB.Recordset
Dim lsql As String
lrst.CursorLocation = ADODB.CursorLocationEnum.adUseClient
12. Es el turno del botón cmdBuscar, evento click(..). Hagamos doble clic sobre este botón y
agreguemos el siguiente código:
Dim lsValor As String
Dim lrst As New ADODB.Recordset
Dim lsql As String
lrst.CursorLocation = ADODB.CursorLocationEnum.adUseClient
lsValor = InputBox("Ingrese la cédula a buscar: ", "Búsqueda de Registros")
If Trim(lsValor) = "" Then
MessageBox.Show("No se ha ingresado la cédula a buscar", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
Cabe destacar que para mostrar el valor de cada campo en los cuadros de texto
correspondientes, se utiliza la siguiente estructura:
Me.txtCedula.Text = Trim(lrst.Fields.Item("cedula").Value)
Lo que se hace aquí es leer el valor del campo en el recordset y luego pasárselo al cuadro de
texto correspondiente.
En este apartado estudiaremos la manera de crear menús en Visual Basic.NET. Para ello, es
necesario que agreguemos otro formulario.
8. Escriba el título del menú. En este caso, “Archivo”. Note que este no es el nombre del
objeto “menú” y en VB.NET todos los ítems del mismo deben tener un nombre asociado.
Entonces, el mismo entorno de VB le asignará nombres automáticamente (aunque los
podemos cambiar según nuestra conveniencia). Por ejemplo, en este primer ítem, si vamos a la
propiedad Name en la ventana propiedades, encontraremos que se llama
ArchivoToolStripMenuItem.
9. Una vez que hemos ingresado el ítem “Archivo” dentro del menú, hay que agregar los
ítems que conformarán la lista de opciones de este menú. Para ello, clickeamos en el recuadro
que aparece justo debajo de “Archivo” que también podemos editar y escribamos la palabra
“Alumnos”, y luego, agregamos otro ítem con el texto “Profesores” y “Salir”, quedando tal
como se muestra en la siguiente figura:
13. Agregue la siguiente línea de código en el procedimiento Click() del Item “Alumnos”
frmAlumnos.Show()
Este permitirá mostrar el formulario frmAlumnos que hemos creado previamente. Esa es la
función del método Show() de los formularios.
14. Ahora, presione CTRL+F4 para cerrar la ventana código y haga doble clic sobre el ítem
Salir del menú Archivo. Allí se abrirá el procedimiento Click() de este elemento de menú.
Agregue el siguiente código:
Application.Exit()
Este permitirá Salir de la aplicación, no sólo descargará el formulario actual de la memoria, sino
la aplicación completa.
15. Ahora, vaya al menú de VB.NET y ubique la opción Proyecto y luego Propiedades del
Sistema. Allí debemos establecer que nuestro formulario inicial ahora es frmMain.
16. En la ventana que aparece como propiedades del sistema, buscamos la opción
Formulario de Inicio y seleccionamos frmMain. Luego, damos CTRL+F4 y se guardarán los
cambios realizados.
Existen muchas otras opciones relacionadas con la gestión de menús, pero no serán
abordadas por razones de tiempo. Puede revisar en detalle la ayuda de VB:NET 2010 para
aclarar sus dudas.
REPORTES EN VB.NET
Un reporte es un documento impreso, por pantalla o guardado como archivo que representa
resultados del procesamiento de información de manera organizada a través de listados de
registros agrupados o no, con gráficos, cálculos y demás elementos de información.
En Visual Basic.NET se pueden agregar reportes a una aplicación. En este caso, crearemos el
Listado de Alumnos.
14. Ahora, se nos preguntará si deseamos guardar la conexión. Para ello, tildamos la casilla de
verificación y presionamos Siguiente
15. En este momento, debemos seleccionar la tabla alumnos que vincularemos al reporte y al
mismo tiempo, tenemos que guardar el DataSet. El DataSet es el conjunto de datos asociado al
informe que proviene de la(s) tabla(s) que hayamos seleccionado.
16. Para seleccionar la tabla alumnos
debemos clickear sobre el signo “+”
que está al lado de la categoría tablas
y luego aparece propiamente
alumnos. Luego, clickeamos en
Finalizar.
24. En este momento ya hemos diseñado el informe y el paso siguiente, es mostrarlo desde un
ítem de menú. Para ello, debemos crear un nuevo formulario. Recordemos que para hacerlo,
clickeamos en el menú Proyecto de Visual Basic y seleccionamos Agregar Nuevo Elemento.
26. Vamos a la propiedad Name del nuevo formulario y verifiquemos que el nombre se ha
especificado a frmReporte
27. El paso siguiente es insertar un objeto ReportViewer dentro del formulario. Para ello,
vamos al cuadro de controles y buscamos el grupo Informe para luego, hacer doble click
sobre el objeto ReportViewer. Nuestro formulario quedará así:
30. Es un buen momento para guardar los cambios. Así mismo, vaya al formulario frmMain,
específicamente al ítem de menú Listado de Alumnos y haga doble clic sobre él para agregar
el código para mostrar el reporte.
Las cuadrículas son objetos muy importantes en Visual Basic y en cualquier lenguaje de
programación, ya que permiten mostrar una serie de registros de manera integral, al punto que
pueden responder a una serie de criterios indicados por el usuario. En VB.NET la plataforma
ADO.NET (que se utiliza para manipular datos), provee una herramienta o “clase” para utilizar
cuadrículas en las aplicaciones que desarrollamos. Esta se denomina DataGridView.
1. Agregue un nuevo formulario (vaya al menú Proyecto > Agregar Windows Forms) y
coloque el nombre frmConsulta.vb.
2. Vaya al cuadro de controles y busque la “clase” DataGridView que se encuentra dentro del
grupo Datos. Luego, inserte un objeto de este tipo haciendo doble clic sobre el icono del
DataGridView y su formulario quedará provisto de uno de ellos.
3. En este punto, observará un panel de tareas flotante como el que se muestra en la siguiente
figura:
8. Abra la ventana código (doble clic sobre el elemento Consulta de Alumnos) y allí escriba la
siguiente línea para mostrar el formulario frmConsulta.
frmConsulta.Show()
IMÁGENES EN VB.NET
5. Aparecerá el cuadro de diálogo Abrir donde ubicaremos una imagen y presionamos el botón
Aceptar
La compilación es el proceso mediante el cual, se convierte el código fuente (de alto nivel) en
código objeto (binario). Pero recordemos que en VS.NET existe un código intermedio que se
denomina MSIL (Microsoft Intermediate Language) que realmente es “interpretado por el .NET
framework. También debemos generar el archivo .exe (archivo ejecutable) a través del cual,
ejecutaremos nuestra aplicación.
Para ello, vamos al menú de Visual Studio Generar y luego, en la primera opción Generar
Sistema.
En la barra de estado nos indicará que está iniciando la generación del ejecutable y también
cuando ya ha finalizado.
Esta acción producirá un archivo .exe pero antes de seguir, debemos aprender una regla de
oro: Para correr un archivo .exe generado en VB.NET, es necesario que el equipo tenga
instalado el .NET Framework actualizado. En nuestro caso, la versión 4.0.30319
El empaquetado consiste en agrupar todos los archivos requeridos para que nuestra aplicación
corra en un equipo sin necesidad de tener el Visual Studio instalado. En otras palabras, crear
un programa de instalación, tal como cualquier aplicación que funcione bajo Windows. Para
ello, procedamos de la siguiente manera:
En este momento,
aparecerá la siguiente
pantalla:
7. En este
momento,
debemos
incluir los
archivos que
deseamos
distribuir.
Hacemos clic
en la
categoría Carpeta de la aplicación en el panel izquierdo y luego hacemos clic con el botón
derecho sobre esta categoría, desplegando entonces los menús contextuales, así:
10. Ahora,
indiquemos al
instalador que debe
crear un acceso
directo en el menú
inicio para nuestro
producto. Para ello,
hacemos lo
siguiente:
11. Ahora, vayamos a la categoría Menú Programas del Usuario y cambiamos la propiedad
AlwaysCreate a True. Al mismo tiempo, hacemos clic derecho sobre el área blanca de la
derecha y luego en Crear Acceso Directo. Cuidemos de haber seleccionado previamente la
categoría Menú Programas del Usuario, tal como se muestra en la figura:
12. Aparecerá un cuadro de diálogo donde debemos buscar el archivo .exe al cual apuntará el
acceso directo, así
Date 8 bytes 0:00:00 (medianoche) del 1 de enero de 0001 a 11:59:59 p.m. del 31 de
diciembre de 9999.
8 bytes en
plataforma de 64 bits
†
En la notación científica, "E" hace referencia a una potencia de 10. Por lo tanto, 3,56E+2 significa 3.56 x 102 o 356, y
3,56E-2 significa 3.56 / 102 o 0,0356.