GRADO ONCE
El procesador es en los sistemas informáticos el complejo de circuitos que configura la unidad central de procesamiento o CPU.
Típicamente, un procesador o microprocesador es parte de cualquier computadora o de equipos electrónicos digitales y es la unidad que hace las veces de “motor” de todos los procesos informáticos desde los más sencillos hasta los más complejos.
PROCESADOR DE LA COMPUTADORA
En una computadora se reconocen el procesador como dispositivo de hardware que puede tener diversas calidades y tipos, y por otra parte el concepto lógico en términos de unidad central de procesamiento o CPU, entendido como “cerebro” del sistema.
El procesador de hardware suele ser una placa de silicio de distinto tipo integrado por múltiples transistores en conexión entre sí. Un microprocesador típico se compone de registros, unidades de control, unidad aritmético-lógica y otras.
El funcionamiento de un procesador se da a través de distintos pasos que combinan instrucciones almacenadas en código binario. En primer término, el sistema lee la instrucción desde la memoria, luego la envía al decodificador, el cual determina de qué se trata y cuáles son los pasos a seguir. Posteriormente, se ejecuta la instrucción y los resultados son almacenados en la memoria o en los registros.
Existen distintos tipos de procesadores, cada uno de ellos con características y capacidades diversas de acuerdo con las necesidades e intereses del usuario. Los procesadores son unas de las unidades de un sistema informático más atendidas por las empresas desarrolladoras de software y hardware, ya que de su velocidad, eficiencia y rendimiento depende el correcto funcionamiento de todo el equipo.
Entre las marcas que desarrollan procesadores se cuentan Intel, AMD, Cyrix, Motorola y otras. Intel es quizás la más reconocida mundialmente, sus desarrollos son parte de equipos de todo el mundo, tanto de pequeña envergadura como grandes sistemas informáticos. Su eslógan “Intel Inside” es muy popular ya que se encuentra presente en todo sistema que disponga de este tipo de procesadores y para muchos es garantía de calidad.
JUMPER:
Un jumper o puente es un elemento que permite interconectar dos terminales de manera temporal sin tener que efectuar una operación que requiera una herramienta adicional. Dicha unión de terminales cierra el circuito eléctrico del que forma parte.
Características
El modo de funcionamiento del dispositivo, que es lo opuesto a la configuración por software, donde de distinto modo se llega al mismo resultado: cambiar la configuración, o modo de operación del dispositivo.
Los jumpers siguen siendo hasta ahora una forma rápida de configuración de hardware aplicando las características de los fabricantes.
La principal dificultad al hacer la configuración, es la información del fabricante del dispositivo, que en algunos casos, está solamente en el manual de operación del mismo o algunas veces, con su leyenda respectiva impresa en la placa de circuito impreso donde está montado el jumper.
Sin los jumpers, los discos duros, las unidades de discos ópticos o las disqueteras, no funcionarían porque no tendrían definido el rol de cada uno ("maestro" o "esclavo").
¿QUÉ ES... LA MEMORIA RAM?
La memoria principal o RAM (Random Access Memory, Memoria de Acceso Aleatorio) es donde el computador guarda los datos que está utilizando en el momento presente. El almacenamiento es considerado temporal por que los datos y programas permanecen en ella mientras que la computadora este encendida o no sea reiniciada.
Se le llama RAM porque es posible acceder a cualquier ubicación de ella aleatoria y rápidamente
Físicamente, están constituidas por un conjunto de chips o módulos de chips normalmente conectados a la tarjeta madre. Los chips de memoria son rectángulos negros que suelen ir soldados en grupos a unas plaquitas con "pines" o contactos:
La diferencia entre la RAM y otros tipos de memoria de almacenamiento, como los disquetes o los discos duros, es que la RAM es mucho más rápida, y que se borra al apagar el computador, no como los Disquetes o discos duros en donde la información permanece grabada.
De forma interna, la memoria RAM se puede entender como una tabla de celdas de datos en filas y columnas. Para acceder a un dato concreto, contenido en una de esas celdas, el controlador de memoria debe darle las "coordenadas" donde se encuentra dicho dato.
Es decir, que el proceso completo para obtener el dato de una celda de memoria, pasa por darle la coordenada "columna" (CAS), darle la coordenada "fila" (RAS), y esperar a obtener el dato solicitado. Entre todos estos procesos existen ciertos "tiempos" que necesita la memoria para "estabilizar" electrónicamente las señales y poder responder a cada solicitud. Estos tiempos variarán en función de la calidad de la memoria.
MEMORIA ROM:
Utilizada para el almacenaje de programas que hacen que el ordenador este en marcha y realice diagnósticos.Los ordenadores suelen tener una pequeña capacidad de memoria ROM.
La siguiente lista muestra las memorias RAM en modo descendente, la primer liga es la más antigua y la última la más reciente.
- Memoria RAM tipo TSOP.
- Memoria RAM tipo SIP.
- Memoria RAM tipo SIMM.
- Memoria RAM tipo DIMM - SDRAM.
- Memoria RAM tipo DDR/DDR1 y SO-DDR.
- Memoria RAM tipo RIMM.
- Memoria G-RAM / V-RAM (Actual).
- Memoria RAM tipo DDR2 y SO-DDR2 (Actual).
- Memoria RAM tipo DDR3 y SO-DDR3(Actual).
- Memoria RAM tipo DDR4 y SO-DDR4 (Próxima Generación).
DIFERENCIA ENTRE PLACAS BASES AT Y ATX:
Las placas base AT y ATX son ambas placas de circuito impreso que alojan Unidades Centrales de Procesamiento (CPU por su sigla en inglés), así como otros componentes integrales del hardware de computadora. La diferencia principal entre las dos placas es que la primera se basa en un factor de forma de AdvancedTechnology (tecnología avanzada), mientras que el segundo se basa en un factor de forma de AdvancedTechnologyeXtended (tecnología avanzada extendida). Un factor de forma se refiere a la forma y el diseño de la estructura de unaplaca base.
Una fuente de poder o PSU (siglas en inglés para "PowerSupplyUnit") es aquel componente encargado de suministrar electricidad a la computadora, bajo ciertas especificaciones.
Este componente convierte la corriente alterna de entrada (AC) en corriente contínua (DC) de bajo voltaje, que es lo que requieren los componentes internos de la computadora para funcionar. Es común que las fuentes de poder hoy en día detecten de manera automática el voltaje de entrada, adaptándosea a ello entre rangos de 115 y 230 volts, dependiendo del modelo por lo que decimos que son "multivoltaje" (hay que ver las especificaciones de cada cual, ya que podrías toparte con una PSU que no opere de esta manera).
La fuente no opera únicamente con un transformador, sino que es capaz de interactuar con la placa madre, siendo capaz de apagar, encender o llevar la computadora al modo standby. El típico diseño se ajusta a lo que se conoce como estándar ATX, que define tanto las dimensiones, como las funciones que te mencioné y el número de contactos que debe tener (24).
La típica fuente de poder la reconoces entre los componentes de una computadora como una caja metálica casi cuadrada, un ventilador y la salida a la corriente alterna por un lado, y una serie de conectores por el otro.
Entre los conectores está el "PC Main", llamado P1 y es el que alimenta la placa madre, con 20 o 24 pines. El P4, en realidad llamado ATX12V también va a la placa madre.
Hay un conector periférico de 4 pines que va a los discos duros (llamado entre los entendidos Molex). Similar al periférico hay otros más pequeños de 4 pines que alimenta comúnmente tarjetas de video o FireWire.
Está también el conector serial ATA, de 15 pines para los componentes que requieran de esta conexión. Los conectores de 6 pines sirven para ciertas tarjetas gráficas; asimismo encuentras en las computadoras modernas conectores de 8 pines para la misma función (o de 6 y 2 pines por separado, para permitir compatibilidad con modelos anteriores de Pcs).
Además encuentras una serie de conectores auxiliares, disponibles en caso de mayores requerimientos energéticos.
Visual Basic 6.0
1 - Introducción
Bienvenido a la introducción de este tutorial básico de visual basic
Esta guía esta destinado para aquellos que nunca han entrado en contacto con este lenguaje de programación. ( para que te des una idea se va a realizar en este capítulo algo parecido al Hola mundo), si sos nuevo puede venirte como anillo al dedo, si no, te recomiendo que no pierdas ni un segundo leyendo de gusto y cierres la ventana, jeje.
Este tutorial está basado en la versión 6.0 de visual basic, aunque con otras versiones no creo que tengas problemas.
Entrando en el tema, con este lenguaje de programación podés realizar casi cualquier tipo de programa para plataformas windows, esto quiere decir, que podés programar utilitarios para windows, bases de datos, aplicaciones comerciales y de gestión, juegos, etc.. .
Sin embargo lo que no podés desarrollar son por ejemplo: aplicaciones que administren bases de datos gigantes, drivers para dispositivos , juegos que utilicen una interfaz gráfica compleja, ya que tendrías que utilizar otro entorno de desarrollo o lenguaje , como por ejemplo el C, el C++, Delphi , .NET u otros, es decir lenguajes que sean mas rápidos y que tengan soporte para este tipo de proyectos y programas.
2 - Breve historia y alcance del lenguaje
Las siglas Basic significan (beginner's all-purpose simbolic instruction Codic). El lenguaje Basic fue creado en el año 1964 y se modificó varias veces hasta que en el año 1978 se estableció el Basic estándar. Este anteriormente se llamo "gwbasic", luego "QuickBasic" y asi fue evolucionando y finalmente llegamos al "Visual Basic", todas con sus diferentes versiones, la 1, 2 , etc.. hasta la 6.0
Las aplicaciones que se puden desarrollar con visual basic 5 y 6 son aplicaciones de 32 bits solo para plataformas Windows.
Mas información sobre la historia de visual basic en la Wikipedia
3 - La interface del Vb - El IDE
El IDE significa interface de entorno de desarrollo, y se refiere a la interface del propio programa, es decir a las distintas partes que componen el propio Visual Basic para poder desarrollar nuestros proyectos (es el entorno de trabajo)
En esta parte, se describirá un pantallazo de las secciones principales de este entorno
Para inicializar el programa, luego de haberlo instalado obviamente, desde el menú inicio > programas > microsoft visual basic 6.0, te podés crear un Acceso directo en tu escritorio para tenerlo mas a mano.
En la imagen superior podés ver la barra de controles. Esta barra contiene los controles estándar de Visual Basic. Se los llama estándar porque que son los controles que por defecto añade Visual Basic cuando creamos un programa desde 0. A los controles no estándar, u otro tipo de controles, por ejemplo los creados por nosotros, los que tengamos instalados en el sistema, y demás que se instalan con el VB, hay que agregarlos a mano, es decir uno mismo, esto se hace desde el Menú Componentes o presionando las combinaciones de tecla Ctrl+T. Cuando se agrega un control no estándar, se añade a la barra y ya lo podés utilizar..
Los controles estándar son los controles básicos, por ejemplo los Command Button o botones de comando, Control TextBox o caja de texto, Picture Box o caja de imagen. El control FileListBox para ver archivos, y varios otros que se explican en los siguientes capítulos.
La imagen anterior, nos muestra los formularios (ventanas) , módulos de código, y otros tipos de objeto que componen el proyecto que estamos realizando.
Desde esta ventana podemos hacer varias operaciones, por ejemplo al seleccionar un formulario, en los botones "Ver Objeto" y "Ver código" en la parte superior, accedemos a la vista de diseño del formulario, mientras que si elegimos Ver código, se abre una ventana que muestra el código de ese formulario seleccionado.
También podemos desde esta ventana, Guardar el formulario, eliminarlo y varias otras acciones.
Esta otra ventana acoplable que está debajo de la ventana de Proyecto, se llama Ventana de propiedades de Visual Basic.
Desde la Ventana de Propiedades podemos modificar las características del objeto o control seleccionado actualmente. Por ejemplo si agrego un formulario y lo selecciono, puedo establecerle el color de fondo, el ancho, alto, el nombre que va a tener para poder identificarlo y muchas otras propieades.
Lo importante que quede claro es que esta ventana cambia cada ves que seleccionamos un objeto o control diferente, si seleccionamos un botón o Command Button, visualizará las propiedades de ese botón, si seleccionamos un formulario las propiedades de ese formulario, si seleccionamos un TextBox, mostrará ls propiedades de ese textBox , etc..
![]() |
Esta es la barra de menues y barra de herramientas de Visual Basic. Para no hacerla pesada y describir todas las opciones ya que no tiene sentido describir todo, desde aquí se puede configurar todo el entorno o IDE, elegir el tipo de proyecto que vamos a crear, ( por ejemplo un programa Exe común , una Dll ActiveX o un Proyecto Ocx), También Compilar el proyecto en un ejecutable, Acceder a la ayuda, (tenés que tener instalados los CD del Msdn), Abrir un proyecto, Guardar, El acceso a los distintos modos y opciones de depuración de errores, y muchas opciones mas.
4 - Formularios, propiedades, métodos y eventos
En esta parte se realizará un ejemplo simple que consistirá en una ventana o formulario que contendrá un botón, y al presionar este botón nos mostrará o abrirá otra ventana con un mensaje, como las que utiliza windows cuando nos informa sobre algo . Este mensaje visualizará un texto con la descripción"Mi primer programa". Pero antes de realizar este ejercicio veamos un par conceptos básicos necesarios
Formulario
Es la ventana o contenedor donde colocamos y agregamos controles de comando , como un botón, una caja de texto, un control de imagen, etc... Cuando hacemos un programa podemos tener varios formularios. Por ejemplo podemos tener un formulario1 con un botón y al presionar este botón hacer aparecer otro formulario en este caso unformulario2.
Propiedades:
Cuando hablamos de propiedades nos estamos refiriendo a las características que puede tener un control u objeto, por ejemplo: los botones llamados commandbuttontienen una propiedad llamada caption. Esta propiedad establece el texto que va a mostrar el botón en el propio botón.
Los formularios también poseen esta propiedad caption y muchos otros controles también la poseen, pero no todos. Otro ejemplo de una propiedad puede ser el color de fondo de un control, el ancho, el alto, el nombre que lleva para poder identificarlos, etc.. .
En resumen las propiedades, haciendo una comparación, serían como para las personas tener 2 brazos, 2 piernas, el color del pelo, el color de los ojos, el nombre de la persona, donde vive, su código postal, etc...
Los Eventos
Los controles y objetos poseen Eventos, pero no son todos iguales para todos los controles. Ejemplos de eventos serian:
Para un botón: el evento click (cuando lo presionamos), para un formulario: load (este evento se ejecuta cuando se carga el formulario en la memoria), para un textbox o caja de texto: keypress (este evento se dispara cuando presionamos una tecla y el foco está puesto dentro de la caja de texto).
Los Métodos
Los métodos de un objeto son funciones propias que tiene cada objeto. Por ejemplo los formularios poseen un método llamado show , y lo que hace es cargarlo y hacerlovisible. Para un control combobox este tiene un método llamado additem, y lo que hace es agregar elementos en dicho control. Pero los métodos al igual que las propiedades y eventos, no están presentes en todos los controles de manera igual, es decir algunos objetos y controles pueden compartirlos, pero otros no. Por ejemplo el método Show de los formularios, no lo posee ningún control estándar excepto los formularios.
5 - Pasos para realizar el ejemplo
1 - Abrí el Visual Basic y te aparecerá una ventana para que puedas elegir el tipo de Proyecto o programa que querés realizar. Como verás hay muchas opciones, nosotros elegiremos la opción Estándar EXE como muestra la imagen:
2 - Ya abierto el VB podés ver que tenés un formulario llamado Form1, este es agregado automáticamente cuando comenzás un nuevo programa o proyecto, y es el nombre por defecto que se le asigna, obviamente esto se puede cambiar utilizando la propiedad Name queposeen los controles.
3 - Como se dijo nuestro programa va a consistir en un formulario con un botón que al presionarlo muestre un texto diciendo "Mi Primer programa", entonces agregá un botón a nuestro formulario. Para agregarlo lo podés hacer desde la barra de controles, en la parte izquierda del IDE, y buscá entre todos ellos un control llamado Command Button(Botón de comando). Haciendo doble click sobre el control, o dibujandolo sobre el formulario.
4 - Como te darás cuenta, el texto que muestra el botón por defecto es "Command1". Nosotros lo vamos a cambiar por "Mostrar mensaje". Para ello tenemos que cambiarle la propiedad Caption del botòn. Entonces seleccioná con un click el command1 (serciorate que esté seleccionado, cuando al rededor del botòn aparece unos puntos azules) y en la ventana de propiedades de los controles que esta ubicada en la parte derecha del IDE, te mostrará las propiedades del control que está seleccionado actualmente. En este caso como está seleccionado el botón solo nos mostrarà las propiedades del Command1. Ahora buscá en la lista de propiedades la propiedad Caption y verás que diceCommand1, borrala y escribe: "Mostrar mensaje". Como podés ver el texto o leyenda del botón a cambiado.
NOTA: Nosotros todavía no hemos ejecutado nuestro programa por que obviamente lo estamos diseñando. A esto se lo denomina trabajar en "Tiempo de diseño". La otra forma de trabajo se denomina "Tiempo de ejecución", que es cuando nuestro programa está siendo ejecutado o cargado en memoria.
Tendrías que tener algo por el estilo en tu formulario Form1
5 - Ahora vamos a agregar las instrucciones o líneas de código para que cuando pulsés el botón se despliegue un mensaje. Hacé Doble click sobre el botòn y podés ver que se habre una ventana donde escribir el código. Esta se llama precisamente ventana de Código. Al abrirse la ventana muestra una serie de instrucciones
Private Sub Command1_Click()
End Sub
A esto se lo llama Subrutina o procedimiento de código, y estas subrutinas tienen un comienzo y un fin.
Después se explica mas adelante que es eso de Private sub, End Sub, procedimientos, funciones...etc
Por ahora lo que te tiene que quedar claro es que nosotros vamos a ingresar el còdigo necesario para mostrar, por medio de una ventana, el mensaje "mi primer programa".
Entre la declaración Private sub Command1_click y End sub escribe lo siguiente
Msgbox "Mi primer programa"
El código tendría que quedarte de la siguiente manera
Private Sub Command1_click()
MsgBox "Mi primer programa"
End Sub
6 - Acá lo que se hizo fue utilizar una función llamada MsgBox , que sirve para mostrar mensajes. Ya podemos ejecutar o probar el ejemplo, para ello hay varias opciones y formas:
- Desde la barra de herramientas y presionas la flecha azul
- Ir al menú Ejecutar > opción Iniciar
- La mas sencilla de todas que es presionando la tecla F5.
Cuando ejecutés el programa y presionés el Command1, se mostrará el mensaje.
En este momento nuestro programa está en ejecución, para volver a la pantalla de vista de diseño y detener el programa , tenemos que presionar el ícono con un cuadrado azul (stop) o ir al menú ejecutar y elegir la opciòn terminar.
6 - Sobre los proyectos en Visual Basic
Por último para cerrar esta intruducción muy básica una aclaración sobre los Proyectos.
Cada vez que inicias un programa nuevo Standar Exe Visual Basic Hace lo siguiente:
Crea un formulario llamado "Form1" y también un proyecto de trabajo llamado por defecto "Proyecto1".
Cuando lo guardás, desde el menù Archivo > Guardar proyecto, se creará un archivo llamado "proyecto1.vbp", otro archivo con los formularios que tengas en el proyecto, en nuestro caso "Form1.frm" y otro archivo en este caso "Proyecto1.vbw" que es un archivo de configuraciòn.
Este último archivo a nosotros no nos interesa, ya que lo usa Visual Basic para configurar el proyecto cada vez que lo abrimos.
Para guardar proyectos, hay que ir al menú archivo y elegir guardar proyecto, también te pedirá que guardes el formulario form1.frm . En ambos casos puedes asignarle el nombre que quieras.
Como vimos en la página anterior, los formularios son las ventanas que contienen a otros controles y en ellos podemos incluir controles de comando, como botones, cajas de texto, controles para bases de datos, y por supuesto el código necesario de nuestros programas.
También se dijo, los controles e inclusive los Formularios tienen sus propias características, como las propiedades (un ejemplo el color del fondo o propiedad Backcolor), sus eventos (el evento load que se ejecuta cuando cargamos el formulario en memoria), y sus métodos (por ejemplo el método show que es para mostrar el formulario y elmétodo hide que es para ocultarlo, en el caso de un formulario.
Acá hay que hacer una cosa muy importante. Cuando se comienza a programar, suele ser muy casual confundir métodos y eventos y no son lo mismo. Los métodos sonfunciones propias de cada objeto, por ejemplo el método hide de un formulario no lo posee un command button. Con los eventos suele ocurrir lo mismo. Un formulario posee el evento load y un command button no lo posee (a no ser que pertenezca un arreglo de controles pero ese es otro tema que se verá en otra ocación).
Pero otros eventos si los comparten ambos. Siguiendo el ejemplo del formulario y el botón, los dos tienen un evento llamado click, y todas las instrucciones de código que escribamos en la rutina de código o procedimiento que estén bajo este evento, se ejecutarán cuando hagamos un click con el mouse sobre el objeto. El evento Click lo poseen la mayoría de los controles, pero no tiene porque ser así.
Para seguir con el tema de los métodos y eventos, vamos a hacer un ejemplo simple de ejercicio. Este ejemplo, consistirá en un formulario que contendrá un botón y , al presionarlo nos mostrará otro formulario.
1.1 - Ejemplo sobre métodos y eventos
Pasos a seguir para el ejemplo:1 - Comenzá un nuevo proyecto Exe. Por defecto visual basic te agrega un formulario llamado Form1. este formulario contendrá el botón que al presionarlo muestre otro formulario, en este caso un Form2.
2 - Desde la barra de controles agregá un Commandbutton al formulario. Por defecto el texto que muestra es Command1 , nosotros lo cambiaremos por : "Mostrar formulario 2".
Ahora selecciona el botón para que te muestre la lista de propiedades del mismo. Por si ya te olvidaste, la ventana de propiedades está a la derecha y te muestra las propiedades del objeto seleccionado actualmente en el entorno de trabajo del vb. Una ves seleccionado el botón, buscá la propiedad caption y escribí : mostrar formulario 2
3 - Ahora hay que agregar el otro formulario es decir el Form2 a nuestro proyecto. Como en la barra de controles no tienes la opción de agregar otros formularios, tendrás que agregarlo desde la barra de menú >proyecto> Agregar formulario.
Te va a aparecer un cuadro de diálogo y eliges la opción formulario. Como podés ver se ha agregado otro formulario llamado form2, y la ventana del explorador de proyectos ahora contiene 2 formularios.
4 - Ahora tenemos que introducir el código en el command1 que insertamos en el Form1, para que cuando ejecutemos el programa , al presionar el Command1 nos muestre el form2 que agregamos anteriormente. Para esto tenés que volver a ir al Form1, haciendo un click en la ventana de explorador de proyectos (la imagen de arriba) y seleccioná el form1.
5 - Para ingresar el código al botón, hacé doble click en el mismo e ingresá la siguiente instrucción de código: Form2.show.
La rutina de código del botón command1 te quedaría algo parecido a esto:
Nota: Como seguro te diste cuenta, cuando escribís Form2 y presionas el punto ".", visual basic te muestra una lista con todas las propiedades y métodos que tiene form2, y así ocurre con todos los objetos que tienen propiedades y métodos. En este caso el método show mostrará el Form2 en pantalla, es decir el método Show lo que hace es cargar en la memoria un formulario y automáticamente lo hace visible.
6 - Corre el programa pulsando la tecla F5 para ver como funciona. Para terminarlo pulsa el ícono con la imagen de un cuadrado azul desde la barra de herramientas.
1.2 - Otro ejemplo sobre formularios
Ahora vamos a hacer un programa de ejemplo parecido al anterior, pero con algunas variantes.
En la primera parte, el programa que hicimos consistía en un formulario que tenía un botón (Command1), y al presionarlo mostraba otro formulario . Este lo llevamos a cabo con el método show que tienen los formularios y sirve para mostrarlos en pantalla.
El objetivo de este programa es mostrar cuatro métodos que poseen los formularios, ellos son: Load, Unload, Hide y Show.
El método Load tiene la función de cargar el formulario en la memoria y unload descargarlo de la memoria. Esto no significa que si el método load carga el formulario, automáticamente se muestre en la pantalla, quiere decir que solo permanece cargado en memoria, luego para mostrarlo tendríamos que utilizar el método show por ejemplo (hay otras opciones para hacer lo mismo pero no vienen al caso detallarlas para este ejemplo).
El método Hide oculta el formulario pero sigue permaneciendo en la memoria. Para descargarlo completamente de la memoria ram, tendríamos que usar el método Unload.
Imagen previa del ejemplo:
Pasos a seguir
1 - Crea un nuevo proyecto exe.
2 - Desde la barra de controles agrega 4 command button.
3 - Ahora selecciona el Command1 y en la propiedad caption borrale el "command1" y escribe "Cargar formulario en memoria (Load)".
A hora lo mismo pero en el command2 desde la propiedad caption escribí "Mostrar formulario 2 (Show)".
En el Command3 "Descargar formulario de la memoria (UnLoad)"
E n el Command4 , "Ocultar formulario (Hide)".
4 - Ya terminando, ubicá los botones en el formulario de forma similar, como muestra la imagen anterior.
Para mover los botones o cualquier otro objeto dentro de un formulario, solo tenés que seleccionar el objeto que quieras, mantener presionado el botón izquierdo del mousey soltarlo en el lugar que quieras. lo mismo pasa con el tamaño de los controles, cuando los seleccionas podés cambiarle el tamaño.
5 - Ahora vamos a escribir el código para los botones. Por si ya te olvidaste lo que íbamos a hacer, lo que harán estos botones son:
El Command1 Cargar en la memoria mediante Load el Formulario pero no lo hace visible.
El Command2 hace las 2 cosas al mismo tiempo, es decir lo carga y lo hace visible.
El Command3 Descarga completamente el Formulario de memoria
El Command4, mediante Hide lo oculta, aunque esté oculto sigue permaneciendo cargado.
En el Command1 entonces , hacé doble click en dicho botón y tipea: Load Form2 .
Para el Command2 que mostrará el Form2: Form2.show.
El botón Command3: Unload form2
El Command4: Form2.hide .
6 - El último paso que nos queda para poder correr nuestro programa es ingresar un nuevo formulario, entonces desde el menú proyecto eliges la opción agregar formulario y agregas uno nuevo al proyecto.
Ahora pulsá F5 y prueba el programa.
Nota : seguro que te preguntarás para que sirve el método Load, si para que aparezca en pantalla el Form2 tengo que usar la instrucciónshow. Supongamos que tenemos un programa con varios formularios y que estos tienen muchos controles y es medio "pesado" (me refiero en bytes), entonces a veces conviene cargar dichos formularios en la memoria, para que cuando necesitamos llamarlos o mostrarlos en pantalla, estos se muestren de forma mas rápida. Esta es una de las posibilidades del uso no es la única.
El código completo sería el siguiente:
'Carga el form2 pero no lo muestra
Private Sub command1_click()
Load Form2
End Sub
'Carga y muestra el Form2
Private Sub command2_click()
Form2.Show
End Sub
'Descarga completamente de la memoria el Form2
Private Sub command3_click()
Unload Form2
End Sub
'lo oculta pero no descarga el Form2 de la memoria
Private Sub command4_click()
Form2.Hide
End Sub
Nota Sobre los comentarios en el código
Para colocar comentarios en nuestros programas, se antepone la comilla simple o la palabra Rem (esta última prácticamente no se utiliza).
Es fundamental escribir comentarios sobre los bloques de código que componen las distintas partes del programa, para que cuando echemos una mirada al código sepamos de que se trata. Estos comentario o líneas descriptivas no se ejecutan y no influye en nada a la ejecución de los procedimientos, solo es información que ayuda a entender cada línea o sección de un bloque de código.
2 - Controles Estándar de Visual basic
Para ver una descripción básica de los controles estándar de visual basic, es decir los que aparecen por defecto en el cuadro de controles en la parte izquierda del IDE, podés acceder a esta sección apartada del tutorial en el siguiente enlace, donde se explica el funcionamiento básico de los mismos con algunos ejemplos prácticos: Tutorial de los controles de Visual Basic
También en la misma página hay ejemplos de los controles no estándar, es decir controles que debemos incorporarlos nosotros y que visual basic no los incorpora por defecto al iniicar un proyecto
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..
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 la palabra reservada Dim, luego el nombre que nosotros queramos y seguido el tipo de dato que almacenará, por ejemplo si quiero almacenar en una variable llamadaNumero
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
- 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 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 Integer
Dim num2 As Integer
num1 = 10
num2 = 20
'se mostrará un mensaje con la suma de las variables con el resultado 30
MsgBox num1 + num2
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 llamada nombre 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 String
Dim apellido As String
'le establecemos valores
nombre = "Carlos"
apellido = "Peres"
'mostramos un mensaje con el valor de las variables
MsgBox nombre
MsgBox 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 Integer
Dim Apellido As Integer
'Le establecemos valores numericos
Nombre = "Carlos"
Apellido = "Peres"
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:
Private Sub Command1_Click()
'Declaramos la variable
Dim Edad As Byte
'Le asignamos un valor que no sea inferior a 0 ni mayor a 255
Edad = 88
'Lo mostramos en el control llamado Text1
Text1 = Edad
End 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" Then
msgbox "mi label tiene un valor de 50"
else
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 programa
If 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 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 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 contador
Me.Caption = contador
'Incrementamos la variable en 1
contador = 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
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
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 case contienen 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:
Private Sub Form_Load()
Dim x As Integer
x = 10 'Le ponemos un valor a x
Select Case x
Case 5, 10
MsgBox "Se ejecutó el case que tiene el 5 y el 10"
'Se ejecuta esta sección
Case 15, 20
'Esto no se ejecuta
Case 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 (*).
Ejemplos:
a = 5
b = 15
c = a + b ' en este caso la variable c contendría el valor 20
ganancia = 500
perdida = 200
total = ganancia - perdida 'la variable total pasaría a valer 300
x = 100
y = 20
z = x / y ' La Variable z vale 5
x = 100
y = 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
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ódigo
End If
While c <= 87
'mientras la variable c sea menor o igual a 87 se 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
Nota: hay muchos mas operadores en Visual Basic, estos son los básicos
1 - Subrutinas de código
Se denomina subrutina a una porción de código que tiene como principal función ejecutar una determinada tarea. Estas tienen un nombre para poder identificarlas y luego poder llamarlas para poder utilizarlas.
Las subrutinas tienen un principio y un fin y estas pueden tener distinto tipo de alcance, o sea pueden ser de tipo privadas o públicas.
En el siguiente ejemplo se muestra una subrutina que crea visual basic automáticamente cuando en un formulario insertamos un botón llamado Command1 y desde la ventana de eventos seleccionamos el evento click del mismo
Private Sub Command1_Click()
End Sub
Ahora, si colocamos por ejemplo un control TextBox llamado TextPedidos y hacemos doble click sobre el mismo, se crea el procedimiento por defecto para los TextBox, que es el evento Change
Private Sub TextPedidos_Change()
End Sub
En estos 2 últimos ejemplos tenemos una subrutina o procedimiento de tipo Privado, esto quiere decir que la podemos utilizar solo en el formulario o módulo donde está declarada o escrita
La palabra sub le sigue el nombre de la rutina que la identifica. En este caso Command1_click() y en el otro ejemplo TxtPedidos_Change().
Si quisiéramos que estos procedimientos se puedan llamar desde otro formulario, lo que tendríamos que hacer es cambiar el alcance del procedimiento, en ves de Private Sub cambiarlo por Public Sub. si hacemos esto, ese procedimiento de código puede ser utilizado desde cualquier parte del proyecto.
Subrutinas y Procedimientos propios
También podemos crear nuestros propios Procedimientos y Subrutinas de código para ejecutar una determinada tarea.
Para crear un procedimiento de código se debe escribir la palabra Private sub o Public sub (depende el alcance), seguida del nombre del procedimiento (un nombre que queramos) y los parámetros, si es que le enviaremos parámetros (los parámetros son opcionales). Además el procedimiento debe ser escrito en un lugar vacío de la ventana de código, es decir nno se puede crear un procedimiento dentro de otro
Un ejemplo para crear un procedimiento:
Private Sub ProcedimientoBorrar()
label1 = ""
label2 = ""
label3 = ""
End Sub
En este ejemplo creamos un procedimiento muy simple que tendrá la función específica de borrar el contenido de 3 controles label.
¿ Pero ahora te preguntarás como hago para que se ejecute el procedimiento que he creado ?.
Muy fácil. Solo debemos escribir el nombre del procedimiento en el lugar donde queremos que se ejecute. Por ejemplo supongamos que tenemos un formulario con 3 controles Label (Label1, Label2 y Label3), También un Commandbutton llamado Command1 y en la ventana de código hemos escrito el procedimiento del ejemplo anterior. Si nosotros queremos llamar al procedimiento, que borrará el contenido de los label cuando hagamos click en el Command1 lo haríamos así:
Private Sub command1_click()
ProcedimientoBorrar
End Sub
Al presionar el Command1 visual basic detectaría el nombre ProcedimientoBorrar, y automáticamente saltaría al lugar donde creamos el procedimiento y ejecutaría las líneas de código que haya en ese procedimiento.
También podemos llamar a un procedimiento utilizando la palabra Call, que quiere decir llamar, seguida del nombre del procedimiento, pero en este caso si utilizamos call y nuestro procedimiento contiene parámetros, debemos pasarlos entre paréntesis ( los parámetros de procedimientos y funciones se explican a continuación)
una vez que se ha terminado de ejecutar las instrucciones que estén dentro del bloque del procedimiento, volvería a la línea siguiente de donde fue llamado el mismo, y ejecutaría todas las líneas restantes de código. En este caso no ejecutaría nada mas por que no hemos puesto ninguna otra instrucción debajo de ProcedimientoBorrar.
La principal ventaja de crear procedimientos de código es que evita tener que escribir varias veces las mismas instrucciones en un programa, el código se hace mucho mas funcional y entendible, se pueden dividir un problema (una rutina), en varios procedimientos y probarlos independientemente, y además la posibilidad de enviar parámetros a los procedimientos
1.1 - Pasar parámetros a los procedimientos:
Se utilizan los parámetros en los procedimientos para que el procedimiento no ejecute siempre las mismas líneas de código y pueda variar, teniendo la posibilidad de hacerlo mas dinámicamente. En ciertas ocaciones no es necesario enviar parámetros, pero en otras es prácticamente fundamental. Los parámetros son datos, casi de cualquier tipo, que se pasan seguido del nombre del procedimiento, y si es mas de uno deben ir separados por comas (,). Ejemplo:
DatosPersonales "Luciano", 25, "La plata"
En este ejemplo pasamos tres parámetros: El primero es un nombre y es un dato de tipo String y por ende debe ir entre comillas. El segundo es un número y el tercero también un string. , o sea una cadena de caracteres
Pero la cosa no queda acá. Si nosotros vamos a pasar parámetros a un procedimiento, cuando creamos el procedimiento debemos establecer que tipo de parámetros va a recibir el mismo. Ejemplo:
Private Sub DatosPersonales(nombre As String, edad As Integer, ciudad As String)
Label1 = nombre
Label2 = edad
Label3 = ciudad
End Sub
siguiendo, el ejemplo anterior creamos un procedimiento con tres parámetros. Cada parámetro se declara como se hace con las variables, o sea que debemos darles un nombre a la variable y definir el tipo de dato ( sin utilizar la palabra Dim ) que recibirá cuando las llamemos.
Ahora podríamos por ejemplo, en el evento click de un Command1, llamar al procedimiento y pasarle los parámetros.
Coloca un Command1 , 3 controles Label, copia en la ventana de código el procedimiento anterior llamado DatosPersonales, y ahora pega el siguiente código
Private sub command1_click()
DatosPersonales "Luciano", 25, "La plata"
End sub
Al presionar el botón se llamará al procedimiento que habíamos creado anteriormente, y le pasará los valores de los parámetros en el orden en que estén establecidos declarados en el procedimiento. Esto quiere decir que el primer parámetro con el valor "Luciano" se almacenará o asignará a la variable nombre , el valor 25 se le asignará a la variable edady el último valor a la variable ciudad.
Después que las variables ya cargaron el valor las podemos utilizar dentro del procedimiento, como en el ejemplo anterior que le asignamos a un control Label1 el contenido de la variable nombre, al Label2 el contenido de edad y al Label3 el contenido de la variable ciudad.
Es muy importante respetar el orden en que pasamos los parámetros en un procedimiento, por que por ejemplo en el caso anterior si hubiésemos pasado los parámetros de esta forma:
DatosPersonales 25, "Luciano", "La plata"
el segundo parámetro "Luciano" se almacenaría en la variable Edad que es de tipo Integer y se produciría un error en tiempo de ejecución por no coincidir los tipos de datos, ya que la variable espera un valor numérico de tipo Integer y nosotros le estamos pasando una cadena de caracteres, un dato de tipo String
Otra cosa importante es que cuando creamos, por ejemplo un procedimiento que va a recibir 2 parámetros, cuando lo llamemos, no podemos enviarle solo 1 parámetro, debemos obligatoriamente pasarle los 2 parámetros que hubiésemos declarado en el mismo. Un ejemplo que daría un error en tiempo de ejecución por no pasar adecuadamente los parámetros sería:
Private Sub sumar(a As Integer, b As Integer)
Label1 = a + b
End Sub
hasta aquí creamos un procedimiento llamado sumar que recibirá 2 parámetros de tipo Integer, si nosotros llamamos al procedimiento y le pasamos un solo valor, por ejemplo:
Call sumar ( 456 )
Esto daría un error de compilación por que el procedimiento espera recibir 2 parámetros ..y nosotros le estamos pasando o enviando solo uno de ellos.
Precisamente el cartel de error que te mostraría visual basic sería el siguiente:
Nota: hay una sentencia llamada Optional que SI permite pasar parámetros de forma opcional, por ejemplo:
Private Sub Con_Parametro_Opcional(Nombre As String, _ Optional Email As String) MsgBox Nombre MsgBox Email End Sub
Ahora si llamas a la rutina anterior, y omites el parámetro Email, esta no dará error, por ejemplo:
Call Con_Parametro_Opcional("Maria")
Nota: Los parámetros opcionales, si o si deben estar declarados al final de la lista de parámetros, por ejemplo esto no se puede hacer:
Private sub una_Rutina ( Optional Email As String, Nombre as String )
Función IsMissing
Esta función se utiliza cuando utilizamos parámetros opcionales en una función o procedimiento, y nosotros, dentro del mismo queremos saber y averiguar si se han enviado los parámetros opcionales
El uso de IsMissing muy simple. Esta función retorna el valor True si NO se ha enviado el parámetro que queremos comprobar, y devuelve False si el parámetro ha sido enviado:
por ejemplo , colocar dos CommandButton
Private Sub Mostrar_Dato(Optional Nombre As Variant) ' Si IsMissing devuelve Verdadero, es por que no se envíó If IsMissing(Nombre) = True Then MsgBox " NO Se ha enviado el parámetro NOMBRE ", vbInformation Else MsgBox " Se ha enviado el parámetro NOMBRE ", vbInformation End If End Sub 'Acá No se envía el parámetro Private Sub Command1_Click() Mostrar_Dato End Sub 'Acá Si se envía el parámetro Private Sub Command2_Click() Mostrar_Dato "María" End Sub
1.3 - Pasar parámetros por valor y por referencia ( ByVal y ByRef )
los parámetros en las funciones y procedimientos, se pueden enviar de dos maneras: por Valor y por Referencia.
Si están declarados como ByVal, los mismos serán por valor, si se declaran como ByRef serán por referencia.
La diferencia entre uno y otro método de paso de parámetros, es que en ByVal se envía una copia de la variable, y de esta manera si se efectúa un cambio en el procedimiento, solo tendrá efecto dentro del procedimiento o función, una ves que termine y finalice el mismo, la variable original pasará a valer el dato que tenía, es decir no se modifica
En los parámetros enviados por Referencia, lo que se hace es enviar un puntero de la variable original. Entonces, si en la función o procedimiento se cambia el valor de la variable, el cambio seguirá manteniéndose una ves que finalice la ejecución del procedimiento o función.
1.4 - Ejemplo de envío de parámetros por Valor ( ByVal )
Código de ejemplo
Private Sub Command1_Click() Dim Un_Valor As Long Un_Valor = 100 'Se envía la variable por Valor ( ByVal ) Call Sumar(Un_Valor) 'Muestra el valor que es 100, ( no se modificó en la función Sumar ) MsgBox Un_Valor End Sub Sub Sumar(ByVal Valor As Long) 'Modifica la variable Valor = Valor + 100 End Sub
En el ejemplo anterior hay una Sub llamada Sumar que recibe como parámetro una variable enviada por valor con ByVal ( es decir es una copia de la variable original ). al presionar el Commmand1.
Al entrar en la Sub Sumar, el dato se modifica ( Valor = Valor + 100). Cuando finaliza el procedimiento Sumar y retorna a la línea siguiente de la llamada a la Sub sumar, muestra mediante un MsgBox el valor de la misma, en este caso es 100, y NO 200 que es el cambio que tuvo dentro del procedimiento Sumar ( Valor = Valor + 100 ).
Con esto queda visto que en realidad al enviarla como ByVal, se envía una copia de la variable original y cualquier cambio que se produzca, será solo en el ámbito del procedimiento o función
1.5 - Ejemplo de envío de parámetros por Referencia ( ByRef )
Este ejemplo es igual que el anterior, pero en la Sub sumar , la variable Valor se declara con ByRef ( por Referencia )
Código
Private Sub Command1_Click() Dim Un_Valor As Long Un_Valor = 100 'Se envía la variable por Referencia ( ByRef ) con el valor 100 Call Sumar(Un_Valor) 'Muestra el valor que ahora es 200, ( ya que se modificó en la Sub Sumar) MsgBox Un_Valor End Sub Sub Sumar(ByRef Valor As Long) 'Modifica la variable Valor = Valor + 100 End Sub
Al probar el código, ahora el Msgox al mostrar el valor de la variable, es de 200, y NO de 100 como en el ejemplo de ByVal.
Esto demuestra que al enviar la variable como referencia, si la misma se modifica dentro del procedimiento o función, se está modificando la variable REAL, es decir cualquier cambio que se le haga a la misma, se mantendrá, ya que se está modificando la variable Real ( no es una copia )
Nota Importante: cuando no se indica a un parámetro de una función o Rutina ni ByVal, ni ByRef, se asume que la misma se está enviando como referencia (ByRef).
Es decir lo siguiente recibe el parámetro como Referencia
Sub Sumar(Valor As Long)
.. que es lo mismo a esto:
Sub Sumar(ByRef Valor As Long)
2 - Las Funciones en visual basic
Las funciones son casi exactamente iguales que los procedimientos con respecto a la forma en que se los llama y se los crea o declara en el código, en como se le pasa los parámetros etc..
La diferencia fundamental con respecto a los procedimientos o subrutinas es que estos, luego de ejecutar el código que tengan en su interior, al final retornan un valor, y este valor luego lo podemos utilizar para una determinada tarea. En cambio los procedimientos, solo ejecutan el código que contienen y luego mueren por decirlo de alguna manera.
Para declarar o crear una función podríamos escribir lo siguiente:
Private Function Total(Valor1 As Integer, Valor2 As Integer) As Long
Total = Valor1 + Valor2
End Function
Seguramente notaste que declaramos la función llamada Total, y al final de los parámetros dice As Long , esto es por que como dijimos las funciones retornan o devuelven un valor, o sea que en este caso la función es de tipo Long, o mejor dicho devolverá un valor de tipo Long., y luego ese valor devuelto lo podemos utilizar en otra parte del programa.
Las Funciones pueden retornar casi cualquier tipo de datos, como números, cadenas, fechas, arreglos y vectores
Para llamar a la función anterior podríamos hacerlo de la siguiente manera:
Label1.caption = Total 502, 1478
En este caso el control Label1 llamaría a la función Total , la función realizaría la suma de los valores pasados como parámetros y por último el valor final de la suma se lo asignaría al control label1.
Nota : En el siguiente link , hay un ejemplo de una función que retorna un array de tipo string
3 - Ejercicios de ejemplo sobre procedimientos y funciones
Estos ejercicios y ejemplos tratan los temas vistos en esta sección, podés descargarlos en los enlaces de abajo. Los archivos en formato zip, contienen el código fuente y la descripción de los mismos en el mismo código fuente.
1 - Funciones para el tratamiento de cadenas
Las funciones de cadena , como su nombre lo indica, se utilizan para trabajar y tratar las cadenas de caracteres.
A continuación las mas importantes de ellas.
1.1 - Función Lcase y Ucase
Estas dos funciones se utilizan para convertir cadenas de texto a minúscula y mayúscula.
La función Lcase cambia o convierte una cadena de texto a minúscula y un ejemplo de como utilizarla sería así:
Lcase (cadena que queremos convertir a minúsculas)
Ejemplo:
Dim cadena As String
cadena = "HOLA MUNDO"
'Convertimos
cadena = LCase(cadena)
'La variable cadena ahora vale "hola mundo"
La función Ucase funciona de la misma manera que Lcase pero convierte el contenido de una cadena a mayúsculas.
Por ejemplo, si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de sueldos", escribiendo la siguiente línea:
Label1 = UCase(Label1)
El control Label1 pasaría a mostrar o mejor dicho contener en su propiedad caption:"PORCENTAJE DE SUELDOS".
1.2 - Función Trim, LTrim y RTrim
Estas tres funciones se utilizan para eliminar los espacios vacíos de una cadena.
LTrim elimina los espacios vacíos de la parte izquierda de la cadena, RTrim de la parte derecha y Trim de ambas partes.
Ejemplos:
Tenemos una variable llamada ciudad con el valor " Barcelona". Para eliminar los espacios vacíos de la izquierda haríamos lo siguiente:
ciudad = LTrim(ciudad)
Si en un TextBox quisieramos borrar todos los espacios vacíos de la parte derecha de la cadena:
MiText = RTrim(MiText)
La Función Trim elimina todos los espacios vacíos de ambos lados de la cadena. Ejemplo:
Pais = " Argentina "
País = Trim(Pais)
Ahora el valor de País es igual a: "Argentina".
1.3 - Función Len
La función Len nos permite conocer la cantidad de caracteres que tiene una determinada cadena. O sea que esta función nos devuelve un número.
Ejemplo:
Len (Aquí va la cadena que queremos averiguar su tamaño)
Como la función Len devuelve un número debemos asignar ese número devuelto en una variable de tipo numérica.
Ejemplo:
Dim TamanoCadena As Long
Dim MiCadena As String
MiCadena = "Me Llamo Eustaquio"
TamanoCadena = Len(MiCadena)
El valor de la variable TamanoCadena pasaría a valer 18.
Hay que tener en cuenta que la función Len también toma en cuenta los espacios vacíos.
1.4 - Función Asc y Chr
La función Asc nos permite obtener el código ASCII de un de terminado caracter.
Ejempos:
Si queremos obtener el código ASCII del caracter "a", que es el número 97 podríamos hacer lo siguiente:
Dim num As Integer
num = Asc("a")
En definitiva la función Asc lleva un solo parámetro de tipo String del cual queremos obtener dicho número.
La Función Chr actúa a la inversa de la función Asc, esto quiere decir, que a partir de un determinado número nos devolverá el caracter ASCII.
Obviamente que en vez de pasarle a la función un parámetro String es decir la letra, debemos pasarle un número ASCII y nos devolverá el carácter asociado.
Ejemplo:
Dim letra As String
letra = Chr(97)
La variable pasa a valer en este caso el caracter "a"
1.5 - Función InsTr
La función InStr se utiliza para buscar una cadena o parte de una cadena dentro de otra cadena.
Si la función encuentra la cadena a buscar devuelve un número que representa la posición donde encontró la cadena, si no la encuentra devuelve un 0.
Los parámetros que lleva esta función son:
InStr (comienzo, Cadena donde buscar , La Cadena a buscar)
Como esta función devuelve un número debemos almacenarla en una variable de tipo numérica para utilizarla.
Ejemplo:
Dim posicion As Integer
posicion = InStr("Estoy tomando mate", "mate")
En este ejemplo la función encontró la cadena "mate" en la posición 15, o sea que la variable posición pasa a valer 15.
Si observamos bien, la función en el primer parámetro, denominado comienzo, nos pide que le digamos desde que posición comenzar a buscar. En nuestro ejemplo, este parámetro lo obviamos, esto quiere decir que comenzará desde la posición 0 de la cadena a buscar. Pero podríamos especificar una posición en particular, por ejemplo desde la 5 , 10 etc..., según lo que necesitemos hacer.
Otro ejemplo de InsTr :
Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene dos opciones, un botón para buscar la primera frase, y otro que sigue buscando a partir de donde esté ubicda la selección.
Para armar el ejemplo colocar un Textbox llamado Text_Buscar que es donde se ingresará la frase y otro TextBox llamado Text1 que tendrá el texto. Este ultimo con la propiedad Multiline en True.
También colocar dos CommandButton: Command1 y Command2
Colocar el siguiente código fuente en el formulario:
Option Explicit Private m_Pos As Integer Sub buscar_cadena(ByVal Posicion As Integer) Dim p As Integer, Frase As String Frase = txt_Buscar p = InStr(Posicion, Text1, Frase) If p > 0 Then m_Pos = p With Text1 .SelStart = m_Pos - 1 .SelLength = Len(Frase) .SetFocus End With Else MsgBox "No se encontró la frase", vbInformation Text1.SetFocus End If End Sub Private Sub Command1_Click() 'Busca a pratir de la primera pocición Call buscar_cadena(1) End Sub Private Sub Command2_Click() 'Busca a partir del valor que tenga m_Pos Call buscar_cadena(m_Pos + 1) End Sub Private Sub Form_Load() Command1.Caption = "Buscar" Command2.Caption = "Buscar siguiente" Me.Caption = "Ejemplo de InStr " End Sub
Nota: también hay una función similar a Instr llamada InstrRev , y lo que hace es devolver la posición de la primera concurrencia de una cadena dentro de otra cadena, pero comenzando por el extremo derecho de la misma
En este enlace hay un ejemplo que usa la función instrRev
Extraer de un path o ruta, solo la extensión del archivo
Función Left, Right y Mid
Estas funciones son utilizadas para extraer partes de una cadena.
La función Left:
tiene 2 parámetros: El primero es la cadena de la cual se extraerán caracteres, y el segundo un número desde el cual comenzar a extraer caracteres desde la parte izquierda.
Ejemplo:
Dim Cadena As String
Cadena = Left("Ya es la madrugada", 9)
'Cadena, que es un string, sería igual a: "Ya es la"
Función Right:
Es igual que la función Left pero comienza a extraer caracteres desde el lado derecho de la cadena.
La función Mid:
Tiene la misma función que las anteriores pero posee tres parámetros. Su sintaxis es:
Mid (cadena, inicio, longitud)
El parámetro cadena es la cadena a extraer caracteres. El parámetro Inicio es donde comenzar y el parámetro longitud, es la cantidad de caracteres a extraer de la cadena de caracteres
Ejemplos:
Dim nombre As String
nombre = Mid("River perdió la copa", 7, 6)
'La variable nombre sería igual a: "perdió"
Este Otro ejemplo usa la función Mid para realizar un simple efecto tipo máquina de escribir.
Colocar en un formulario un CommandButton y el siguiente código fuente en el form.
Option Explicit Sub Pausa(Segundos As Double) Dim inicio As Double ' Devuelve la cantidad de segundos desde que inicio windows inicio = Timer Do While (Timer - inicio) < Segundos ' pausa DoEvents Loop End Sub Private Sub Command1_Click() Dim texto As String texto = "... Hola mundo --->>> " Call MostrarTexto(texto, 0.1, Me) End Sub Private Sub MostrarTexto(Frase As String, _ Segundos As Double, _ Destino As Object) Dim LenFrase As Integer Dim i As Integer Dim Caracter As String Dim texto As String LenFrase = Len(Frase) Do While i <= LenFrase Destino.Cls DoEvents i = i + 1 ' Obtiene el siguiente caracter Caracter = Mid(Frase, i, 1) ' texto actual texto = texto & Caracter Destino.Print texto ' Imprimi e/ dibuja el texto ' pausa o delay Pausa Segundos DoEvents Loop End Sub Private Sub Form_Load() Me.FontSize = 12 Me.Font.Bold = True Me.ForeColor = vbRed Command1.Caption = " Efecto de texto con mid " End Sub Private Sub Form_Unload(Cancel As Integer) End End Sub
1.6 - Función Str y Val
La función Val convierte una cadena en un número yla función Str un número en una cadena.
Ejemplos:
cadena = "123456"
cadena = Val(cadena)
'Ahora cadena vale 123456
cadena2 = 123456
cadena2 = Str(cadena2)
'Ahora cadena2 vale "123456"
2 - Funciones para el tratamiento de números
Visual Basic posee muchas funciones para tratar números. A continuación las principales funciones.
2.1 - Función Round
La función Round se utiliza para redondear un número decimal, devolviendo un número entero.
Ejemplo:
Dim Mimumero As Long
Minumero = Round(245.8) '(La función devuelve 246)
Minumero = Round(245.3) '(La función devuelve 245)
Minumero = Round(245.5) '(La función devuelve 245)
Round posee un parámetro opcional por si queremos incluir los dígitos decimales.
2.2 - Rnd y Randomize - Números aleatorios
Para generar números aleatorios, Visual Basic incluye 2 funciones: Rnd y Randomize.
La función Rnd devuelve un número aleatorio, y esta posee un solo parámetro.
Ejemplo :
Rnd (número)
Pero para poder generar dichos números aleatorios, debemos utilizar previamente la función Randomize con la siguiente fórmula:
Dim LimiteInferior As Integer
Dim LimiteSuperior As Integer
LimiteInferior = 20
LimiteSuperior = 40
MsgBox Int((LimiteInferior - LimiteSuperior + 1) * Rnd + LimiteInferior)
En el ejemplo anterior, se generarán números aleatorios comprendidos entre el 20 y el 40
Nota: en este enlace podés ver un ejemplo que permite generar números aleatorios no repetidos
Funciones matemáticas
Las principales funciones matemáticas provistas por Visual Basic son:
- Abs: Devuelve el valor absoluto de una expresión numérica.
- Atn: Devuelve el arco tangente de un número.
- Cos: Devuelve el coseno de un ángulo.
- Exp: Devuelve el número "e" elevado a una potencia.
- Log: Devuelve el logaritmo natural de un número.
- Sgn: Devuelve un valor indicando el signo de un número.
- Sin: Devuelve el seno de un ángulo.
- Sqr: Devuelve la raíz cuadrada de un número.
- Tan: Devuelve la tangente de un ángulo.
3 - Funciones de formato
Visual Basic posee varias funciones para darle formato a distintos tipos de datos e información. A continuación se ve algunos ejemplos de las principales funciones:
- FormatCurrency: Esta función se utiliza para trabajar con números con formato en dinero. Ejemplo:
si tenemos un número 3 y utilizamos la función nos devolvería "$3". - FormatPercent: Esta función es utilizada para trabajar con porcentajes. Ejemplo :
si tendríamos un número 321, nos devolvería: "32,1%" . - FormatDateTime: Esta función trabaja con fechas y horas.
- FormatNumber: Formatea expresiones números
Resultado = FormatPercent(321) 'devuelve: "32.100,00%"
Resultado = FormatCurrency(3) 'devuelve: "$3,00"
Resultado = FormatDateTime("6-8-1978") 'La función devolvería: "06/08/1978"
NumDigitsAfterDecimal: Parámetro de tipo opcional. Este indicará cuantos números decimales devolverá la función:
Ejemplo
cadena = FormatCurrency(325, 3) 'Devuelve: "$325,000"
Ejemplo de la función FormatDateTime
Esta función, en el primer parámetro se le debe pasar la fecha u hora a formatear, y el segundo parámetro es el tipo de formato, pueden ser 5 tipos.
vbGeneralDate, vbLongDate, vbShortDate, vbLongTime y vbShortTime.
Este parámetro es de tipo opcional. al colocar la coma dentro de la función , visual basic despliega la lista de constanetas mencionadas, como muestra el gráfico:
Un ejemplo para ver estos formatos utilizando FormatDateTime: Colocar cinco option Button, cada botón de opción mostrará los diferentes formatos en el caption del formulario, es decir en la barra de título.
Código en el formulario:
Private Sub Form_Load() Option1.Caption = " vbGeneralDate " Option2.Caption = " vbLongDate " Option3.Caption = " vbShortDate " Option4.Caption = " vbLongTime " Option5.Caption = " vbShortTime " End Sub Private Sub Option1_Click() Me.Caption = FormatDateTime(Now, vbGeneralDate) End Sub Private Sub Option2_Click() Me.Caption = FormatDateTime(Now, vbLongDate) End Sub Private Sub Option3_Click() Me.Caption = FormatDateTime(Now, vbShortDate) End Sub Private Sub Option4_Click() Me.Caption = FormatDateTime(Now, vbLongTime) End Sub Private Sub Option5_Click() Me.Caption = FormatDateTime(Now, vbShortTime) End Sub
FormatNumber - Ejemplos:
Formatea 0.489698 a 0,49
Dim Numero As Double
Numero = 0.489698
Numero = FormatNumber(Numero, 2, vbFalse)
MsgBox Numero
Formatea 1.958754 a 1,96
Dim Numero As Double
Numero = 1.958754
Numero = FormatNumber(Numero, 2)
MsgBox Numero
Función Format:
La función Format es mas completa que las anteriores funciones, porque puede manejar mas tipos de datos, y no devuelve solo cadenas, esta también puede devolver números y fechas.
La función Format posee dos parámetros:
Format (Expresión, formato)
En el primero debemos colocar cualquier expresión válida. El segundo es opcional y a continuación veremos una descripción de los formatos de VB:
- GeneralNumber: Devuelve el número sin formato.
- Currency: Devuelve el número en formato moneda, con el símbolo "$" y 2 decimales a las derecha.
- Fixed: Devuelve como mínimo un dígito a la izquierda y 2 ala derecha del decimal.
- Standar: Similar a Fixed pero incluye un separador de miles.
- Percent: Multiplica el número por cien y le agrega el símbolo "%"
- True/False: Devuelve Verdadero para un valor distinto de 0,y Falso para 0.
- On/OFF: Devuelve "Activado" para un valor distinto de 0, y "Desactivado" para 0.
La forma de pasar el parámetro es entre comillas.
Ejemplo:
cadena = Format(75, "Currency") ' Devolvería: "$75,00"
Nota: Si ingresamos un número decimal, debemos utilizar el "." y no la coma "," ya que la coma determina el comienzo de otro parámetro dentro de la función y Visual basic daría error de sintaxis
4 - Funciones de formato para fechas y hora
Ejemplos de los principales Formatos con nombre para el manejo de Fechas y Horas:
Funciones para Fechas
Dim cadena As String
cadena = Format("06/08/78", "General Date") ' Devuelve: "06/08/1978"
cadena = Format("19/08/79", "Long Date") ' Devuelve : "Jueves 19 de Agosto de 1979".
cadena = Format("19/8/79", "Medium Date") ' Devuelve: "19-Ago-1979"
cadena = Format("17:08", "Short Time") ' "05:08"
cadena = Format("17:08", "Medium Time") ' "05:08 PM"
cadena = Format("17:08", "Long Time") ' "05:08:00 PM"
4.1 - Funciones para calcular fechas
Visual basic cuenta con una serie de funciones que nos permiten calcular fechas y horas, por ejemplo generar un intervalo de fechas, sumar y restar fechas y horas y otras operaciones y cálculos
DateAdd : Devuelve un Variant que contiene una fecha que indica el intervalo de tiempo que se ha agregado
DateDiff : Devuelve el número de intervalos de tiempo entre dos fechas determinadas
DatePart : Devuelve una parte específica de una fecha dada
DateSerial : Devuelve un valor Date para un año, mes y día determinados
Ejemplos
El siguiente ejemplo utiliza la función DateDiff para mostrar el itervalo entre dos fechas. El intervalo lo muestra en segundos , minutos, dias, semanas meses y años, como muestra el siguiente gráfico
Colocar en el formulario un Command1.
Option Explicit ' recibe las dos fechas como parámetros '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub Calcular(Fecha_Inicial As Date, _ Fecha_Final As Date) Const Formato As String = "#,##0" Me.Cls Me.Print "Calcular Intervalos entre las fechas " & Fecha_Inicial & _ " hasta :" & Fecha_Final & vbNewLine & String(150, "-") & vbNewLine Me.Print Format(DateDiff("s", Fecha_Inicial, Fecha_Final), Formato) & " segundos" Me.Print Format(DateDiff("n", Fecha_Inicial, Fecha_Final), Formato) & " minutos" Me.Print Format(DateDiff("h", Fecha_Inicial, Fecha_Final), Formato) & " horas" Me.Print Format(DateDiff("y", Fecha_Inicial, Fecha_Final), Formato) & " dias" Me.Print Format(DateDiff("WW", Fecha_Inicial, Fecha_Final), Formato) & " semanas" Me.Print Format(DateDiff("m", Fecha_Inicial, Fecha_Final), Formato) & " meses" Me.Print Format(DateDiff("yyyy", Fecha_Inicial, Fecha_Final), Formato) & " años" End Sub Private Sub Command1_Click() ' le pasa las dos fechas a la función Call Calcular("01/01/2000", Date) End Sub Private Sub Form_Load() Me.AutoRedraw = True Command1.Caption = "calcular intervalos " End Sub
Ejemplo con DateAdd
Lo siguiente, muestra como añadir y restar fechas
' agrega 10 años a la fecha actual MsgBox DateAdd("yyyy", 10, Date) ' Agrega cinco meses a la fecha actual MsgBox DateAdd("m", 5, Date) ' resta 1 dias a la fecha actual ( usa el signo -) MsgBox DateAdd("y", -1, Date)
Nota: para restar, usar el signo negativo, como se usa en el último ejemplo.
Para poder restar y agregar segundos a una hora, usar en el parámetro intervalo la "S", para minutos usar la "n", para horas la "h", para restar y sumar semanas la "ww"
En el siguiente enlace podés ver algunos otros ejemplos que trabajan con dichas funciones
Funciones para trabajar con fechas en visual basic
Calcular edad de una persona usando DateDiff
Averiguar con Dateserial, el Primer y último día de un mes
4.2 - Funciones para obtener la fecha u hora actual de la PC
Dim Cadena As String
Cadena = Date ' Devuelve el día del sistema en este formato: "02/08/2004"
Cadena = Time ' Devuelve la hora del sistema en este formato: "17:32:51"
'Funciones para establecer la fecha u hora de la PC:
Date = (La fecha que queremos establecer)
Time = (La hora que queremos establecer)
5 - Funciones para presentar mensajes
Visual Basic posee 2 tipos de funciones para presentar mensajes, ellas son MsgBox e InputBox.
Función InputBox:
La función InputBox presenta un mensaje al usuario, permitiéndole ingresar un valor en una caja de texto:
Como se dijo la función InputBox presenta un cuadro de diálogo donde el usuario puede ingresar un texto y luego aceptar o cancelar dicho cuadro de diálogo.
Los parámetros principales de esta función son:
InputBox (Promt,Title, Default)
- El parámetro Prompt específica la leyenda que mostrará la caja de mensajes.
- El parámetro Title especifica el título que llevará el cuadro de diálogo.
- El parámetro Default es el texto que mostrará la caja de texto.
El aspecto mas importante de InputBox es que nos devuelve una cadena con lo que haya ingresado el usuario en la caja de texto. Luego podemos realizar una tarea específica dependiendo del valor devuelto.
Ejemplo:
Dim retorno As String
retorno = InputBox("Ingrese algo en la caja de texto", "Ejemplo")
MsgBox "Usted ingresó:" & retorno
En el ejemplo anterior, en la variable Retorno se almacenará el valor que haya ingresado el usuario cuando haga Click en el botón de Aceptar.
Cuando el usuario presiona Candelar, el InputBox devuelve una cadena vacía. Esto es importante tenerlo en cuenta para realizar una o tal acción
Si quiseramos por ejemplo desplegar un InputBox, y que este no se cierre hasta que el usuario si o si haya ingresado un valor, podemos hacerlo de la siguiente forma, utilizando una condición en un bucle Do Loop
Código fuente en el formulario
Private Sub Form_Load() Dim Dato As String ' Hasta que no se ingrese un dato, _ el InputBox no se cerrará Do Dato = InputBox("Ingresar algun dato", " Ejemplo ") Loop Until Dato <> "" 'Muestra el valor MsgBox Dato, vbInformation End Sub
Enlace relacionado :
Función MsgBox:
La función MsgBox, que ya se vió varias veces en distintos ejemplos, es muy fácil de usar y se utiliza para mostrar distintos tipos de mensajes.
Ejemplos de mensajes o cajas de texto con la función MsgBox que podemos mostrar:
![]() |
![]() |
![]() |
![]() |
Como se ve en los gráficos anteriores, con MsgBox podemos tener variedad a la hora de mostrar un determinado mensaje, utilizando para ello las diferentes constantes que incorpora la función.
Los parámetros mas importantes son:
- Title : Es la leyenda que aparecerá en el título del mensaje.
- Texto : Es el Texto que mostrará el mensaje.
- Botones: En este parámetro se colocan las constantes que determinarán si la caja tiene uno o varios botones y el tipo de mensaje: informativo, de exclamación de alerta etc... Cuando escribimos la coma dentro de la función en el parámetro botones, Visual Basic despliega una lista con las opciones o constantes que podemos utilizar.