Visual Basic

47
Visual Basic es un lenguaje de programación ; sirve para crear programas o aplicaciones. Un lenguaje de programación está formado por un conjunto de sentencias (entendidas por los humanos) que representan órdenes dadas a la computadora. Generalmente, cada sentencia equivale a muchas órdenes o instrucciones que debe llevar a cabo la máquina. Microsoft Visual Basic es una herramienta de programación para el entorno de Windows. El lenguaje Visual Basic es utilizado en otras aplicaciones, como por ejemplo Microsoft Excel, Microsoft Word, Microsoft Access, con el objeto de automatizar las tareas rutinarias. Por lo tanto, al conocer la forma de programar en Visual Basic, podrá crear macros (en este lenguaje) en todas las aplicaciones nombradas anteriormente y obtener así mayor rapidez y eficiencia en sus tareas habituales. Los pasos a seguir para programar con Visual Basic son: 1. diseñar los formularios (ventanas) con los que va a interactuar el usuario. 2. agregar los objetos y definir las propiedades de cada uno de ellos. 3. establecer los eventos a los que va a responder el programa y escribir el código correspondiente ( por ejemplo, definir cómo va a responder un botón cuando el usuario haga un doble clic ) Una aplicación de Visual BASIC puede estar formada por cinco clases de archivos: • Módulos de formularios (.frm) • Módulos estándar (.bas) • Módulos de clase (.cls) • Ficheros binarios (.frx) • Ficheros de recursos (.res)

Transcript of Visual Basic

Page 1: Visual Basic

Visual Basic es un lenguaje de programación; sirve para crear

programas o aplicaciones. Un lenguaje de programación está formado por un conjunto de sentencias (entendidas por los humanos) que representan órdenes dadas a la computadora. Generalmente, cada sentencia equivale a muchas órdenes o instrucciones que debe llevar a cabo la máquina. 

Microsoft Visual Basic es una herramienta de programación para el

entorno de Windows. El lenguaje Visual Basic es utilizado en otras aplicaciones, como por ejemplo Microsoft Excel, Microsoft Word, Microsoft Access, con el objeto de automatizar las tareas rutinarias. Por lo tanto, al conocer la forma de programar en Visual Basic, podrá crear macros (en este lenguaje) en todas las aplicaciones nombradas anteriormente y obtener así mayor rapidez y eficiencia en sus tareas habituales. Los pasos a seguir para programar con Visual Basic son: 1. diseñar los formularios (ventanas) con los que va a interactuar el usuario. 2. agregar los objetos y definir las propiedades de cada uno de ellos. 3. establecer los eventos a los que va a responder el programa y escribir el código correspondiente ( por ejemplo, definir cómo va a responder un

botón cuando el usuario haga un doble clic) 

Una aplicación de Visual BASIC puede estar formada por cinco clases de archivos: • Módulos de formularios (.frm) • Módulos estándar (.bas) • Módulos de clase (.cls) • Ficheros binarios (.frx) • Ficheros de recursos (.res) Un módulo correspondiente a un formulario es un fichero que contiene objetos gráficos, llamados controles, más código; mientras que un módulo estándar o un módulo correspondiente a una clase sólo contiene código. 

Los ficheros binarios contienen los datos binarios de un formulario; por

ejemplo, algunos controles tienen propiedades cuyos valores son datos binarios, como Picture. Un fichero de recursos permite agrupar todo el texto y los mapas de bits específicos de una aplicación; puede incluir declaraciones de constantes, iconos, texto de pantalla y otros elementos que pueden variar entre versiones traducidas o entre revisiones o configuraciones específicas. La lista de ficheros que componen la aplicación junto con las opciones (el

Page 2: Visual Basic

conjunto de opciones se puede ver ejecutando la orden Opciones del menú Herramientas ) es guardada en un archivo de proyecto con extensión .vbp cada vez que se guarda la aplicación o proyecto. Así mismo, el espacio de trabajo del proyecto Visual Basic se guarda en un archivo con extensión .vbw. 

Terminología utilizada • VENTANAS = OBJETOS Los programas para Windows están constituidos por ventanas. Las ventanas son objetos. Visual Basic trabaja con objetos. Todos los elementos con los que vamos a trabajar para desarrollar un programa en Visual Basic son objetos y cada uno de ellos tiene características y comportamientos propios y específicos. 

TIPOS DE OBJETOS Existen muchos tipos de objetos con los que trabaja Visual Basic, entre ellos podemos hablar de los formularios y controles. Un formulario es una ventana mediante la cual los usuarios interactúan con la aplicación. En dicha ventana depositaremos los controles necesarios para crear nuestra interfaz con el usuario de la aplicación. La finalidad principal de un formulario es agrupar una serie de controles por medio de los cuales poder presentar y solicitar información al usuario. Los controles son todos los objetos que se colocan en los formularios, mediante los cuales se realizan las acciones. A través de los controles se pueden escribir y recibir texto (etiquetas y cajas de texto), usar botones de comando, insertar o manipular imágenes, utilizar cuadros de diálogo, etc. 

Proyecto Un proyecto es un conjunto de formularios, conteniendo controles, objetos, las propiedades de esos objetos y el código Visual Basic de programación. Es decir que en un proyecto se encuentran enlazados todos los componentes que Visual Basic utiliza para desarrollar un programa. Cada uno de los formularios contenidos en el proyecto se almacena separadamente, en un archivo que tendrá el nombre del formulario y la extensión .FRM. En dicho archivo se define la posición y dimensiones del formulario y de cada uno de los controles que éste contiene, así como el código de los métodos para aquellos eventos a los que se responderá. 

Page 3: Visual Basic

Métodos Los métodos son funciones propias de cada objeto. Así como las propiedades afectan cómo son los objetos, los métodos ejecutan acciones propias del mismo. Los métodos afectan el comportamiento de los objetos de un programa, y solamente se los utiliza en tiempo de ejecución. Por ejemplo, los formularios poseen un método llamado Show que se encarga de mostrarlos por pantalla. 

Eventos Un evento es una acción reconocida por un objeto (formulario o control). El evento puede ser causado por el usuario (por ejemplo :cuando pulsa una tecla), por el sistema (por ejemplo: transcurrió un determinado tiempo), o indirectamente por el código ( por ejemplo: cuando el código carga un formulario se da el evento Load ). Los eventos son sucesos a los que debe responder el programa. En una aplicación se pueden producir muchos eventos generados por el usuario, o incluso el mismo programa puede generar otros eventos. En Visual Basic, cada formulario y cada control tienen predefinido un conjunto de eventos. Cuando ocurre uno de estos eventos, Visual Basic invoca al procedimiento del objeto que responde a ese evento. Los eventos más importantes que son comunes a varios controles son: 

Evento -------------- Se produce cuando ... Change ------------ el usuario modifica el estado de un control Click ----------------- el usuario pulsa un objeto con el botón primario del mouse DblClick ------------ Se pulsa dos veces un objeto con el botón primario del mouse DragDrop --------- El usuario arrastra un control hacia una nueva ubicación DragOver --------- Un objeto se arrastra sobre un control GotFocus --------- Un objeto recibe el foco KeyDown --------- Se pulsa una tecla mientras un objeto tiene el foco KeyPress ---------- Se pulsa y se suelta una tecla mientras un objeto tiene el foco KeyUp ------------- Se suelta una tecla mientras un objeto tiene el foco Load --------------- Se carga un objeto en memoria LostFocus -------- Un objeto perdió el foco MouseDown ----- Se pulsó un botón del mouse sobre un objeto MouseMove ------ Se movió el cursor del mouse sobre un objeto 

Page 4: Visual Basic

MouseUp --------- Se soltó un botón del mouse sobre un objeto Unload ------------ Se descarga un objeto de memoria 

Cada evento tiene un procedimiento en donde escribir el código necesario. El nombre de este procedimiento está dado por el nombre del objeto, seguido de un guión bajo y el nombre del evento y unos paréntesis. Dentro de los paréntesis se indican los parámetros, si es que el evento tiene alguno. Por ejemplo, los botones de comando tienen un evento llamado Click, que se dispara cada vez que el usuario hace clic del mouse sobre el mismo. El evento MouseMove tiene parámetros, su sintaxis es la siguiente: 

Private Sub Form_MouseMove( Button as Integer, Shift as Integer, X as Single, Y as Single) End Sub 

Esto hace que desde el procedimiento sea posible conocer qué botón generó el evento ( variable Button) , si estaba el Shift pulsado ( variable Shift) , y las ccordenadas X e Y

donde se presionó el botón del mouse. 

Inserción de comentarios Podemos insertar un comentario en cualquier línea, incluso si en ella existe ya alguna sentencia, utilizando el carácter ‘ (apóstrofe). Cualquier texto que aparezca escrito detrás de este carácter, hasta el final de la línea, es tomado como comentario y no será procesado por Visual Basic. 

Uso de colores en el código Visual Basic utiliza distintos colores para diferenciar distintas partes de un código, utiliza el color azul para palabras reservadas como la palabra Dim, If ...then ...else...endif, para definir el nombre de una variable, realizar asignaciones,... utiliza el color negro, una línea conteniendo un error aparecerá en rojo, la línea de comentario aparecerá en verde. Estos colores están predeterminados por Visual Basic, pero es posible modificarlos por medio de la opción Opciones del menú Herramientas, además se podrá cambiar el tipo de letra, el tamaño, etc. 

Formulario Por defecto el título del formulario es Form1, al igual que su nombre. Estos dos términos, título y nombre, son fáciles de son confundir. La

Page 5: Visual Basic

mayoría de los controles tienen un título, que podemos obtener y modificar por medio de la propiedad Caption, que no es más que el texto que aparece en el control, y no tiene ninguna correspondencia ni referencia en el código de la aplicación. El nombre del control o formulario, sí es referenciado en el código cada vez que se quiere manipular ese objeto. El nombre de un control, que se establece durante el diseño de la aplicación, no será modificado posteriormente, y se utilizará tanto para acceder a las propiedades de ese objeto como para realizar cualquier otro tipo de operación con él. La propiedad correspondiente al nombre del objeto es Name. 

Funciones y procedimientos Un procedimiento es un conjunto de líneas de código al que se da un nombre, que se utiliza posteriormente para ejecutar este código. La misma definición es válida para una función, con la única diferencia de que ésta devuelve un valor al finalizar su ejecución, mientras que un procedimiento no. 

Tipos de datos Visual Basic dispone de distintos tipos de datos, analizaremos la siguiente tabla: 

TIPO --- Requisitos de memoria ----- Valores que puede contener... Boolean ---- 0bytes -------------------- True o False Byte--------- 1bytes -------------------- Números enteros ( en el rango de 0 a 255) Integer ---- 2bytes -------------------- Números enteros ( en el rango de -32768 a 32767) Long ------- 4bytes -------------------- Números enteros ( en el rango de -2147483648 a 2147483647) Single ------ 4bytes -------------------- Números decimales Double ---- 8bytes -------------------- Números decimales Currency -- 8bytes -------------------- Números grandes String ------ 1byte por caracter ---- Cadena de caracteres Date ------- 8bytes --------------------- Fechas y horas Object ----- 4bytes --------------------- Instancia de clases u objetos Variant ----- 16bytes ------------------- Cualquier tipo de dato 

El tipo de dato Boolean (Lógicos) puede contener sólo dos valores posibles: True ( verdadero) o False(falso). El valor True corresponde con el entero 1 y False con el valor cero. 

Page 6: Visual Basic

El tipo Byte es adecuado para contener cualquier número entero que no sea negativo ni mayor que 255. El tipo Integer (Enteros) es el tipo más utilizado, ya que nos permite trabajar con números enteros, tanto negativos como positivos. El tipo Long (Enteros largos) nos permite trabajar con cualquier números enteros, tanto negativos como positivos, con un mayor número de dígitos que las variables de tipo Integer. Los tipos Single (Reales simples) y Double (Reales dobles) son los que nos permiten utilizar números en punto flotante, lo que significa que la coma decimal no tiene una posición predeterminada, sino que puede estar en cualquier lugar donde sea necesario. El tipo Currency (Moneda) se caracteriza por trabajar con números con parte decimal fija, tiene cuatro dígitos decimales. El tipo String ( Cadena de caracteres) genera una cadena de longitud variable de caracteres. El tipo Date nos permite almacenar fechas y horas, desde el 1 de Enero del año 100 hasta el 31 de Diciembre del año 9999. En realidad la representación interna de una variable de este tipo es la de un número en coma flotante, en el que la parte entera contiene la fecha y la parte decimal la hora. El tipo Object es capaz de contener una referencia a cualquier objeto de la aplicación, por ejemplo un formulario o un componente OLE. Una variable Variant es capaz de contener cualquier tipo de dato, un número, una cadena, una fecha, incluso una matriz, cambiando de uno a otro de acuerdo a las necesidades de la operación. 

Variables Una variable es una posición de memoria con nombre. El nombre de la posición es el identificador de la variable; el valor almacenado en la posición se llama contenido. Las variables deben definirse, declararse con la sentencia DIM, seguida del nombre de la variable, la palabra As y el tipo de variable. El valor por defecto que se inicializa una variable depende de su tipo. Si la variable es numérica, indistintamente de que sea entera o decimal y de su precisión, el valor inicial es cero. Si la variable es de tipo String, dicha cadena será una cadena vacía. Si la variable es de tipo Date, la fecha será el día 0 del mes 0 del año 0. Si la variable es de tipo Boolean se inicializa con el valor False. Si la variable es de tipo Variant, el valor inicial será Empty. Variant es el tipo por defecto para todas las variables, a no ser que se indique lo contrario. Un nombre de variable debe comenzar con una letra, y estar seguido de hasta 39 caracteres más, que pueden ser dígitos, letras y el carácter de subrayado. Visual Basic no diferencia entre mayúsculas y minúsculas. Visual Basic permite añadir al final del nombre de una variable, así como

Page 7: Visual Basic

al final de una constante, un carácter que hace referencia al tipo de dato. Es posible declarar una variable prescindiendo del As tipo, utilizando estos caracteres. 

Dim Dato as Integer es lo mismo que escribir Dim Dato% 

Módulos de Visual Basic El código de una aplicación Visual Basic se edita en módulos. Los módulos tienen incorporadas funciones automáticas de formato y comprobación de sintaxis. Hay tres tipos de módulos: de formulario, estándar y de clase. Módulo de formulario Es un archivo con extensión .frm que puede contener descripciones gráficas de un formulario, sus controles y sus valores de propiedades, declaraciones de constantes, variables y procedimientos externos a nivel del formulario., así como procedimientos conducidos por eventos y procedimientos generales. Módulo estándar Es un archivo de extensión .bas que solo contiene declaraciones y definiciones de procedimientos, tipos y datos a los que tienen acceso otros módulos de la aplicación. Módulo de clase Es un archivo con extensión .cls que contiene la definición de una clase de objetos; esto es, la definición de cada una de sus propiedades y métodos. 

Ambito de las variables Se entiende por ámbito o alcance de una variable al espacio de la aplicación donde la variable es visible y por lo tanto se puede utilizar. A continuación se indican los lugares donde se puede declarar una variable: 

-Variables utilizadas por todos los módulos (declaración Public en cualquier módulo) -Módulo (formulario, mód. estándar o clase) -Variables utilizadas dentro del módulo (declaración Dim o Private en el módulo) -Procedimientos: Variables locales (Dim o Static) - Variables locales (Dim o Static) 

Page 8: Visual Basic

La tabla siguiente resume cómo debe declararse una variable en función del espacio donde deseamos que sea visible: 

Ambito Declaración Local Dim o Static (dentro de un procedimiento) Módulo Dim o Private (sección de declaraciones del módulo: sección General) Global Public (sección de declaraciones de un módulo) 

A nivel del módulo, no hay diferencias entre Dim y Private, pero se aconseja utilizar Private en contraste con Public. En un procedimiento no tiene lugar esta observación,

ya que no se puede utilizar Public. 

Variables locales Una variable local se reconoce solamente en el procedimiento en el que está definida. Fuera de ese procedimiento, la variable no es conocida. Una variable local es reiniciada cada vez que se entra en el procedimiento. Una variable local no conserva su valor entre una llamada al procedimiento y la siguiente. Sin embargo esto se puede modificar mediante la sentencia Static, hay que declarar la variable estática. Visual Basic inicia una variable estática solamente la primera vez que se llama al procedimiento y se destruye sólo cuando la aplicación termina. Para declarar una variable estática, utilice la palabra clave Static en lugar de Dim. 

Variables globales Las variables globales son aquellas que pueden ser utilizadas desde cualquier punto de la aplicación, sin importar el módulo en el que esté el procedimiento que acceda a ella. Sólo es posible declarar una variable global a nivel de módulo, es decir, fuera de cualquier procedimiento o función utilizando la sentencia Public, seguida del nombre de la variable, la palabra As y el tipo de variable. Si se intenta declarar una variable global en el interior de una función o un procedimiento obtendrá un error durante la compilación de la aplicación, no podrá siquiera llegar a ejecutarla. El tiempo de vida de una variable global comienza en el mismo momento en el que se carga la aplicación, y no muere hasta que ésta termina. 

Constantes, Variables y Expresiones Las variables pueden ser globales, accesibles desde cualquier punto, públicas en un módulo, accesibles desde los métodos y funciones

Page 9: Visual Basic

contenidas en un módulo de código, o privadas, accesibles tan sólo en el ámbito en que se ha declarado. Es una práctica común que todas las variables que se utilizan en métodos y funciones sean privadas, evitando así que puedan ser manipuladas desde cualquier código externo. Este tipo de variables son creadas automáticamente cada vez que se ejecuta el procedimiento o función, y destruirlas cuando este termine. Este hecho, por otra parte, reduce el consumo global de memoria, ya que la mayor parte de las variables existen tan sólo mientras se está ejecutando la porción de código en la que se declaran, y la memoria que ocupan se libera al salir. Una constante es una posición de memoria con nombre. El nombre de la posición es el identificador de la constante; el valor almacenado en la posición se llama contenido y no puede cambiar a lo largo de la ejecución de la aplicación. Las constantes también deben ser declaradas con la sentencia CONST, seguida del nombre de la constante, la palabra As y el tipo de constante, el signo = y el valor asignado. Ejemplo: Const MATERIA as String = “computación” 

Para poder usar Visual Basic 2010, sigan estas instrucciones: 

Page 10: Visual Basic

El que les muestro en pantalla es el VB Professional 2010, pero no

importa el Express servirá de la misma manera para lo que lo

utilizaremos. 

La primera aplicación que aremos es una aplicación que nos mostrara un mensaje. 

Paso 1 

Necesitaremos colocar un Textbox y un Botón. Los encontraras en la

Page 11: Visual Basic

parte Izquierda de la pantalla. 

 

Lo siguiente es darle el nombre al botón. Irán a la parte inferior derecha, en las propiedades, buscaran donde dice Text. Y le cambiaran el nombre. 

Ahora le daremos Double-Click al botón que colocamos y nos saldra una pantalla algo asi: 

Paso 2 

Ahora nombraremos una Variable, como habia mencionado en el primer tutorial, debemos darle un nombre significativo a la variable. Para nombrar una Variable en Visual Basic utilizaremos Dim le sigue el

Page 12: Visual Basic

nombre de la variable, que en mi caso le dire "Palabra" y le sigue el Tipo de dato que para la necesidad del programa, sera String, y en Visual Basic es As String ya que estamos utilizando palabras para la salida. 

Paso 3 

Despues de nombrar la Variable, le colocaremos a la variable un Valor. Para eso escribimos el nombre de la variable escribimos el signo de igualdad (=) y ya como es String el valor sera puesto entre Comillas ( "" ) En mi caso le puse "Este es el primer Tutorial de Programación", Coloquenle lo que deseen. 

Paso 4 

Es la salida, ya que pusimos un Textbox y ahi es donde saldra el mansaje, escribiremos el nombre del Textbox, seguido de .Text y seguido del signo de igualdad (=) y despues el nombre de la variable. 

Page 13: Visual Basic

Un resumen de lo que isimos: 1) Colocamos un Botón y un Textbox en la interface 2) Fuimos al área de programación 3) Nombramos la variable utilizando (Dim "El nombre de la variable" As String) 4) Le dimos un Valor a la Variable Colocando ("El nombre de la Variable" = "El valor deseado" ) 5) Escribimos el (Nombre del Textbox seguido de .Text el Signo de igualdad (=) y "El nombre de la variable") 

Ahora el Ultimo paso es probarlo, Le daremos al Símbolo verde en

la parte Superior. 

 

Rellenar un DataGridViewEn este ejemplo se muestra como rellenar un DataGridView, a partir de una tabla, sin haber creado con anterioridad las columnas.

Se parte de un formulario en el que se incluye un DataGridView, sin configurar ninguna columna.

Tanto las columnas como las filas serán anexadas mediante código.

Page 14: Visual Basic

El resultado final será un DataGridView, que contendrá todas las columnas que devuelva la consulta a la base de datos. Incluyendo la posibilidad de añadir otras mediante código.

ACLARACIÓN:

En el caso de conocer cuantas columnas nos devolverá la consulta se pueden añadir de una en una con la instrucción DataGridView1.Columns.Add, pasandole como parámetro el nombre de cada columna, y el texto que aparecerá en la cabecera de la misma.Suele ser habitual que ambos sean iguales, aunque no es imprescindible.

Con esto se puede recuperar el nombre de la tabla:DataGridView1.Columns.Add(lector.GetName(0), lector.GetName(0))

O también se puede asignar el nombre que se desee:DataGridView1.Columns.Add("Nombre columna", "Texto Cabecera Columna")

En caso de no conocer cuantas columnas devolverá la consulta, es posible realizar un bucle que añada columnas hasta alcanzar el valor indicado por el lector, en la propiedad FieldCount.

For i As Integer = 0 To lector.FieldCount - 1      DataGridView1.Columns.Add(lector.GetName(i), lector.GetName(i))

Page 15: Visual Basic

Next

En cuanto al proceso de rellenar las filas se pueden añadir como se mostró en el ejemplo anterior o utilizando una tabla de cadenas de caracteres.En el detalla se muestra esta solución:

 DataGridView1.Columns.Add("Importe", "Importe")        Dim tabla_cadenas(lector.FieldCount) As String        While lector.Read()            'Se añade una fila al grid con un string por cada columna            For j As Integer = 0 To lector.FieldCount - 1                tabla_cadenas(j) = lector.GetValue(j).ToString            Next            DataGridView1.Rows.Add(tabla_cadenas)        End While

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Ejemplo de código- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

'1 - Importar espacio de nombresImports System.Data.OleDb

Public Class Form5

    Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        '2 - crear conexion        Dim conexion As New OleDbConnection

        '3 - cadena de conexion        conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\factura_cliente.accdb;Persist Security Info=False;"

        '4 - abrir conexion        conexion.Open()

Page 16: Visual Basic

        '5 - crear la sentencia SQL        Dim comando_SQL As New OleDbCommand("SELECT * FROM Lineas_factura WHERE Numero_factura_fk = " & Form2.factura_numero, conexion)

        '6 - se crea el reader        Dim lector As OleDbDataReader = comando_SQL.ExecuteReader

        ' *****************************************************************        '7 - Mostrar valores del reader en el DataGridView        DataGridView1.Rows.Clear()        'DataGridView1.Columns(0).HeaderText = lector.GetName(0)        'DataGridView1.Columns.Add(lector.GetName(0), lector.GetName(0))        'DataGridView1.Columns.Add(lector.GetName(1), lector.GetName(1))        'DataGridView1.Columns.Add(lector.GetName(2), lector.GetName(2))        'DataGridView1.Columns.Add(lector.GetName(3), lector.GetName(3))        'DataGridView1.Columns.Add(lector.GetName(4), lector.GetName(4))

        'Otra opción de añadir columnas        For i As Integer = 0 To lector.FieldCount - 1            DataGridView1.Columns.Add(lector.GetName(i), lector.GetName(i))        Next

        DataGridView1.Columns.Add("Importe", "Importe")

        Dim tabla_cadenas(lector.FieldCount) As String

        While lector.Read()            'Se añade una fila al grid con un string por cada columna            'DataGridView1.Rows.Add(lector.GetValue(0), lector.GetValue(1), lector.GetValue(2), lector.GetValue(3), lector.GetValue(4))

            For j As Integer = 0 To lector.FieldCount - 1

Page 17: Visual Basic

                tabla_cadenas(j) = lector.GetValue(j).ToString            Next

            DataGridView1.Rows.Add(tabla_cadenas)

        End While

        'punto final cerrar conexion        conexion.Close()

        Dim total_factura As Single        Dim parcial_factura As Single

        'Se restan 2 a DataGridView1.Rows.Count para descartar la línea en blanco        For i As Integer = 0 To DataGridView1.Rows.Count - 2            parcial_factura = CSng(DataGridView1.Rows(i).Cells(3).Value) * CSng(DataGridView1.Rows(i).Cells(4).Value)            total_factura += parcial_factura            DataGridView1.Rows(i).Cells(5).Value = parcial_factura        Next

        '**********************************************************************

        TextBox1.Text = Form2.factura_numero        TextBox2.Text = Form2.factura_fecha        TextBox4.Text = Form1.codigo_cliente        TextBox5.Text = Form1.dato_Nombre_fiscal        TextBox6.Text = Form1.dato_Cif        TextBox7.Text = Form1.dato_Direccion        TextBox3.Text = Form1.dato_Nombre_comercial        TextBox5.Text = Form1.dato_Nombre_fiscal

        TextBox8.Text = total_factura.ToString    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Form6.Show()

Page 18: Visual Basic

    End SubEnd Class

Eliminar un registro de una base de datosEn este ejemplo se indica por una parte como leer y mostrar los datos de una tabla, de uno en uno.Para lo cual en vez de leer del DataReader mediante un bucle While, se ejecuta una lectura del DataReader por cada pulsación del botón.

'7 - Mostrar valores del reader        lector.Read()        'Se añaden datos a los textbox        TextBox1.Text = lector.GetValue(0).ToString        TextBox2.Text = lector.GetValue(1).ToString        TextBox3.Text = lector.GetValue(2).ToString        TextBox4.Text = lector.GetValue(3).ToString        TextBox5.Text = lector.GetValue(4).ToString

Por otro lado, se muestra como tratar el proceso de eliminación de un registro, intentando evitar que se eliminen datos accidentalmente, mostrando un MessageBox que solicita confirmación de la eliminación del registro, pero que tiene asignado por defecto el botón de cancelar, para evitar que una  pulsación errónea provoque la eliminación accidental de un registro.

MessageBox.Show("¿De verdad desea eliminar el cliente número " & TextBox1.Text & "?", "Eliminación de registro", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)

Page 19: Visual Basic

Por último se muestra como utilizar una consulta de eliminación.

Dim comando_SQL As New OleDbCommand("DELETE FROM Clientes WHERE Id_cliente = " & TextBox1.Text, conexion)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CÓDIGO- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

'1 - Importar espacio de nombresImports System.Data.OleDb

Public Class Form3

    Public lector As OleDbDataReader

Page 20: Visual Basic

    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '2 - crear conexion        Dim conexion As New OleDbConnection

        '3 - cadena de conexion        conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\factura_cliente.accdb;Persist Security Info=False;"

        '4 - abrir conexion        conexion.Open()

        '5 - crear la sentencia SQL        Dim comando_SQL As New OleDbCommand("SELECT * FROM Clientes ORDER BY Id_cliente", conexion)

        '6 - se crea el reader        lector = comando_SQL.ExecuteReader

        ' *****************************************************************        '7 - Mostrar valores del reader        lector.Read()        'Se añaden datos a los textbox        TextBox1.Text = lector.GetValue(0).ToString        TextBox2.Text = lector.GetValue(1).ToString        TextBox3.Text = lector.GetValue(2).ToString        TextBox4.Text = lector.GetValue(3).ToString        TextBox5.Text = lector.GetValue(4).ToString

        '**********************************************************************

        'punto final cerrar conexion        'conexion.Close()    End Sub

Page 21: Visual Basic

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        If lector.Read() Then            'Se añade una fila al grid con un string por cada columna            TextBox1.Text = lector.GetValue(0).ToString            TextBox2.Text = lector.GetValue(1).ToString            TextBox3.Text = lector.GetValue(2).ToString            TextBox4.Text = lector.GetValue(3).ToString            TextBox5.Text = lector.GetValue(4).ToString        Else            MessageBox.Show("Se han mostrado todos los registros")

        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        '2 - crear conexion        Dim conexion As New OleDbConnection

        '3 - cadena de conexion        conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\factura_cliente.accdb;Persist Security Info=False;"

        '4 - abrir conexion        conexion.Open()

        If MessageBox.Show("¿De verdad desea eliminar el cliente número " & TextBox1.Text & "?", "Eliminación de registro", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.OK Then            '5 - crear la sentencia SQL            Dim comando_SQL As New OleDbCommand("DELETE FROM

Page 22: Visual Basic

Clientes WHERE Id_cliente = " & TextBox1.Text, conexion)

            Dim total_datos_afectados As Integer            '6 - Se ejecuta la consulta            total_datos_afectados = comando_SQL.ExecuteNonQuery            MessageBox.Show("Se han eliminado correctamente " & total_datos_afectados & " registros.")        Else            MessageBox.Show("Eliminación cancelada.")

        End If

    End SubEnd Class

Page 23: Visual Basic

1 - Introducción

Todos los lenguajes utilizan este sistema o metodología para la programación de aplicaciones, pero varían la forma en que se utilizan, su sintaxis etc...

Cuando uno recién empieza a programar, parece muy complicado entender estos temas, pero con la práctica todo se va aclarando.

Lo bueno de comprender los fundamentos de la programación, es que nos permite luego poder programar en casi cualquier lenguaje, por que la forma de programar en general no varía demasiado, lo que cambia en cada uno de ellos es su sintaxis y funciones y cosas propias del lenguaje. Aunque tampoco es tan así, ya que esto no significa que por que uno sea experto por ejemplo programando en lenguaje C, lo sea en Visual Basic y Viceversa.

 

2 - Las Variables

Las variables, como su nombre lo indica, se utilizan para almacenar valores que tienen la propiedad de variar el contenido. Cuando hablamos de contenido nos referimos a cualquier tipo de datos, por ejemplo un nombre, una fecha, un color, un número etc... .

A las variables se les asigna un nombre para poder utilizarlas. Por ejemplo puedo crear una variable llamada fecha y esta almacenará una fecha. A los nombres de las variables se los denomina identificadores. Cuando creamos variables, tenemos que tratar de asignarles un nombre que se relacione con el tipo de dato que queremos almacenar. Por ejemplo no tendría mucho sentido crear una variable llamada m y allí guardar o almacenar un nombre o un apellido, por que cuando echemos vista al código resultaría mas difícil deducir que tipo de dato estoy guardando. Por ejemplo en este último caso sería mucho mas lógico crear una variable llamada “nombres” y allí guardar "Luciano", "Pedro", "Natalia" etc..

Page 24: Visual Basic

En visual basic a las variables conviene declararlas, o sea, avisarle a vb que vamos a utilizar dichas variables. A estas se las declara en el comienzo del código y se les antepone lapalabra reservada Dim, luego el nombre que nosotros queramos y seguido el tipo de dato que almacenará, por ejemplo si quiero almacenar en una variable llamada Numero

Dim numero As Integer

 

La palabra Integer le avisa a vsiaual basic que voy a guardar un número entero. Después de declararla le podemos asignar un valor con el operador "=", ejemplo:

Dim numero As Integer

numero = 1500

Pero hay que tener en cuenta que al declarar una variable, en este caso, de tipo integer, no podríamos almacenar en ella una cadena de caracteres como por ejemplo un nombre o cualquier otro tipo de datos que no sea un número entero. Si sucedería esto nuestro programa daría un error en tiempo de ejecución, mostrándonos un feo cartel diciéndoos que no coinciden los tipos de datos..

 

3 - Tipos de datos:

Los tipos de datos, indican el tipo de valor que puede almacenar una variable. Los principales tipos de datos:

Números enteros: dentro de los números enteros tenemos varios tipos de datos dependiendo el rango que queramos utilizar:

Byte: puede almacenar números enteros dentro del rango

desde 0 a 255

Page 25: Visual Basic

Integer: puede almacenar números enteros dentro del

rango -32.768 a 32.767

Long: puede almacenar números enteros dentro del rango

-2.147.483.648 hasta 2.147.483.648 .

Números decimales: para almacenar números decimales contamos con los siguientes tipos de datos:

Single: almacena números decimales en el rango +/- 1e-

45 hasta 3e38

Double: desde +/- 5e-324 hasta 1.8e308

Cadenas de caracteres: las cadenas de caracteres se definen con la palabra String y tienen un rango de hasta 2 billones de caracteres.

Tipos de valores lógicos: para almacenar tipos de valores lógicos como verdadero o falso, se utiliza la palabra Boolean y sus 2 posibles valores son True (verdadero) y False (falso).

Fechas y horas: Para almacenar fechas y horas se utiliza la palabra Date

Tipo variant : Las variables de este tipo pueden almacenar cualquier tipo de valor, pero ocupan mas memoria.

Nota: hay mas tipos de datos, incluso nosotros podemos crear los nuestros.

 

4 - Constantes:

Las constentes, como las variables, se utilizan para guardar datos y valores para nuestro programa, pero a diferencia de estas últimas (las variables), el contenido que almacenen no cambia, siempre es constante.

A diferencia de las variables que se declaran con la

Page 26: Visual Basic

palabra Dim, las Constantes se declaran con la palabra Const.

Ejemplo:

Const numero = 53

En la línea anterior he creado una constante, que la llamé numero y va a almacenar un número , y este valor, cuando se ejecute mi programa se mantendrá invariable.

 

Un ejemplo:

 

1 - En la siguiente línea se declaran 2 tipos de variables de tipo Integer llamadas num1 y num2. Luego se les asigna un valor a cada una y luego las sumamos, y mediante la función MsgBox que es una función de Visual Basic para mostrar mensajes, mostramos el resultado de esa suma.

Coloca un botón (CommandButton) llamado Command1. Hacé dobleClick sobre el botón para que se abra la ventana de código de Visual Basic. Dentro del procedimiento Click pega este código:

 

Dim num1 As IntegerDim num2 As Integer

num1 = 10num2 = 20

'se mostrará un mensaje con la suma de las variables con el resultado 30MsgBox num1 + num2

 

Page 27: Visual Basic

Al ejecutar el programa, podés ver como se presenta una caja de mensaje con el resultado al sumar las 2 variables num1 y num2

2 - Ahora vamos a declarar y crear 2 variables de tipo String, es decir vamos a almacenar cadenas de caracteres en cada una de ellas. En el ejemplo se crean 2 variables, una llamadanombre y otra apellido. Después le asignamos un valor, y por ultimo mostramos las variables con un mensaje usando la función MsgBox como en el ejemplo anterior. Pero antes hay que aclarar algo importante, las cadenas en visual basic se encierran entre comillas dobles como podés ver en el ejemplo, de lo contrario se va a producir un error.

Dim nombre As StringDim apellido As String'le establecemos valoresnombre = "Carlos"apellido = "Peres"

'mostramos un mensaje con el valor de las variablesMsgBox nombreMsgBox apellido

 

3 - Ahora un ejemplo que produce un error en tiempo de ejecución. Creamos 2 variables exactamente igual que en el ejemplo anterior, pero en ves de declarar las variables nombre y apellido como de tipo String lo hacemos como de tipo Integer.

 

Dim Nombre As IntegerDim Apellido As Integer'Le establecemos valores numericosNombre = "Carlos"Apellido = "Peres"

Page 28: Visual Basic

Si probás el ejemplo, visual basic te mostrará un mensaje de error como el siguiente: "no coinciden los tipos de datos":

 

 

...ya que las variables están declaradas como de tipo Integer, y le estás asignando un tipo de dato que no lo acepta.

4 - Un ejemplo que almacena un número en una variable de tipo Byte (números de 0 a 255). Primero declaramos la variable y le damos un nombre, por ejemplo si queremos almacenar el número 88 hacemos por ejemplo así.

Dim Edad As Byte

 

Para asignarle un valor a esa variable:

Edad = 88

 

Para mostrar el valor de la variable Edad en un control TextBox cuando presionamos un botón Command1, sería de esta manera:

Page 29: Visual Basic

Private Sub Command1_Click()'Declaramos la variableDim Edad As Byte

'Le asignamos un valor que no sea inferior a 0 ni mayor a 255Edad = 88

'Lo mostramos en el control llamado Text1Text1 = EdadEnd Sub

 

Si probaras cambiando el valor 88 por ejemplo a 300, ocurriría lo mismo que en el ejemplo anterior, es decir un Error 13 en tiempo de ejecución "No coinciden los tipos de datos"

 

5 - Estructuras de control:

Las estructuras de control se utilizan para controlar el flujo del programa en una rutina o función. Mediante ellas podemos controlar, mediante una condición, que se ejecute una determinada línea o bloque de líneas de código .. o que no se ejecuten.

 

Estructura If - Then - Else

Esta estructura permite mediante una condición, que se ejecute o no se ejecute determinada tarea o línea de código.

Por ejemplo supongamos que tenemos en un formulario un control Label con la propiedad Caption con el valor 50

If Label1.Caption = "50" Thenmsgbox "mi label tiene un valor de 50"else

Page 30: Visual Basic

msgbox "mi label NO tiene un valor de 50"end if

 

Esto traducido al español significaría lo siguiente:

Si (If) la propiedad caption del label1 que tengo en el formulario es igual (=) a "50" entonces (Then) que muestre un determinado mensaje, si no (Else) que muestre el otro mensaje.

En conclusión lo que hace esta estructura es evaluar una condición, si se cumple, que se ejecute determinada tarea. si no se cumple, se ejecutará las líneas de código que estén bajo la cláusula Else. Luego tenemos que cerrar la estructura con la palabra end if.

Tenemos que aclarar que no es obligatorio usar If y else juntos en la misma cláusula. Por ejemplo podríamos utilizar solo una estructura If sin else. Por ejemplo:

Private Sub Command1_Click()'Si la propiedad caption del Label1 es "Hola" entonces se termina el programaIf Label1.Caption = "Hola" Then

      End

End If

'Si no, se prosigue con esta línea

MsgBox "No se ejecutó el bloque If Anterior porque el Caption del control Label1 no era Hola"

End Sub

 

Coloca un Label1 y un Command1. En la propiedad caption del Label1 escribe "Hola". Al ejecutar el programa y presionar el Command1, se termina el programa con la sentencia End de

Page 31: Visual Basic

Visual Basic (End sirve para finalizar completamente la ejecución de nuestro programa). En cambio si ahora le cambia el caption al Label1 y volvés a ejecutar el proyecto, podés ver que la instrucción End no se ejecuta, si no que la pasa por alto y sigue con las restantes líneas, en este caso ejecuta la función MsgBox con el mensaje.

 

Estructura While - Wend

Esta estructura de control repetirá sin detenerse un determinado código mientras se cumpla una condición.

Por ejemplo supongamos que tenemos una variable llamada x que tiene un valor de 100.

while x = 100...se ejecutan todas las líneas de código que estén aquíwend

 

Esto traducido al español significaría lo siguiente:

Mientras (While) la variable x sea igual a 100, y no cambie su valor, se formará un bucle interminable, hasta que x cambie a cualquier otro valor disto de 100. Si x cambia el valor, por ejemplo a 234 saldría del bucle While - wend y seguiría ejecutando el resto del código, si es que hay mas código o instrucciones a ejecutar.

Un ejemplo, agrega un Command1 al formulario y un control Text1. Cuando ejecutemos el ejemplo, se deberá escribir un número dentro del control textBox. Entonces se creará un bucle While, que mostrará en el Caption del formulario, es decir en la barra de título, el intervalo desde 0 hasta el número que hayamos ingresado en el Text1. Es decir si ingresamos el número 9000, en el caption del formulario se imprimirán los número desde 0 hasta 9000.

Para hacer esto, dentro del bucle While pondremos una variable llamada Contador, que en cada pasada se incrementará en 1, pero cuando la variable Contador sea igual

Page 32: Visual Basic

al número que haya en el Text1, se finalizará el bucle y se mostrará un mensaje que finalizó el mismo

Private Sub Command1_Click()Dim contador  As Integer 'Declaramos la variable

While contador <> Text1

'Mostramos en el formulario el valor de la variable contadorMe.Caption = contador

'Incrementamos la variable en 1contador = contador + 1

Wend

MsgBox "Terminó el bucle"

End Sub

 

Estructura For - next

La estructura es utilizada para generar una repetición de instrucciones o bucle, pero no evalúa una condición como en el caso del bucle While, si no que lo hace entre un número inicial y un número final que le debemos indicar al mismo.

Por ejemplo, tenemos un formulario con un Label1 y declaramos una variable de tipo integer llamada "contador" como en el caso anterior

Private Sub Command1_Click()Dim contador As Integer

For contador = 0 To 1000

    Label1.Caption = contador

Next contador

Page 33: Visual Basic

End Sub

 

Esto traducido significaría lo siguiente:

Primero, tenemos una variable llamada "contador". Mediante el bucle For - next podemos controlar la cantidad de veces que queremos repetir un determinado proceso o instrucción. Esta posee un principio y un fin, en este caso el principio sería 0 y el fin 1000, de manera que la variable contador se incrementará en 1 hasta que llegue a 1000, y repetirá 1000 veces todas las instrucciones que estén bajo la cláusula For-next. En este caso nuestro control Label1 mostraría el contenido de la variable contador

Para ver en forma detallada y paso a paso esto, pongamos un ejemplo que lo que hace es repetir 10 veces (desde el 1 hasta el 10 en el intervalo del bucle For) y mostrará un mensaje con el valor de la variable Contador. Una ves que llegue a 10, terminará.

Colocá un Command1. Doble Click en el botón para escribir dentro del procedimiento que se ejecutará cuando lo presionemos. El código:

Dim contador As Integer

For contador = 1 To 10

    MsgBox "La variable Contador vale: " & contador

Next contador

MsgBox "Fin del bucle For"

 

Estructura Select case

Page 34: Visual Basic

La estructura Select Case se suele utilizar para evitar el uso de muchas cláusulas If y de esta manera no tener que anidarlas. La claúsula Select evalúa una condición y las cláusulas casecontienen valores, si el valor que contiene la cláusula case es igual a la condición que se evaluó, ejecutará las instrucciones en dicha cláusula.

Dim Nombre As String

Nombre = Text1

Select Case Nombre

  Case "Jorge"

       MsgBox "Se ejecutó la cláusula case: " & Nombre  Case "Pedro"

       MsgBox "Se ejecutó la cláusula case: " & Nombre

  Case "Carolina"

       MsgBox "Se ejecutó la cláusula case: " & Nombre

End Select

 

Esta estructura es muy práctica. En el ejemplo anterior, la cláusula Select case contiene como condición el valor de la variable llamada Nombre. Esa Variable toma el valor que tenga un control Text1, entonces buscará en todas las cláusulas case, y si encuentra una igual a la condición, ejecutará solo las instrucciones de la cláusula case que tenga el mismo valor, por ejemplo si ingresara el nombre "Martín" no se ejecutará ninguna cláusula Case. En cambio si ingreso "Jorge" se ejecutará solo las instrucciones que estén en la sección Case "Jorge" y asi...

En el caso anterior solo hemos colocado un valor para cada Case. Si quisieramos colocar mas valores podríamos hacerlo de esta forma:

Page 35: Visual Basic

Private Sub Form_Load()

Dim x As Integer

x = 10 'Le ponemos un valor a x

Select Case x

Case 5, 10MsgBox "Se ejecutó el case que tiene el 5 y el 10"'Se ejecuta esta sección

Case 15, 20'Esto no se ejecutaCase 25, 30'Esto tampoco End Select

End Sub

 

es decir que podemos listar los valores en los Case separados por comas. En el caso anterior se ejecutará el case 5, 10 ya que la variable x vale 10

 

6 - Operadores de Visual basic

Los operadores nos permiten operar, validar, comparar, asignar, distinguir, etc.., los datos e instrucciones de código de nuestros programas. A continuación los operadores mas importantes.

 

Operadores aritméticos

Estos operadores nos permiten trabajar con cálculos matemáticos como la suma (+), resta (-), división (/) y multiplicación (*).

Page 36: Visual Basic

Ejemplos:

a = 5b = 15c = a + b ' en este caso la variable c contendría el valor 20

ganancia = 500perdida = 200total = ganancia - perdida 'la variable total pasaría a valer 300

x = 100y = 20

z = x / y ' La Variable z vale 5

x = 100y = 20

z = x * y ' La Variable z vale 2000

 

 

Operadores lógicos

Se utilizan en expresiones para devolver resultados del tipo True o False, es decir Verdadero o falso. Los mas comunes son el operador And y el operador Or

Ejemplos:

 

If (x = 10) And (nombre = "maría") Then

'solo se ejecutará el código dentro de este bloque IF si la variable'x vale 10 y la variable nombre es igual a maría

Page 37: Visual Basic

End If

If (m = 10) Or (nombre = "pedro") Then

'el código se ejecutará si por lo menos una variable es correcta'es decir si por lo menos se cumple una condición

End If

 

Operadores de comparación

Los operadores de comparación se utilizan para comparar expresiones de cualquier tipo. Los mas importantes son: El operador de igualdad (=), menor que (<), mayor que (>), distinto a(<>)

Ejemplos:

If label1.Caption = "06/08/1978" Then

'si el control label1 en su caption contiene esa fecha'se ejecutará el código que este aquí

End If

if x > 6 then'si la variable x es mayor que 6 se ejecutará el código que este aquíend if

If país <> "Estados unidos" Then'si la variable país es distinta a "Estados unidos" se ejecutará el códigoEnd If

While c <= 87

'mientras la variable c sea menor o igual a 87 se

Page 38: Visual Basic

ejecutará'el bucle While

Wend

 

Por último quedaría por ver el operador de concatenación (&) que se utiliza para unir cadenas de caracteres.

Por ejemplo:

nombre = "Jose"apellido = "Peralta"

nombrecompleto = nombre & apellido

'La variable nombrecompleto pasaría a contener la unión de las otras dos variables'es decir Jose Peralta