Sie sind auf Seite 1von 70

CETIS 7 MIGUEL LERDO DE TEJADA

CLAVE: 09DET0077L
SISTEMA ABIERTO DE EDUCACION TECNOLOGICA
INDUSTRIAL
MATERIA: PROGRAMACION VISUAL
CLAVE DE ASIGNATURA: 34
NOMBRE DE ALUMNO: EDGAR JAIR CASTAON PEREZ
NUMERO DE CONTROL: 100530906A0576
ESPECIALIDAD: COMPUTACION
PERIODO DE INGRESO: 10/05/2010
CLAVE DE PLAN DE ESTUDIOS: TCP 00

UNIDAD I INTRODUCCION A VISUAL BASICA


1.1 ENTORNO DE DESARROLLO VISUAL BASIC
Cuando se arranca Visual Basic 6.0 aparece en la pantalla una configuracin. En ella se pueden distinguir los
siguientes elementos:
1. La barra de ttulos, la barra de mens y la barra de herramientas de Visual Basic 6.0 en modo Diseo (parte
superior de la pantalla).
2. Caja de herramientas (toolbox) con los controles disponibles (a la izquierda de la ventana).
3. Formulario (form) en gris, en que se pueden ir situando los controles (en el centro). Est dotado de una
rejilla (grid) para facilitar la alineacin de los controles.
4. Ventana de proyecto, que muestra los formularios y otros mdulos de programas que forman parte de la
aplicacin (arriba a la derecha).
5. Ventana de Propiedades, en la que se pueden ver las propiedades del objeto seleccionado o del propio
formulario (en el centro a la derecha). Si esta ventana no aparece, se puede hacer visible con la tecla.
6. Ventana FormLayout, que permite determinar la forma en que se abrir la aplicacin cuando comience a
ejecutarse (abajo a la derecha).
Existen otras ventanas para edicin de cdigo (Code Editor) y para ver variables en tiempo de ejecucin con
el depurador o Debugger (ventanas Immediate, Locals y Watch). Todo este conjunto de herramientas y de
ventanas es lo que se llama un entorno integrado de desarrollo o IDE (Integrated Development Environment).
Construir aplicaciones con Visual Basic 6.0 es muy sencillo: basta crear los controles en el formulario con
ayuda de la toolbox y del ratn, establecer sus propiedades con ayuda de la ventana de propiedades y
programar el cdigo que realice las acciones adecuadas en respuesta a los eventos o acciones que realice el
usuario. A continuacin, tras explicar brevemente cmo se utiliza el Help de Visual Basic, se presentan
algunos ejemplos ilustrativos.

1.1.1

BARRA DE MENUS

Los mens nos sirven para mostrar los comandos y las opciones de nuestra aplicacin agrupados por
finalidad. Adems, al no tener que usar gran cantidad de botones, permiten ahorrar espacio dentro de
nuestros formularios.
La barra de mens de Visual Basic 6.0 resulta similar a la de cualquier otra aplicacin de Windows.
Adems de los mens estndar Archivo, Edicin, Ver, Ventana y Ayuda, contiene otros mens para tener
acceso a funciones especficas de programacin, como Proyecto, Formato o Depuracin, Ejecutar, Consulta,
Diagrama, Herramientas, Complementos, Ventana y Ayuda.

1.1.2

MENUS CONTEXTUALES

Los mens contextuales (mens emergentes) aparecen cuando el usuario hace click con el botn derecho
sobre un elemento de la aplicacin. El programa debe reconocer el evento MouseUp o MouseDown, ver si el
usuario ha hecho un click con el botn derecho (argumento Button igual a 2) y llamar al mtodo PopupMenu,
que tiene la siguiente forma general:
PopupMenu menuName [,flags[,x[,y]]]

donde menuName es el nombre de un men (con al menos un elemento), x y y son las coordenadas base
para hacer aparecer el men contextual, y flags son unas constantes que determinan ms en concreto dnde
y cmo se muestra el men.
Las constantes que determinan dnde aparece el men son:
vbPopupMenuLeftAlign (default), vbPopupMenuCenterAlign y vbPopupMenuRightAlign.

Por otra parte vbPopupMenuLeftButton (default) y vbPopupMenuRightButton determinan si el comando se


activa con el botn izquierdo o con cualquiera de los dos botones. Las constantes se combina con el operador
Or. El nombre del men que aparece en el mtodo PopupMenu debe haber sido creado con el Menu Editor,
aunque puede tener la propiedad Visible a False, si no se desea que se vea.
Opciones del men contextual
El hecho de tener siempre asociado un men contextual con un determinado formulario, no impide que el
men contextual aparezca cuando se pulsa sobre uno de los controles situados en el formulario. Adems se
puede indicar la ubicacin exacta del men contextual.
En el ejemplo anterior de llamada al PopupMenu, los indicadores se encargan de definir la ubicacin
respecto a las coordenadas X y Y tambin introducidas y el comportamiento del men contextual.
Los valores que puede tomar este parmetro respecto a la posicin del men son:
vbPopupMenuLeft.Align (valor 0): valor predeterminado que nos indica que el lado izquierdo del men viene
dado por el valor X.
vbPopupMenuCenter.Align (valor 4): En este caso el men contextual se centra respecto a X.
vbPopupMenuRight.Align (valor 8): El lado derecho del men se sita en X.
Los valores que puede tomar respecto al comportamiento a seguir son:
vbPopupMenuLeftButton (valor 0): Los elementos del men contextual slo reaccionan a los click del ratn
cuando se use el botn primario del ratn. Este es el valor predeterminado.
vbPopupMenuRightButton (valor 2): Los elementos del men contextual reaccionan a los click del ratn
cuando se use el botn primario o secundario.

1.1.3

BARRA DE HERRAMIENTAS

La imagen de la barra de herramientas, tiene lo que se denomina barra estndar de herramientas, cada uno
de estos controles realiza la siguiente funcin:

Cursor del ratn: sirve para quitar la seleccin del que hayamos pulsado por error.
Picture: permite incluir grficos, es parecido al image pero con variantes.
Label (Etiqueta): sirve para poder poner mensajes o textos en la pantalla, pero no son editables por el
usuario.
TextBox: caja de texto, permite que el usuario pueda escribir directamente.
Frame: es un contenedor para los dems controles.
CommandButton: Botn de comando, permite que el usuario pueda pulsar botones y

que realicen determinadas acciones

CheckBox: caja de chequeo, permite tener opciones sobre las que el usuario confirma o niega.
OptionButton: botn de opcin, permite tener varias opciones de las cuales seleccionar una.
ComboBox: caja combinadam, permite tener varias opciones de las cuales seleccionar y ver una.
ListBox: caja de lista, presenta una lista de opciones y permite seleccionar una o varias

de dichas opciones

HScroll: (Barra Horizontal de Scroll) se puede crear un barra de desplazamiento horizontal.


VScroll: barra vertical de Scroll, permite tener una barra vertical para desplazamientos.
Timer: es un controlador de tiempo.
DriveBox: caja de unidades, permite indicar que unidades de almacenamiento tiene el ordenador.
DirBox: caja de directorios, indica los directorios y subdirectorios de una ruta en concreto.
FileList: indica una lista de los ficheros que se encuentran en un determinado directorio o
subdirectorio.
Shape: permite incluir formas grficas en el formulario, como un cuadrado, un crculo, etc.
Line: permite incluir una lnea en el formulario.
Image: permite incluir imgenes como fotografas, dibujos, etc..
Data: permite la conexin con una base de datos y poder aadir, modificar, consultar, borrar, etc.

1.1.4

EXPLORADOR DE PROYECTOS

El explorador de proyectos es utilizado para desplazarse por los distintos componentes del proyecto.
(formularios, mdulos y componentes)
Cuenta con tres pequeos conos en su parte superior izquierda:

Ventana de cdigo:

1. Cuadro de Objeto: Despliega el nombre del objeto seleccionado en el formulario.


2. Cuadro de Procedimiento: Muestra todos los eventos que tiene el objeto seleccionado en el
formulario.
3. cono de Vista de Procedimiento: Muestra de a un procedimiento a la vez.
4. cono de Vista completa del mdulo: Muestra todo el cdigo del mdulo.
5. Barra de Margen: Tiene algunos indicadores que permiten depurar el proyecto
6. Barra de divisin: Permite dividir la ventana de cdigo en dos paneles horizontales, lo que
facilita trabajar con varias partes diferentes de cdigo.
Esta ventana se utiliza para visualizar e ingresar todo el cdigo en el Visual basic. Se pueden abrir varias
ventanas de cdigo de acuerdo a la cantidad de formularios que existan. Para abrir la ventana de cdigo
se puede ir al Men Ver y seleccionar la opcin Cdigo o pulsar la tecla F7, Tambin elegir el cono
en
el explorador de proyectos. Una forma an ms fcil es hacer doble click sobre un control en el formulario.

Diseador de formularios
tercero alterna entre distintas carpetas.

Por cada componente aparecen en el explorador dos nombres:


1) El de la izquierda que es el nombre del objeto
2) El de la derecha (parntesis) que es el nombre con el que se guard el objeto en el disco.

1.1.5

VENTANAS DE PROPIEDADES

La ventana Propiedades contiene la lista de propiedades, eventos y mtodos del formulario, entorno de datos,
cursor, relacin o control seleccionados. Estas propiedades se establecen o se modifican en tiempo de diseo
o por medio de programacin.
Tambin puede seleccionar varios objetos y mostrar despus la ventana Propiedades. En este caso, la
ventana Propiedades muestra las propiedades que tengan en comn los objetos seleccionados.
Puede abrir la ventana Propiedades desde el men Ver. O bien, haga clic con el botn secundario del mouse
en el Diseador de formularios o en el Diseador de entornos de datos, y elija Propiedades en el men
contextual del Diseador de formularios.

UNIDAD II MANEJO DE FORMULARIOS VISUAL BASIC


2.1 GENERALIDADES
Visual Basic es un lenguaje de programacin de los llamados "visuales", puesto que parte de la programacin
que se realiza con l se basa en la utilizacin de elementos visuales. La palabra "Visual" hace referencia al
mtodo que se utiliza para crear la interfaz grfica de usuario. En lugar de escribir numerosas lneas de cdigo
para describir la apariencia y la ubicacin de los elementos de la interfaz, simplemente podemos agregar
objetos prefabricados en su lugar dentro de la pantalla, que ahorran mucho tiempo de programacin y que
sobrepasan el concepto de la programacin convencional en cuanto a la estructura secuencial del programa.
Tradicionalmente el lenguaje Basic (Beginners All-Purpose Symbolic Instruction Code) se ha considerado
como el lenguaje adecuado para principiantes en el mundo de la programacin, si bien se le achaca que no
tiene la potencia suficiente para cubrir todas las expectativas de los programadores avanzados. Cierto es que
aunque nos permite la creacin de componentes y trabajar con objetos, otros lenguajes tienen ms potencia
en la programacin orientada a objetos, pero a medida que han avanzado en las versiones de Visual Basic, ha
aumentado su versatilidad. Este curso pretende ser una iniciacin a la programacin en Visual Basic, que
posteriormente puede implementarse con otros cursos avanzados en el sentido de profundizar en el concepto
de la programacin. La versatilidad a la que se hace alusin viene del hecho de que una vez realizado este
curso se tiene la base suficiente para abordar otros aspectos de la programacin actual. En primer lugar,
podramos abordar la programacin de VBA (Visual Basic para Aplicaciones), que nos permitir programar
rutinas de cdigo que nos proporcionarn mayor potencia y funcionalidad de nuestras aplicaciones ofimticas,
por ejemplo para los programas del paquete Microsoft Office: Microsoft Word, Microsoft Excel, Microsoft
Access..., las macros que se pueden programar en estos programas se escriben en VBA, que es un lenguaje
basado en Visual Basic, es decir una vez conocido este, aprender VBA consiste en tener en cuenta las
especificaciones que hace sobre el Visual Basic que ya conocemos, la idea a transmitir es que no hay que
aprender nada nuevo desde el principio, sino que con poco esfuerzo, rpidamente podemos empezar a crear
nuestras propias macros.

2.1.1 DEFINICION DE PROYECTO, FORMULARIOS Y EVENTOS.


El formulario es el primer objeto o control que se visualiza en Visual Basic y constituye la pantalla o ventana
sobre la que se colocan otros objetos o controles como etiquetas, controles de texto, botones, etc. y por
supuesto el cdigo necesario de nuestros programas, por lo tanto constituirn la Interfaz de usuario.

Al igual que todo control tiene sus propiedades, las mismas que podemos establecerlas en la ventana de
propiedades.
Nota: Recuerde que para establecer las propiedades de cada objeto primero debemos dar click en el objeto o
control y luego establecerlas en la ventana de propiedades
PROPIEDADES DEL FORMULARIO: Se detallarn las ms utilizadas:
Name: En todo control la primera propiedad que debe establecerse es el nombre del objeto, es recomendable
que en el caso del formulario las tres primeras letras sean Frm, precisamente para saber que se trata de un
formulario, y luego seguida del nombre que se le quiere asignar, no admite espacios.

Como puede apreciar en la parte inferior de la ventana de propiedades se tiene una pequea descripcin de la
propiedad elegida.
BackColor: Permite cambiar el color del fondo del formulario
BackgroundImage: Establece una imagen como fondo del formulario
BackgroundImageLayout: Diseo de la imagen de fondo: None, Tile, Center, Stretch, Zoom
ControlBox: Determina si la ventana tiene o no botones de control

Cursor: Cursor que aparecer al pasar el puntero por el formulario, se visualizar slo en tiempo de ejecucin
(f5)
FormBorderStyle: Establece

el

estilo

del

borde

del

formulario

Icon: Indica el cono del formulario es decir aquel que va en la barra de ttulo, se visualizar tambin en la
barra de tareas de windows cuando el formulario se minimiza
MaximizeBox: Permite que el botn de maximizar que se encuentra en los botones de control se encuente
habilitado o no (se puede utilizar o no)
MinimizeBox: Permite que el botn de minimizar que se encuentra en los botones de control se encuentren
habilitado o no.
ShowIcon: Indica si un cono se muestra o no en la barra de ttulo del formulario
ShowInTaskbar: Determina si el formulario aparece en la barra de tareas de windows.
Text: Representa el texto que se visualizar en la barra de ttulo (no confundir con el nombre)
WindowState: Determina el estado visual inicial del formulario: Normal, Maximized, Minimized
Ms informacin
EVENTOS: Los eventos los podemos encontrar en la ventana de cdigo, la misma que se presenta al dar
doble clic sobre el objeto, en este caso el formulario

Si deseamos que cuando inicie el programa se presente un mensaje, deberemos escoger el evento Load, es
decir, es lo primero que se ejecutar antes de presentarse el formulario, para lo cual debemos asegurarnos de
que estamos en el objeto Form y buscar el evento Load, una vez realizado esto se nos presentar lo
siguiente:
Public Class FrmInicial
Private Sub FrmInicial_Load (ByVal sender As Object...)
End Sub
End Class

Entre Private y End Sub debemos escribir todo lo que queremos que se ejecute, en el caso de nuestro
ejemplo ser:
Public Class FrmInicial
Private Sub FrmInicial_Load (ByVal sender As Object...)
Msgbox ("Bienvenido, el programa se ejecutar.")
End Sub
End Class
Msgbox sirve para presentar un cuadro de mensaje y entre comillas (" ") se colocar el mensaje a presentarse
Para ver el resultado de este cdigo, ejecutamos el proyecto con F5 y para detenerlo en el botn cerrar de los
botones de control
Click: Este evento se ejcutar al dar click sobre el control en este caso sobre el formulario.
Si desearamos que la ventana se maximize al dar click en el formulario, luego de escoger el objeto y el
evento click, la codificacin sera:
Private Sub FrmInicial_Click (ByVal sender as Object...)
Me.WindowState= FormWindowState.Maximized
End Sub
Recuerde la sintaxis de las propiedades:
objeto.propiedad = valor
Cuando hablamos del mismo formulario el objeto ser remplazado por Me, con los dems controles se
utilizar el nombre (el que se establece en name)
Me.WindowState=FormWindowState.Maximized
MouseMove: Este evento indica que cuando pase el puntero del mouse por el formulario se ejecutar lo que
este codificado en l. Por ejemplo si queremos queremos que cambie el color del fondo del formulario ser:
Private Sub FrmInicial_MouseMove(ByVal sender As Object
Me.BackColor=Color.Red
End Sub
FormClosing: Este evento se ejecutar cuando se cierre la ventana. Por ejemplo si queremos visualizar un
mensaje de agradecimiento cuando se cierre la ventana, la codificacin ser:
Private Su FrmInicial_Closing (ByVal sender As Object...)
Msgbox("Gracias por preferirnos")
End Sub
MTODOS: Por el momento veremos dos mtodos del formulario
Show: Permite llamar o presentar otro formulario
Para utilizar este mtodo, primero indicar la manera de aadir un nuevo formulario a un proyecto: En el Men
Proyecto, Agregar Windows Form...

Al dar click en Agregar de la ventana anterior, se tendr un nuevo formulario.


Si al hacer click en el primer formulario llamado FrmInicial queremos pasar al nuevo formulario al cual le
pusimos de nombre FrmSiguiente, la codificacin ser la siguiente:
Private Sub FrmInicial _Click (ByVAl sender As Object....)
FrmSiguiente.Show( )
En Sub
CLOSE: Este mtodo me permite cerrar la ventana. Por ejemplo si al dar click en el formulario FrmSiguiente
quiero que finalice el programa la codificacin ser:
Private Sub FrmSiguiente_Click (ByVal sender As Object ...)
Me.Close ( )
End Sub
Recuerde que para realizar esta ltima codificacin primero deba haber estado o dado click en el
Formulario con el nombre de FrmSiguiente y luego entrar en la ventana de cdigo del mismo y
asegurarse que est en el evento click del mismo.
2.1.2 PASOS PARA DESARROLLAR UNA APLICACIN DE WINDOWS
Para crear una nueva aplicacin y agregarla a la solucin actual, se utiliza el mtodo AddFromTemplate del
objetoDTE.Solution. Esta tarea asume que sabe cmo tener acceso al entorno integrado de desarrollo de
macros (IDE) y cmo crear un proyecto de macros. Para obtener ms informacin, vea Agregar proyecto de
macros (Cuadro de dilogo).
Nota Los pasos siguientes crearn un proyecto de Visual Basic. Para crear un proyecto de Visual C#, utilice
el valor de enumeracin prjKindCSharpProject en el paso 4.
Para agregar un nuevo proyecto a la solucin:
1. Cree un nuevo mdulo de macro denominado NewProject.
2. Agregue al mdulo una nueva macro, NewWindowProject. Esta macro agrega una nueva aplicacin para
Windows y devuelve una referencia al nuevo proyecto.
Function NewWindowProject() As Project
' Add code here to create new project.
End Function

3. Seleccione la plantilla que necesite para un proyecto para Windows. Es posible crear varios tipos diferentes
de proyectos, como se muestra en la tabla. Para una aplicacin para Windows, utilice la plantilla
WindowsApplication.vsz

Nombre de plantilla

Tipo de proyecto

ClassLibrary.vsz

Biblioteca de clases

ConsoleApplication.vsz

Aplicacin de consola

EmptyProject.vbproj

Proyecto vaco

EmptyWebProject.vbproj
ImportProjectFolderVB.vs
z
WebApplication.vsz

Proyecto Web vaco


Proyecto nuevo en carpeta
existente
Aplicacin Web

WebControl.vsz

Control Web

WebService.vsz

Servicio Web

WindowsApplication.vsz

Aplicacin para Windows

WindowsControl.vsz

Control de Windows

WindowsService.vsz

Servicio de Windows

4. Utilice la propiedad TemplatePath para buscar la plantilla de proyecto. La ruta de acceso de la plantilla
depende del lenguaje, as que se utiliza el valor prjKindVBProject (o prjKindCSharpProject).
Dim template As String
template = _
DTE.Solution.TemplatePath(VSLangProj.PrjKind.prjKindVBProject) _
& "WindowsApplication.vsz"
* Nota La plantilla ImportProjectFolderVB.vsz se utiliza para crear un proyecto en una carpeta ya existente. Si
se proporciona una ruta de acceso UNC, se crear una aplicacin para Windows. Si se proporciona una ruta
de acceso URL, se crear un proyecto Web.
5. Llame al mtodo AddFromTemplate (objeto Solution). En este caso, el nombre del proyecto se obtiene delZ
usuario y se utiliza tanto para la ubicacin como para el nombre de proyecto.
Dim newProject As Project
Dim name As String = InputBox("New name:")
Dim folder As String
folder = System.Environment.GetFolderPath( _
Environment.SpecialFolder.Personal)
newProject = DTE.Solution.AddFromTemplate( _
template, folder & "\" & name, name, True)
6. En el caso de un proyecto de Visual Basic o Visual C#, el mtodo devuelve Nothing en lugar de una
referencia al nuevo proyecto. Agregue cdigo para buscar el nuevo proyecto en la coleccin
DTE.Solution.Projects y, a continuacin, devolver la referencia Project.
Dim aProject As Project
For Each aProject In DTE.Solution.Projects
If aProject.Name = name Then
newProject = aProject
End If
Next

Return newProject
A continuacin se muestra la macro completa:
Function NewWindowProject() As Project
' add code here to create new project.
Dim template As String
template = _
DTE.Solution.TemplatePath(VSLangProj.PrjKind.prjKindVBProject) _
& "WindowsApplication.vsz"
Dim newProject As Project
Dim name As String = InputBox("New name:")
Dim folder As String
folder = System.Environment.GetFolderPath( _
Environment.SpecialFolder.Personal)
newProject = DTE.Solution.AddFromTemplate( _
template, folder & "\" & name, name, True)
Dim aProject As Project
For Each aProject In DTE.Solution.Projects
If aProject.Name = name Then
newProject = aProject
End If
Next
Return newProject
End Function
7. Guarde la macro, cierre el IDE de macros y ejecute la macro desde el Explorador de macros.
2.2 CONTROL DE FORMULARIOS
En Visual Basic existen
ActiveX, Objetos insertables

tres

categoras

generales

de

controles: Controles

intrnsecos, Controles

Controles intrnsecos

Estos controles se encuentran dentro del archivo ejecutable de Visual Basic. Los controles intrnsecos estn
siempre incluidos en el cuadro de herramientas, no como los controles Activex, que se pueden quitar o
agregar al cuadro de herramientas. A continuacin una lista de controles intrnsecos.
Nombre de control

Nombre de clase Descripcin

Casilla de
verificacin

CheckBox

Presenta una opcin de tipoVerdadero o


Falso.

Cuadro combinado

ComboBox

Cambina un cuadro de texto y un cuadro de


lista.

Botn de comando
Datos

CommandButton Ejecuta un comando o una accin cuando el


usuario hace clic en l.
Data

Permite conectar una base de datos


existente y presentar informacin en ella en
los formularios.

Cuadro de lista de
directorios

DirListBox

Presenta directorios y rutas de acceso.

Cuadro de lista de
archivos

FileListBox

Presenta una lista de archivos.

Cuadro de lista de
unidades

DriveListBox

Marco
Barras de
desplazamiento
horizontal y vertical

Proporciona un contenedor visual y


funcional para los controles.

HScrollBar y
VScrollBar

Permite que un usuario agregue barras de


desplazamiento a controles que no las
tienen de forma automtica.

Imagen

Image

Presenta mapas de bits, iconos o


metarchivos de Windows, archivos JPEG o
GIF, y acta como un botn de comando
cuando se hace clic en l.

Etiqueta

Label

Presenta texto con el cual el usuario no


puede interactuar ni modificar.

Lnea

Line

Agrega un segmento de lnea recta a un


formulario.

ListBox

Presenta una lista de elementos entre los


que el usuario puede elegir.

Contenedor OLE

OLE

Incrusta datos en una aplicacin de Visual


Basic.

Botn de opcin

OptionButton

El control OptionButton, como parte de un


grupo de opciones con otros botones de
opcin. Presenta varias opciones entre las
ue el usuario slo puede elegir una.

Cuadro de lista

Cuadro de imgen

Forma

Cuadro de texto
Cronmetro

Frame

Presenta una lista de unidades de disco


validas.

Picturebox

Shape

TextBox
Timer

Presenta mapas de bits, conos o


metarchivos de Windows y otros tipos de
archivos graficos compatibles. Tambin
presenta texto o acta como contenedor
visual para otros controles..
Agrega un rectngulo, un cuadrado, una
elipse o un circulo a un formulario, marco o
cuadro de imagen.
Proporciona una rea para escribir o
presentar texto.
Ejecuta eventos peridicos a intervalos de
tiempo especficado.

Controles ActiveX

Son aquellos controles que existen como archivos independientes con extensin nombre de archivo .ocx.
Entre stos se incluyen los controles disponibles en todas las ediciones de Visual Basic (controles cuadrcula,
cuadro combinado y lista enlazados a datos y varios ms) y los que slo estn disponibles en la Edicin

Profesional y la Edicin Empresarial (como Listview, Toolbar, Animation y Tabbed Dialog). A estos tambin se
suman los controles Activex de otros fabricantes.
Nombre de
control

Nombre de
clase

Control de
datos ADO

ADODC

Descripcin
Crea una conexin a una base de datos de datos
mediane ADO. Asignable a la
propiedad DataSource de otros controles, como el
control DataGrid.

Dialogo comn CommonDialog Proporciona un conjunto de cuadros de dilogo


estndar para operaciones como abrir y guardar
archivos, establecer opciones de impresin y
seleccionar colores y fuentes.
Cuadro
combinado
enlazado a
datos

DataGrid

Proporciona las mayoras de las opciones del


control ComboBox estndar, as como mayor
capacidad de acceso a datos.

Cuadrcula
Apex enlazada
a datos

DataGrid

Control con apariencia de una hoja de clculo


vinculado aun orign de datos como un control de
datos ADO. Es posible la lectura y la modificacin
del recordset.

Cuadro de lista
enlazado a
datos.

DataList

Proporciona la mayora de de las caractersticas del


control ListBox estndar, asi como mayor capacidad
de acceso a datos.

MSFlexGrid

Control con apariencia de hoja de clculo de slo


lectura que se puede vincular al diseador de
entorno de datos para mostrar recordset jerrquicos

FlexGrid de
Microsoft

Objetos insertables

Como un objeto Worksheet de Microsoft Excel que contienen la lista de los empleados de su empresa, o un
objeto Calendar de Microsoft Project que contiene la informacin del calendario de un proyecto. Puesto que
estos objetos se pueden agregar al cuadro de herramientas, se les considera controles.
Convenciones de nomenclatura de los controles
Cuando crea un objeto (un formulario o un control) por primera vez, Visual Basic establece su
propiedad Name a un valor predeterminado. Por ejemplo, todos los botones de comando tienen la
propiedad Name establecida inicialmente a Commandn, donde n es 1, 2, 3 y as sucesivamente. Visual Basci
llama al primer botn de comando de un formulario Command1, al segundo Command2 y al tercero
Command3.
Puede mantener los nombres predeterminados; sin embargo, cuando tiene varios controles del mismo tipo, es
ms lgico modificar las propiedades Name para que sean algo ms descriptivas. Como puede ser dificil
distinguir entre el botn Command1 de miForm y el botn Command1 de SubForm, la convencin de
nomenclatura es recomendable, especialmente cuando una aplicacin se compone de varios mdulos de
formulario, mdulos estndar y mdulos de clase.

Puede usar un prefijo para describir la clase, seguido de un nombre descriptivo del control. El uso de
convencin de nombres hace que el cdigo sea ms autodescriptivo y agrupa objetos similares
alfabticamente en el cuadro de lista Objeto. Por ejemplo:
chkSoloLectura
Los nombres de los formularios y los controles:

Deben empezar por una letra

Slo deben contener letras, nmeros y el carcter de subrayado (_); no se permiten signos de
puntuacin ni espacios en blanco.

No pueden tener una longitud mayor de 40 caracteres

.
Valores de los controles

Todos los controles tienen una propiedad que se puede usar para almacenar u obtener valores mediante una
referencia
al
control,
sin
mencionar
el
nombre
de
la
propiedad.
Este se denomina valor del control y normalmente es la propiedad ms importante o la ms frecuentemente
utilizada del control.
Cuando quiera hacer una referencia a la propiedad de un control que es el valor de dicho control, puede
hacerlo sin especificar el nombre de la propiedad. Por ejemplo, esta lnea de cdigo establece la
propiedad Text de un cuadro de texto.
Text1 = "Este texto se asigna a la propiedad Text de Text1"
En este ejemplo, la propiedad Caption de Label1 se establece a la propiedad FileName de File1 cuando el
usuario hace clic en un archivo del cuadro de lista de archivos:
Private File1_Click()
Label1 = File1
End Sub
En la tabla siguiente se enumeran las propiedades consideradas como valor de control.
Control

Valor

CheckBox

Value

ComboBox

Text

CommandButton

Value

CommonDialog

Action

Data

Caption

DataCombo

Text

DataGrid

Text

DataList

Text

DirListBox

Path

DriveListBox

Drive

FileListBox

FileName

FlexGrid

Text

Frame

Caption

HScrollBar

Value

Image

Picture

Label

Caption

Line

Visible

ListBox

Text

OptionButton

Value

PictureBox

Picture

Shape

Shape

TextBox

Text

Timer

Enabled

VScrollBar

Value

Matrices de controles

Una matriz de controles en un grupo de controles que comparten el mismo nombre y el mismo tipo. Tambin
comparten los mismos procedimientos de evento. Las matrices de controles tienen al menos un elemento y
pueden crecer hasta contener tantos elementos como permitan los recursos y la memoria del sistema; su
tamao dependen tambin de la memoria y de los recursos de Windows requeridos por cada control. El ndice
mximo que puede usar en una matriz de controles es 32 767. Los elementos de una misma matriz de
controles tienen sus propio valor de propiedades. Entre los mas usados estn los controles de men y las
agrupaciones de botones de opcin.

Por qu usar matrices de controles?

Al agregar controles mediante matrices de controles se utilizan menos recursos que si simplemente se
agregan al formulario mltiples controles del mismo tipo en tiempo de diseo. Las matrices de controles
tambin son tiles cuando quiere que varios controles compartan cdigo. Por ejemplo, si crea tres botones de
opcin como una matriz de controles, se ejecuta el mismo cdigo independiente del botn en el que haga clic.
Si desea crear una instancia nueva de un control en tiempo de ejecucin, dicho control tiene que ser miembro
de una matriz de controles. En una matriz, los nuevos elementos heredan los procedimientos de evento
comunes
de
toda
la
matriz.
Mediante el mecanismo de las matrices de controles, cada nuevo control hereda los procedimientos de
eventos comunes escritos para la matriz. Por ejemplo, si el formulario tiene varios cuadros de texto que
reciben valores de fechas, puede definir una matriz de controles para que todos los cuadros de texto
compartan el mismo cdigo de validacin.
Cuando crea una matriz de controles los valores de la propiedad Index de dicho control se agrega al momento
de agregar los elementos de la matriz. Es la propiedad Index la que distingue cada elemento de otro dentro de
la matriz de controles.

Cuando un elementos de la matriz reconoce un evento, Visual Basic llama a un procedimiento de evento
comn y pasa el argumento (el valor de la propiedad Index) para identificar qu control reconoce realmente el
evento. Por ejemplo:
Private Opciones_Click (Index as Integer)
Select Case
Case 0
... instrucciones para el primer elemento
Case 1
... instrucciones para el segundo elemento
End Select
End Sub

Agregar, eliminar un elemento de una matriz de controles en tiempo de ejecucin

Puede agregar o quitar controles de una matriz de controles en tiempo de ejecucin mediante las
instrucciones Load y Unload. sin embargo, el control que va a agregar tiene que ser un elemento de una
matriz de controles existente. Debe crear un control en tiempo de diseo con la propiedad Index establecida
en
la
mayor
parte
de
los
casos
a
0.
Despus, en tiempo de ejecucin, utilice la siguiente sintaxis:
Load objeto(indice%)
Unload objeto(indice%)
Donde:
objeto: Nombre del control que va a agregar o eliminar de la matriz de controles.
indice%: El valor de ndice del control dentro de la matriz.
Puede utilizar Unload para quitar cualquier control creado con Load. Sin embargo, no puede usar Unload para
quitar controles creados en tiempo de diseo, independientemente de si forman parte o no de una matriz de
controles.
Ejemplo:
En este ejemplo se permite al usuario agregar controles que cambian el color de fondo de la ventana. Agrege
un formulario y despes dibuje dos botones de opciones y dos botones de comando, como se ilustra en la
tabla siguiente:
Objeto

Propiedad

Valor

Form1

Caption

Ejemplo de matriz de controles

Option1

Name

optButton

Index

Name

optButton

Index

Name

cmdAgregar

Caption

&Agregar

Name

cmdEliminar

Caption

&Eliminar

Option2

Primer botn de comando

Segundo botn de comando

Ahora copie el siguiente cdigo y ejecute el proyecto para ver como funciona:
Option Explicit
Dim MaxID As Integer
Private Sub cmdAgregar_Click()
MaxID = optButton.Count - 1 'Establece el total de botones existentes
If MaxID > 3 Then Exit Sub
'Slo se permiten 5 botones
MaxID = MaxID + 1
Load optButton(MaxID)
optButton(0).SetFocus

'Crea un nuevo control


'Enfoque al primer botn

'Colocar el nuevo control debajo del ltimo control


optButton(MaxID).Left = optButton(MaxID - 1).Left
optButton(MaxID).Top = optButton(MaxID - 1).Top + _
optButton(MaxID - 1).Height + 100
optButton(MaxID).Visible = True 'Mostrar el nuevo control
'Texto en el nuevo botn
optButton(MaxID).Caption = "Opcin " & MaxID + 1
End Sub
Private Sub cmdEliminar_Click()
If MaxID <= 1 Then Exit Sub 'No podr eliminar los dos primeros botones
Unload optButton(MaxID)

'Elimina el ltimo botn

MaxID = MaxID - 1

'Establece el recuento de botones

optButton(0).SetFocus
'Reestablece la seleccin del botn
End Sub
Private Sub optButton_Click(Index As Integer)
Form1.BackColor = QBColor(Index + 1)
End Sub
2.2.1 CREACION
Un formulario es una ventana o cuadro de dilogo que contiene un conjunto de controles insertados por
nosotros desde la barra de herramientas o cuadro de control al cual se le denomina tambin conjunto de
Controles Activex.
En el VBA a un formulario se le denomina USERFORM quizs recogiendo el nombre que tradicionalmente lo
ha usado el lenguaje de programacin Visual Basic.
Use la siguiente secuencia para insertar un formulario en la ventana del editor del Visual Basic.

La siguiente es una imagen de un UserForm:

En la figura anterior se muestra el formulario llamado UserForm1. Si se desea cambiar este nombre se debe
hacer clic en la opcin Name de la ventana de propiedades. Si se desea que el formulario se llame "Panel de
ingreso de datos", entonces se debe hacer clic en la propiedad Caption de la ventana de propiedades y digitar
dicho texto en el lado derecho de esta propiedad
2.2.2 MOVER Y AJUSTAR TAMAO

Si cre un diseo de informe que ya tiene controles, puede cambiar la colocacin y el tamao de los mismos.
Puede cambiar cada control individualmente o puede seleccionar un grupo de ellos y tratarlos como una
unidad.
Para mover un control

Seleccione el control y arrstrelo hasta la nueva posicin en una banda de informe.

El control se mueve en incrementos hasta su posicin en el diseo. Los incrementos estn basados en
la configuracin de la cuadrcula. Para reemplazar la cuadrcula, presione la tecla CTRL mientras
arrastra el control.
Para seleccionar varios controles

Arrastre para dibujar un cuadro de seleccin alrededor de los controles deseados.

Aparecern los controladores de seleccin alrededor de cada control. Mientras estn seleccionados
puede moverlos, copiarlos o eliminarlos como un grupo.
Puede asociar un grupo de controles para realizar varias tareas si los identifica como un grupo. Por ejemplo,
puede querer asociar un control de etiqueta y un control de campo con cualquier otro de forma que pueda
moverlos sin seleccionarlos por separado. Esta caracterstica tambin es til despus de haber dado formato
y alineado los controles, porque conserva sus posiciones con respecto a los dems.
Para agrupar controles
1. Seleccione los controles que quiera tratar como un grupo.
2. En el men Formato, elija Agrupar.
Los identificadores de seleccin se trasladarn a la parte exterior de todo el grupo. Puede tratar el
grupo de controles como una unidad.
Para desagrupar un grupo de controles
1. Seleccione el grupo de controles.
2. En el men Formato, elija Desagrupar.
Aparecern controladores de seleccin alrededor de cada uno de los controles que estaban en el
grupo.
Una vez que un control est en el diseo, puede cambiar su tamao individualmente o puede ajustar el
tamao de un grupo de controles para que coincidan entre s. Puede ajustar el tamao de cualquier control de
informe excepto las etiquetas; su tamao lo determinan el texto, la fuente y su tamao en puntos.
Para cambiar el tamao de un control

Seleccione el control y, a continuacin, arrastre uno de los controladores de seleccin hasta conseguir
el tamao deseado.

Para ajustar el tamao de varios controles


1. Seleccione los controles que quiere que tengan el mismo tamao.
2. En el men Formato, elija Tamao.
3. Elija la opcin adecuada para el ancho, el alto o el tamao.
Los controles ajustan el tamao de acuerdo con la opcin seleccionada.

Alinear controles
Puede alinear controles entre s o puede situarlos tomando como referencia la cuadrcula que proporciona
el Diseador de informes. Puede alinear los controles por un extremo o por el centro.
Para alinear controles entre s
1. Seleccione los controles que desee alinear.
2. En el men Formato, elija Alinear.
3. En el submen, elija la opcin de alineacin apropiada. Visual FoxPro utiliza como delimitador el
control cuyo borde est ms cercano a la direccin que eligi para alinear.
Para alinear controles manualmente

En el men Formato, desactive Forzar a la cuadrcula.

Tambin puede alinear controles mediante la herramienta Diseo. Con esta barra de herramientas puede
alinear con respecto al control ms alejado del lado seleccionado, manteniendo presionada la tecla CTRL
mientras hace clic en el botn de alineacin.
Debe alinear los controles por un lado que todos los controles seleccionados tengan disponible y alejado de
los dems. Los controles que estn en una fila y se seleccionan para alinearse por su lado derecho o
izquierdo, se apilarn unos encima de otros. De igual modo, los controles que estn en una lnea vertical y
seleccionados para alinearse por la parte superior o inferior, se superpondrn.
Para centrar controles dentro de una banda
1. Seleccione los controles que desee alinear.
2. En el men Formato, elija Alinear.
3. En el submen, elija Centrar verticalmente o Centrar horizontalmente.
Los controles se mueven hacia el centro horizontal o vertical de su respectiva banda.
Posicin del control con la barra de estado o la cuadrcula
Puede colocar un control en una posicin especifica de la pgina del informe mediante la barra de estado o la
cuadrcula. De forma predeterminada, los controles se ajustan a la posicin de la cuadrcula. Puede elegir
desactivar la caracterstica de ajuste, y mostrar u ocultar las lneas de cuadrcula. Las lneas de cuadrcula
pueden ayudarle a colocar los controles en el diseo.
Para colocar un control en una posicin especfica
1. En el men Ver, elija Mostrar posicin.
2. Seleccione el control y mueva el control al lugar deseado usando la informacin sobre su posicin que
aparece en la barra de estado.
Para mostrar las lneas de cuadrcula

En el men Ver, elija Lneas de cuadrcula.

Aparecer una cuadrcula en las bandas del informe.


Para cambiar la medida de la cuadrcula
1. En el men Formato, elija Configurar cuadrcula.

2. En el cuadro de dilogo Configurar cuadrcula, escriba el nmero de pxeles para el ancho


(horizontal) y el alto (vertical) de cada cuadrado de la cuadrcula.

UNIDAD III PRINCIPIOS DE PROGRAMACION DE VISUAL


BASIC
3.1 ELEMENTOS DEL LENGUAJE
Como todo lenguaje de programacin, Visual Basic tiene un conjunto de variables y estructuras que el
programador puede usar. Empezaremos introduciendo conceptos poco a poco ya que la extensin del
lenguaje hara necesaria la dedicacin de mucho tiempo para conocerlo todo antes de empezar a realizar el
primer programa. A medida que avancemos se irn aadiendo conceptos, slo los ms importantes en cada
caso ya que estudiarlos en profundidad hara del curso una labor muy tediosa. Sirva como ejemplo que el
control Textbox tiene 43 propiedades, 24 eventos y 11 mtodos. Cierto es que muchos elementos son
comunes a otros controles, por eso slo veremos los ms significativos de cada uno. En cualquier caso,
cuando el alumno desee conocer un determinado control con mayor profundidad puede recurrir a la ayuda,
que sorprendentemente est muy bien organizada y clara.
3.1.1 CONSTANTES

Una constante es un nombre significativo que toma el lugar de un nmero o cadena que no cambia.Las
constantes almacenan valores que, como su nombre indica, permanecen iguales durante la ejecucin de una
aplicacin.Puede mejorar considerablemente la legibilidad del cdigo y facilitar su mantenimiento mediante
constantes.Utilcelas en cdigo que contiene valores que reaparecen o que dependen de ciertos nmeros que
son difciles de recordar o que no tienen un significado evidente.
Cmo crear y utilizar constantes
Visual Basic contiene varias constantes predefinidas, que se utilizan principalmente para operaciones de
impresin y presentacin.Puede crear tambin sus propias constantes con la instruccin Const, utilizando las
mismas directrices que en la creacin de nombres de variables.Si Option Strict es On, debe declarar el tipo de
constante explcitamente.
El mbito de una constante, que es el conjunto de todo el cdigo que puede hacer referencia a ella sin calificar
su nombre, es igual al de una variable declarada en la misma ubicacin.Para crear una constante que exista
en el mbito de un procedimiento concreto, declrela dentro de dicho procedimiento.Para crear una constante
disponible en toda la aplicacin, declrela con la palabra clave Public en la seccin de declaraciones de la
clase.

NOTA: Aunque las constantes son de algn modo similares a las variables, no se pueden modificar ni
asignrseles valores como a stas ltimas.

Las constantes que se utilizan en el cdigo pueden ser definidas por el modelo de objeto para los controles o
componentes con los que trabaja o definidas por el usuario, es decir, creadas por ste.

Constantes en tiempo de compilacin y en tiempo de ejecucin


Una constante en tiempo de compilacin se calcula cuando se compila el cdigo, mientras que una constante
en tiempo de ejecucin slo se puede calcular mientras la aplicacin est en ejecucin.Una constante en
tiempo de compilacin tendr el mismo valor cada vez que se ejecuta una aplicacin, mientras que una
constante en tiempo de ejecucin puede cambiar cada vez.Las constantes en tiempo de compilacin se
requieren para casos como lmites de matriz, expresiones de caso o inicializadores de enumerador.
3.1.2. VARIABLES
Las variables que podemos usar en Visual pueden ser de los siguientes tipos:
Integer: Nmero entero que oscila entre los valores -32.768 y 32.767
Long: Nmero entero (entero largo) que oscila entre los valores -2.147.483.648 y 2.147.483.647
Simple: Nmero real que oscila entre los valores -3.40E+38 y 3.40E+38
Double: Nmero real que oscila entre los valores -1.8E+308 y 1.8E+308
Variant: Puede representar diferentes tipos de datos en distintas situaciones.
String: Cadena de caracteres, sirve para almacenar textos, aproximadamente hasta 65000 caracteres.
Boolean: Slo admite dos estados, Verdadero (True) (-1) o Falso (False) (0).
Date: Almacena fecha y hora.
An hay ms tipos, pero en principio slo vamos a usar estos, para lo cual deberemos seguir el siguiente
proceso:
Primero para poder usar una variable debemos declararla, esto lo haremos mediante la sentencia Dim, esto
nos crea la variable y reserva el espacio necesario para ella, utilizaremos la siguiente sintaxis:
Dim Nombre_de_la_variable As tipo
El nombre de la variable puede tener hasta 40 caracteres y debe empezar por letra.
El tipo debe ser uno de los disponibles, cuando escribamos la sentencia, al llegar al tipo veremos como nos
sale un cuadro de lista donde nos muestra las posibilidades para el mismo, podemos escribirlo nosotros o
con las flechas del cursor buscarlo y pulsando espacio o intro que lo escriba el sistema.
Podemos especificar la longitud: Dim Cadena As String*4, esta sentencia nos declara una variable de tipo
string y longitud fija de 4 caracteres. Si no especificamos longitud, la cadena tendr longitud variable.
Para declarar vectores basta con poner el tamao entre parntesis: Dim Vector(25) As Integer, declara un
vector de 25 posiciones que van de la 0 a la 24, y del tipo Integer.
Otro aspecto a tener en cuenta es dnde hacemos la declaracin, ya que si la hacemos dentro de un
procedimiento especfico, esta slo tendr validez dentro de l, si queremos que la variable pueda ser usada
por varios procedimientos deberemos declararla en el rea General.

El segundo paso es la inicializacin del valor de la variable, cosa que deberemos hacer salvo que nos sirvan
los valores por defecto: 0 para las numricas y "" para las alfanumricas. Esto deberemos hacerlo dentro de
algn procedimiento ya que en el rea General no es posible, aunque sea una variable comn. La sintaxis
adecuada es:
Nombre_de_la_variable = Valor o expresin
Nota: Si queremos usar variables del sistema como Date o Time que contienen la fecha y hora del sistema
respectivamente, no es necesario que las declaremos.
Ejemplo.
Abrir Proyecto1, esto lo podemos hacer desde el men Archivo / Abrir proyecto, o desde la ventana inicial
cuando abrimos Visual Basic, buscndolo tanto en la solapa Existente como en la solapa Recientes.
El objetivo es incluir un contador que me informe del nmero de veces que he pulsado el botn, para ello
necesitaremos usar una variable. Si declaro la variable en el procedimiento Private Sub
Command1_Click(), esta se inicializar cada vez que pulsemos el botn, con lo que por mucho que la
incrementemos, no conseguiremos que nos muestre el nmero de veces que lo hemos pulsado.
Necesitamos declararla fuera del procedimiento, bien pues escribimos la declaracin al inicio del
cdigo: Dim contador As Integer, fuera de cualquier procedimiento (rea General), con esto conseguimos
que sea una variable pblica para nuestro formulario y que slo se inicialice al ejecutar el programa. Adems
observaremos como el editor de cdigo nos separa esta declaracin del resto de procedimientos mediante
una lnea horizontal.
Modificamos el procedimiento Private Sub Command1_Click(), de forma que nos quede: Print "Has
pulsado el botn"; contador; "veces", aadimos debajo de esta: contador = contador + 1 y ejecutamos.
Comenzando por 0 veremos como se incrementa el nmero cada vez que pulsemos el botn.
El siguiente paso en la depuracin del programa sera conseguir que comenzase por 1 y no por 0. Si
inicializamos la variable contador a 1 en el procedimiento Private Sub Command1_Click(), tenemos el
mismo problema que antes, no conseguimos que se incremente ya que cada vez que pulsemos, vuelve a
valer 1.
Podemos pensar que la solucin est en inicializarla a 1 fuera de cualquier procedimiento, pero eso no es
posible, ya que en lo que se conoce como el rea General (donde hemos declarado la variable) slo
podemos declarar variables, pero no inicializarlas.
La solucin est en usar un evento que se dispare automticamente una sola vez al inicio de la ejecucin de
nuestro programa. Ese evento es el Load del objeto Form, este evento se dispara cada vez que se carga el
formulario y en l se suelen poner los parmetros comunes y especificaciones iniciales del formulario.
En la ventana de cdigo, desplegamos el cuadro combinado de la izquierda y veremos los objetos de los
que disponemos, seleccionamos Form, en el cuadro combinado de la derecha veremos que
automticamente sale el evento Load y nos escribe en el cdigo el encabezamiento y pie del
procedimiento Private Sub Form_Load(). Si necesitsemos usar otro evento del objeto Form, bastara con
desplegar el cuadro combinado de la derecha donde veramos todos los que tiene disponible ese objeto. En
este procedimiento escribimos la inicializacin de la variable a 1, quedndonos la ventana de cdigo:

3.1.3. TIPOS DE DATOS


El tipo de datos de un elemento de programacin hace referencia al tipo de datos que puede contener y a
cmo se almacenan dichos datos.Los tipos de datos se aplican a todos los valores que pueden almacenarse
en la memoria del equipo o participar en la evaluacin de una expresin.Cada variable, literal, constante,
enumeracin, propiedad, parmetro de procedimiento, argumento de procedimiento y valor devuelto por un
procedimiento tiene un tipo de datos.

Tipos de datos declarados


Un elemento de programacin se define con una instruccin de declaracin y su tipo de datos se especifica
con la clusula As.La tabla siguiente muestra las instrucciones utilizadas para declarar diversos elementos.

Elemento de
programacin

Declaracin de tipos de datos

Variable

En una Instruccin Dim (Visual Basic)


Dim amount As Double
Static yourName As String

Public billsPaid As Decimal = 0

Literal

Con un carcter de tipo literal; vea "Caracteres de tipo literal" en Caracteres de


tipo (Visual Basic)
Dim searchChar As Char = "." C

Constante

En una Instruccin Const (Visual Basic)


Const modulus As Single = 4.17825F

Enumeracin

En una Instruccin Enum (Visual Basic)


Public Enum colors

Propiedad

En una Property (Instruccin)


Property region() As String

Parmetro de
procedimiento

En una Sub (Instruccin, Visual Basic), Function (Instruccin, Visual


Basic) o Operator (Instruccin)
Sub addSale(ByVal amount As Double)

Argumento de
procedimiento

En el cdigo de llamada; cada argumento es un elemento de programacin que ya


se ha declarado o una expresin que contiene los elementos declarados
subString = Left( inputString , 5 )

Valor devuelto por


procedimiento

En una Function (Instruccin, Visual Basic) o Operator (Instruccin)


Function convert(ByVal b As Byte) As String

3.1.4 TIPOS DE OPERADORES

Los operadores nos permiten operar, validar, comparar, asignar, distinguir, etc.., los datos e instrucciones de
cdigo de nuestros programas. A continuacin los operadores mas importantes.
Operadores aritmticos
Estos operadores nos permiten trabajar con clculos matemticos como la suma (+), resta (-), divisin (/) y
multiplicacin (*).
Operadores de comparacin
Los operadores de comparacin se utilizan para comparar expresiones de cualquier tipo. Los mas importantes
son: El operador de igualdad (=), menor que (<), mayor que (>), distinto a(<>)
Operador de concatenacin (&) que se utiliza para unir cadenas de caracteres.
Por ejemplo:
nombre = "Jose"
apellido = "Peralta"
nombrecompleto = nombre & apellido
'La variable nombrecompleto pasara a contener la unin de
'es decir Jose Peralta
Nota: hay muchos mas operadores en Visual Basic, estos son los bsicos.

las

otras

dos

variables

3.1.4.1 ARITMETICOS Y CONCATENACION


Los operadores aritmticos se utilizan para realizar muchas de las operaciones aritmticas habituales que
implican el clculo de valores numricos representados por literales, variables, otras expresiones, llamadas a
funciones y propiedades, y constantes.Tambin se clasifican como operadores aritmticos los operadores de
desplazamiento de bits, que actan al nivel de bits individuales de los operandos y cambian sus modelos de
bits a la izquierda o la derecha.
Operaciones aritmticas
Puede sumar dos valores en una expresin con el + (Operador, Visual Basic) o restar un valor de otro con el (Operador, Visual Basic), como se muestra en el siguiente ejemplo.

VB
Dim x As Integer x = 67 + 34 x = 32 - 12

La negacin tambin utiliza el - (Operador, Visual Basic), pero con un solo operando, como se puede ver en el
ejemplo siguiente.

VB
Dim x As Integer = 65 Dim y As Integer y = -x

La multiplicacin y la divisin utilizan los * (Operador, Visual Basic) y / (Operador, Visual Basic),
respectivamente, como se muestra en el ejemplo siguiente.

VB
Dim y As Double y = 45 * 55.23 y = 32 / 23

La exponenciacin utiliza el ^ (Operador, Visual Basic), como se puede ver en el ejemplo siguiente.

VB
Dim z As Double z = 23 ^ 3 ' The preceding statement sets z to 12167 (the cube of 23).

La divisin de enteros se lleva a cabo con el \ (Operador, Visual Basic).La divisin de enteros devuelve el
cociente, es decir, el nmero entero que representa el nmero de veces que puede se puede dividir dividendo
entre el divisor sin tener en cuenta el valor del resto.El divisor y el dividendo deben ser tipos enteros
(SByte, Byte, Short, UShort, Integer,UInteger, Long y ULong) para este operador.Todos los dems tipos
deben convertirse antes a tipos enteros.El ejemplo siguiente ilustra la divisin de enteros.

VB
Dim k As Integer k = 23 \ 5 ' The preceding statement sets k to 4.

El mdulo aritmtico se calcula con el Mod (Operador, Visual Basic).Este operador devuelve el resto despus
de dividir el divisor por el dividendo un nmero integral de veces.Si tanto el divisor como el dividendo son tipos
enteros, el valor devuelto es entero.Si el divisor y el dividendo son tipos de punto flotante, el valor devuelto es
una variable de punto flotante.En el siguiente ejemplo se muestra este comportamiento.

VB
Dim x As Integer = 100 Dim y As Integer = 6 Dim z As Integer z = x Mod y ' The preceding statement sets z
to 4.
VB
Dim a As Double = 100.3 Dim b As Double = 4.13 Dim c As Double c = a Mod b ' The preceding statement
sets c to 1.18.

Intento de dividir por cero


La divisin por cero produce resultados diferentes dependiendo de los tipos de datos que se utilicen.En
divisiones de enteros (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong), .NET Framework inicia
una excepcinDivideByZeroException.En operaciones de divisin del tipo de datos Decimal o Single, .NET
Framework tambin produce una excepcin DivideByZeroException.

En las divisiones de punto flotante que impliquen el tipo de datos Double, no se produce ninguna excepcin y
el resultado es el miembro de clase que representa NaN, PositiveInfinity o NegativeInfinity, dependiendo del
dividendo.La siguiente tabla resume los diferentes resultados de intentar dividir un valor Double por cero.

Tipo de datos del


dividendo

Tipo de datos del


divisor

Valor del
dividendo

Resultado

Double

Double

NaN (no es un nmero definido


matemticamente)

Double

Double

>0

PositiveInfinity

Double

Double

<0

NegativeInfinity

Cuando se detecta una excepcin DivideByZeroException, puede utilizar los miembros de la excepcin para
controlarla.Por ejemplo, la propiedad Message contiene el texto del mensaje de la excepcin.

Operaciones de desplazamiento de bits


Una operacin de desplazamiento de bits realiza un desplazamiento aritmtico sobre un modelo de bits.El
patrn est contenido en el operando de la izquierda, mientras que el operando de la derecha especifica el
nmero de posiciones que debe desplazarse el modelo.Puede desplazar el modelo a la derecha con >>
(Operador, Visual Basic) o a la izquierda con<< (Operador, Visual Basic).

El tipo de datos del operando del modelo debe


ser SByte, Byte, Short, UShort, Integer, UInteger, Long o ULong.El tipo de datos del operando de cantidad
de desplazamiento debe ser Integer o se debe ampliar a Integer.
Los desplazamientos aritmticos no son circulares, lo que significa que los bits desplazados a un extremo del
resultado no se vuelven a introducir en el otro extremo.Las posiciones de bits que quedan vacantes debido a
un desplazamiento se establecen de la siguiente manera:

0 para un desplazamiento aritmtico a la izquierda

0 para un desplazamiento aritmtico a la derecha de un nmero positivo

0 para un desplazamiento aritmtico a la derecha de un tipo de datos sin signo


(Byte, UShort, UInteger, ULong)

1 para un desplazamiento aritmtico a la derecha de un nmero negativo


(SByte, Short, Integer o Long)

El ejemplo siguiente desplaza un valor Integer tanto a la izquierda como a la derecha.

VB
Dim lResult, rResult As Integer Dim pattern As Integer = 12 ' The low-order bits of pattern are 0000 1100.
lResult = pattern << 3 ' A left shift of 3 bits produces a value of 96. rResult = pattern >> 2 ' A right shift of 2 bits
produces value of 3.

Los desplazamientos aritmticos nunca generan excepciones de desbordamiento.

Operaciones bit a bit


Adems de ser operadores lgicos, Not, Or, And y Xor tambin realizan operaciones aritmticas bit a bit
cuando se utilizan en valores numricos.
Seguridad de tipos
Normalmente, los operandos deben ser del mismo tipo.Por ejemplo, si est realizando sumas con una
variable Integer, debe sumarla a otra variable Integer y asignar el resultado a una variable que tambin sea
del tipo Integer.
Una manera de asegurar unas buenas prcticas de codificacin con seguridad de tipos consiste en usar
la Option Strict (Instruccin).Si establece Option Strict On, Visual Basic realiza automticamente las
conversiones con seguridad de tipos.Por ejemplo, si intenta agregar una variable Integer a una
variable Double y asignar el valor a una variable de tipoDouble, la operacin se realizar normalmente,
porque un valor Integer puede convertirse a Double sin prdida de datos.Por otra parte, las conversiones no
seguras de tipos, causan un error del compilador con Option Strict On.Por ejemplo, si intenta agregar una
variable Integer a una variable Double y asignar el valor a la variable Integer, se produce un error del
compilador, porque una variable Double no se puede convertir implcitamente al tipo Integer.
Sin embargo, si establece Option Strict Off, Visual Basic permite que se efecten conversiones implcitas de
restriccin, aunque pueden dar como resultado la prdida inesperada de datos o de precisin.Por esta razn,
es recomendable utilizar Option Strict On al escribir el cdigo de produccin.

Operadores de concatenacin
Los operadores de concatenacin unen varias cadenas en una sola.Existen dos operadores de
concatenacin: + y &.Ambos efectan la operacin de concatenacin bsica, como se aprecia en el siguiente
ejemplo.
Estos operadores tambin concatenan variables de String, como indica el siguiente ejemplo.

VB
Dim a As String = "abc" Dim d As String = "def" Dim z As String = a & d Dim w As String =
a + d ' The preceding statements set both z and w to "abcdef".

Diferencias entre los dos operadores de concatenacin


El propsito principal del + (Operador, Visual Basic) es sumar dos nmeros,aunque tambin puede concatenar
operandos numricos con operandos de cadena.El operador + posee un conjunto de reglas complejo que
establecen si hay que sumar, concatenar, sealar un error de compilador o generar una
excepcin InvalidCastException en tiempo de ejecucin.
El & (Operador, Visual Basic) se define nicamente para operandos de String y siempre ampla sus
operandos a String, independientemente de la configuracin de Option Strict.El uso del operador & es
recomendable para concatenar cadenas, ya que se est expresamente definido para cadenas y reduce las
probabilidades de generar una conversin inintencionada.

Rendimiento: String y StringBuilder


Si realiza una cantidad considerable de manipulaciones en una cadena (como concatenaciones, eliminaciones
y reemplazos), el rendimiento puede verse beneficiado si usa la clase StringBuilder del espacio de
nombresSystem.Text.Esta clase toma una instruccin extra para crear e inicializar un objeto StringBuilder, as
como otra instruccin para convertir su valor final a una String, pero este tiempo se puede recuperar, ya que
el rendimiento deStringBuilder es ms rpido.

3.1.4.2 RELACIONAL
Los operadores relacionales comparan valores entre s. Los operadores de comparacin
son =, <>, <, >, <= y >=. Todos los operadores relacionales dan como resultado un valor Boolean.
Los operadores relacionales tienen el siguiente significado general:

El operador = comprueba si dos operandos son iguales.

El operador <> comprueba si dos operandos no son iguales.

El operador < comprueba si el primer operando es menor al segundo operando.

El operador > comprueba si el primer operando es mayor que el segundo operando.

El operador <= comprueba si el primer operando es menor o igual que el segundo operando.

El operador >= comprueba si el primer operando es mayor o igual que el segundo operando.

Los operadores relacionales se definen para los tipos siguientes:

Byte, Short, Integer y Long. Los operadores comparan los valores numricos de dos operandos de
nmeros enteros.

Single y Double. Los operadores comparan los operandos segn las reglas de la norma IEEE 754.

Decimal. Los operadores comparan los valores numricos de los dos operandos decimales.

Slo los operadores de igualdad (=) y desigualdad (<>) se definen para los tipos siguientes:

Boolean. El operador = devuelve True si los dos operandos son True o los dos operandos son False.
El operador <>devuelve False si los dos operandos son True o los dos operandos son False.

Date. Los operadores devuelven el resultado de la comparacin de los valores de fecha y hora.

Char. Los operadores devuelven el resultado de la comparacin de los valores Unicode. Aunque hay
una ambigedad lgica en la resolucin de los operadores relacionales cuando se resuelve con un
operando Char y Short (porque los tipos se consideran equivalentes), en la prctica se puede elegir
cualquier operador porque los dos operadores son semnticamente equivalentes.

Cadena. Los operadores devuelven el resultado de la comparacin de dos valores utilizando una
comparacin binaria o una comparacin de texto. La comparacin utilizada se determina por el entorno
de compilacin y la instruccinOption Compare. Una comparacin binaria determina si es igual el
valor numrico Unicode de los caracteres o si lo son cada uno de los caracteres de cada cadena. Una
comparacin de texto realiza una comparacin de texto Unicode basada en la referencia cultural actual
en uso en .NET Framework. Cuando se realiza una comparacin de cadenas, una referencia nula es
equivalente al literal de cadena "".
RelationalOperatorExpression ::=
Expression = Expression |
Expression < > Expression |
Expression < Expression |
Expression > Expression |
Expression < = Expression |
Expression > = Expression

3.1.4.3 LOGICOS
Los operadores lgicos comparan expresiones Boolean y devuelven un resultado Boolean.Los
operadores And, Or,AndAlso, OrElse y Xor son binarios porque toman dos operandos, mientras que el
operador Not es unario porque toma un solo operando.Algunos de estos operadores tambin pueden realizar
operaciones lgicas bit a bit en valores enteros.

Operador lgico unario


El Not (Operador, Visual Basic) realiza la negacin lgica en una expresin Boolean.Produce el contrario
lgico de su operando.Si la expresin se evala como True, Not devuelve False; si la expresin se evala
como False, Not devuelveTrue. Debido a que Object es la clase base de todos los tipos de referencia en

.NET Framework, este comportamiento es heredado por los tipos de referencia que no reemplazan el
mtodo ToString.

VB
Dim x, y As Boolean x = Not 23 > 14 y = Not 23 > 67 ' The preceding statements set x to False and y to True.
Operadores lgicos binarios
El And (Operador, Visual Basic) realiza la conjuncin lgica de dos expresiones Boolean.Si ambas
expresiones se evalan como True, And devuelve True.Si al menos una de las expresiones se evala
como False, And devuelve False.
El Or (Operador, Visual Basic) realiza la disyuncin o inclusin lgicas de dos expresiones Boolean.Si una de
las expresiones o ambas se evalan como True, Or devuelve True.Si ninguna de las expresiones se evala
como True, Ordevuelve False.
Xor (Operador, Visual Basic) realiza la exclusin lgica de dos expresiones Boolean.Si exactamente una
expresin, pero no ambas, se evala como True, Xor devuelve True.Si ambas expresiones se evalan
como True o como False, Xordevuelve False.
En el siguiente ejemplo se muestra cmo utilizar los operadores And, Or y Xor.

VB
Dim a, b, c, d, e, f, g As Boolean a = 23 > 14 And 11 > 8 b = 14 > 23 And 11 > 8 ' The preceding statements
set a to True and b to False. c = 23 > 14 Or 8 > 11 d = 23 > 67 Or 8 > 11 ' The preceding statements set c to
True and d to False. e = 23 > 67 Xor 11 > 8 f = 23 > 14 Xor 11 > 8 g = 14 > 23 Xor 8 > 11 ' The preceding
statements set e to True, f to False, and g to False.
Cortocircuitar las operaciones lgicas
El AndAlso (Operador, Visual Basic) es muy similar al operador And, ya que tambin realiza la conjuncin
lgica de dos expresiones Boolean.La diferencia clave entre ambos es que AndAlso presenta un
comportamiento de evaluacin "cortocircuitada".Si la primera parte de una expresin AndAlso se evala
como False, la segunda parte de la expresin no se evala porque no puede modificar el resultado final
y AndAlso devuelve False.
De igual forma, el OrElse (Operador) (Visual Basic) realiza la disyuncin lgica de evaluacin cortocircuitada
de dos expresiones Boolean.Si la primera parte de una expresin OrElse se evala como True, la segunda
parte de la expresin no se evala porque no puede modificar el resultado final y OrElse devuelve True.
Inconvenientes de las evaluaciones cortocircuitadas
Cortocircuitar puede mejorar el rendimiento ya que no se evala una expresin que no puede modificar el
resultado de la operacin lgica.Sin embargo, si esa expresin realiza acciones adicionales, al cortocircuitar
se pasan por alto esas acciones.Por ejemplo, si la expresin incluye una llamada a un
procedimiento Function, no se llama a ese procedimiento si la expresin se cortocircuita y el cdigo adicional
incluido en Function no se ejecuta.Por consiguiente, la funcin nicamente se puede ejecutar de vez en
cuando y no se puede probar correctamente.Tambin, la lgica del programa puede depender del cdigo en
la Function.

En el ejemplo siguiente se muestra la diferencia entre And, Or y sus homlogos de evaluacin cortocircuitada.

VB
Dim amount As Integer = 12 Dim highestAllowed As Integer = 45 Dim grandTotal As Integer
VB
If amount > highestAllowed And checkIfValid(amount) Then ' The preceding statement calls checkIfValid().
End If If amount > highestAllowed AndAlso checkIfValid(amount) Then ' The preceding statement does not
call checkIfValid(). End If If amount < highestAllowed Or checkIfValid(amount) Then ' The preceding
statement calls checkIfValid(). End If If amount < highestAllowed OrElse checkIfValid(amount) Then ' The
preceding statement does not call checkIfValid(). End If
VB
Function checkIfValid(ByVal checkValue As Integer) As Boolean If checkValue > 15 Then
MsgBox(CStr(checkValue) & " is not a valid value.")
' The MsgBox warning is not displayed if the call to
' checkIfValid() is part of a short-circuited expression.
Return False Else
grandTotal += checkValue
' The grandTotal value is not updated if the call to
' checkIfValid() is part of a short-circuited expression.
Return True End If End Function

En el ejemplo anterior, observe que una parte de cdigo importante dentro de checkIfValid() no se ejecuta
cuando se cortocircuita la llamada.La primera instruccin If llama a checkIfValid() aunque 12 >
45 devuelve False, porque Andno cortocircuita.La segunda instruccin If no llama a checkIfValid(), porque
cuando 12 > 45 devuelve False,AndAlso cortocircuita la segunda expresin.La tercera instruccin If llama
a checkIfValid() aunque 12 < 45 devuelveTrue, porque Or no cortocircuita.La cuarta instruccin If no llama
a checkIfValid(), porque cuando 12 < 45 devuelveTrue, OrElse cortocircuita la segunda expresin.

Operaciones bit a bit


Las operaciones bit a bit evalan dos valores enteros en formato binario (base 2).Comparan los bits en las
posiciones correspondientes y, a continuacin, asignan valores basados en la comparacin.En el siguiente
ejemplo se muestra cmo se utiliza el operador And.

VB
Dim x As Integer x = 3 And 5

En el ejemplo anterior se establece el valor de x en 1.Esto pasa por las siguientes razones:

Los valores se tratan como binarios:


3 en formato binario = 011
5 en formato binario = 101

El operador And compara las representaciones binarias, una posicin binaria (bit) a la vez.Si los dos
bits en una posicin dada son 1, entonces se coloca un 1 en esa posicin del resultado.Si uno de los
dos bits es 0, entonces se coloca un 0 en esa posicin del resultado.En el ejemplo anterior, esto
funciona como sigue:
011 (3 en formato binario)
101 (5 en formato binario)
001 (el resultado, en formato binario)

El resultado se trata como decimal.El valor 001 es la representacin binaria de 1, por lo que x = 1.

La operacin Or bit a bit es similar, excepto en que se asigna 1 al bit resultante si cualquiera de los bits
comparados es 1. Xor asigna 1 al bit del resultado si exclusivamente uno de los bits comparados (no ambos)
es 1. Not toma un solo operando e invierte todos los bits, incluido el bit de signo, y asigna ese valor al
resultado.Esto significa que para nmeros positivos sin signo, Not siempre devuelve un valor negativo y, para
nmeros negativos, Not siempre devuelve un valor positivo o cero.
Los operadores AndAlso y OrElse no admiten las operaciones bit a bit.

3.2 ESTRUCTURAS DE CONTROL

En lenguajes de programacin, las estructuras de control permiten modificar el flujo de ejecucin de las
instrucciones de un programa.
con las estructuras de control se puede:

De acuerdo a una condicin, ejecutar un grupo u otro de sentencias (If-Then-Else)


De acuerdo al valor de una variable, ejecutar un grupo u otro de sentencias (Select-Case)
Ejecutar un grupo de sentencias mientras se cumpla una condicin (Do-While)
Ejecutar un grupo de sentencias hasta que se cumpla una condicin (Do-Until)
Ejecutar un grupo de sentencias un nmero determinado de veces (For-Next)

Todas las estructuras de control tienen un nico punto de entrada y un nico punto de salida. las estructuras
de control se puede clasificar en: secuenciales, iterativas y de control avanzadas. esto es una de las cosas
que permite que la programacin se rija por los principios de la programacin estructurada.
los lenguajes de programacin modernos tienen estructuras de control similares. bsicamente lo que vara
entre las estructuras de control de los diferentes lenguajes es su sintaxis, cada lenguaje tiene una sintaxis
propia para expresar la estructura.
El trmino "estructuras de control", viene del campo de la ciencia computacional. cuando se presentan
implementaciones de java para las estructuras de control, nos referimos a ellas con la terminologa de la
especificacin del lenguaje java, que se refiera a ella como instrucciones.

Estructura de control
las estructuras de control, denominadas tambin sentencias de control, permiten tomar decisiones y realizar
un proceso repetidas veces. se trata de estructuras muy importantes, ya que son las encargadas de controlar
el flujo de un programa, segn los requerimientos del mismo.
3.2.1 SELECTIVAS
Las estructuras selectivas permiten tomar decisiones lgicas, de all que se suelan denominar tambin
estructuras de decisin o alternativas. Son instrucciones que le permite al compilador de VB seguir una serie
de flujos segn sea las expresiones que evala.
IfThen
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresin.
Si la condicin es verdadera, se ejecuta las instrucciones contenidas; pero si es falsa entonces no

hace nada.
1

If < condicion > Then

< instrucciones >

End If

Ejemplo:
1

If n < 0 Then

MsgBox "n es negativo."

End If

IfThenElse
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresin.
Si la condicin es verdadera, se ejecuta las instrucciones contenidas en el primer bloque; pero si es

falsa entonces no hace nada.


Si la instruccin es falsa ejecuta el segundo bloque de instrucciones.

If < condicion > Then

< instrucciones >

Else

< instrucciones >

End If

Ejemplo:
1

If edad >= 18 Then

MsgBox "Usted tiene DNI"

Else

MsgBox "Usted an no tiene DNI"

End If

SelectCase
Ejecuta uno de varios grupos de instrucciones, segn el valor de una expresin.
Es muy conveniente cuando se necesitan usar una serie de instrucciones IfThenElse, lo que hara ilegible
o compleja la navegacin del cdigo.
1

Select Case < expression >

Case < valor 1 >

< instrucciones >

Case Else

< instrucciones >

End Select

La instruccin Case Else se ejecuta si no se cumple ninguna de las anteriores.


Ejemplo:

01

Select Case dia

02

Case 1, 2, 3

03

Print "Es principio de semana"

04

Case 4

05

Print "Hoy es Mircoles"

06

Case 5, 6

07

Print "Terminando la semana"

08

Case 7

09

Print "Fin de semana"

10

Case Else

11

Print "No es da vlido"

12

End Select

3.2.1.1 IF..THEN, IFTHEELSE


Ejecuta condicionalmente un grupo de instrucciones en funcin del valor de una expresin.

Sintaxis
' Multiple-line syntax: If condition [ Then ] [ statements ] [ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ] [ Else [ elsestatements ] ] End If ' Single-line syntax: If condition Then [ statements ]
[ Else [ elsestatements ] ]
Elementos
condition
Requerido.Expresin.Debe evaluarse en True o False, o en un tipo de datos que sea implcitamente
convertible aBoolean.
Si la expresin es una variable Valores NULLBoolean que evala Nada, se trata la condicin como si
la expresin no es True, y ejecuta el bloque Else .
Then
Obligatorio en la sintaxis de una lnea, opcional en la sintaxis de varias lneas.
statements
Opcional.Se ejecutan una o ms instrucciones que siguen a If...Then que se ejecutan si condition se
evala comoTrue.
elseifcondition
Obligatorio si ElseIf est presente.Expresin.Debe evaluarse en True o False, o en un tipo de datos
que sea implcitamente convertible a Boolean.

elseifstatements
Opcional.Se ejecutan una o ms instrucciones que siguen a ElseIf...Then que se ejecutan
si elseifcondition se evala como True.
elsestatements
Opcional.Una o ms instrucciones que se ejecutan si ninguna
expresin condition o elseifcondition anterior se evala como True.
End If
Termina el bloque If...Then...Else.

Sintaxis de varias lneas


Cuando se encuentra una instruccin If...Then...Else, se prueba condition.Si condition es True, se ejecutan
las instrucciones que estn a continuacin de Then.Si condition es False, cada instruccin ElseIf (si hay
alguna) se evala en orden.Cuando se encuentra una elseifcondition que sea True, se ejecutan las
instrucciones que siguen inmediatamente a la instruccin ElseIf asociada.Si elseifcondition se evala
como True, o si no hay ninguna instruccin ElseIf, se ejecutan las instrucciones situadas despus
de Else.Despus de la ejecucin de las instrucciones que siguen a Then, ElseIf o Else, la ejecucin contina
con la instruccin que sigue a End If.
Las clusulas ElseIf y Else son opcionales.Puede tener tantas clusulas ElseIf como desee en una
instruccinIf...Then...Else, pero no puede aparecer ninguna clusula ElseIf despus de una
clusula Else. If...Then...Else las instrucciones se pueden anidar una dentro de otra.
Con la sintaxis de varias lneas, la instruccin If debe ser la nica instruccin incluida en la primera lnea.Las
instrucciones ElseIf, Else y End If pueden ir precedidas solamente por una etiqueta de lnea.El
bloque If...Then...Elsedebe terminar con una instruccin End If.

Sugerencia: La Instruccin Select...Case (Visual Basic) puede ser ms til al evaluar una nica expresin que
tiene varios valores posibles.
Sintaxis de una nica lnea
Puede utilizar la sintaxis de una sola lnea para pruebas cortas y sencillas.Sin embargo, la sintaxis de varias
lneas proporciona ms estructura y flexibilidad y, generalmente, es ms fcil de leer, mantener y depurar.
Lo que sigue a la palabra clave Then se examina para determinar si una declaracin es un If de una sola
lnea.Si aparece cualquier otra cosa que no sea un comentario despus de Then en la misma lnea, sta se
trata como una instruccin If de una sola lnea.Si no est presente Then, debe ser el comienzo de una
instruccin If...Then...Else de varias lneas.
En la sintaxis de una lnea, puede que se ejecuten varias instrucciones como resultado de una
decisin If...Then.Todas las instrucciones deben estar en la misma lnea y separarse con dos puntos.
En el ejemplo siguiente se muestra el uso de la sintaxis de varias lneas de la instruccin If...Then...Else.

VB
Dim count As Integer = 0 Dim message As String If count = 0 Then message = "There are no items." ElseIf
count = 1 Then message = "There is 1 item." Else message = "There are " & count & " items." End If

El ejemplo siguiente contiene instrucciones If...Then...Else anidadas.

VB
Private Function CheckIfTime() As Boolean ' Determine the current day of week and hour of day.
dayW As DayOfWeek = DateTime.Now.DayOfWeek Dim hour As Integer = DateTime.Now.Hour
True if Wednesday from 2 to 4 P.M., ' or if Thursday from noon to 1 P.M. If dayW =
DayOfWeek.Wednesday Then
If hour = 14 Or hour = 15 Then
Return True
Else
Return False
End If ElseIf dayW = DayOfWeek.Thursday Then
If hour = 12 Then
True
Else
Return False
End If Else
Return False End If End Function

Dim
' Return
Return

En el ejemplo siguiente se muestra el uso de la sintaxis de una nica lnea.

VB
' If A > 10, execute the three colon-separated statements in the order ' that they appear If A > 10 Then A = A + 1
: B = B +A: C = C + B
3.2.1.2 SELECT CASE
Tambien existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos
o se usa una condicion compuesta muy grande o se debe intentar convertir el problema a uno que se
pueda resolver usando la instruccion SELECT CASE.
Esta instruccion es una instruccion de decision multiple donde el compilador prueba o busca el
valor contenido en una variable ENTERA,CHARACTER, STRING contra una lista de constantes apropiadas,
es decir enteras, character o strings, cuando el computador encuentra el valor de igualdad entre variable y
constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de
igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default,
aunque este ultimo es opcional.
El formato en visual basic net de esta instruccion es el siguiente;
capturar o asignar variable de condicion
Select Case variableopcion
case const1 instruccion(es)
case const2 instruccion(es)

case const3 Instruccion(es)

Case Else instruccion(es)


End Select
prog6.aspx
<HTML> <FORM RUNAT=SERVER> DAME UNA LETRA<ASP:TEXTBOX ID=LETRA
RUNAT=SERVER/><BR> ANIMALITO<ASP:TEXTBOX ID=ANIMALITO BACKCOLOR=AZURE
RUNAT=SERVER/><BR> <ASP:BUTTON TEXT=OK ONCLICK=EVENTO1 RUNAT=SERVER/><BR>
</FORM></HTML> <SCRIPT LANGUAGE=VB RUNAT=SERVER> SUB EVENTO1(Sender As Object, E As
EventArgs) SELECT CASE LETRA.TEXT CASE "A" ANIMALITO.TEXT = "AGUILA" CASE "B", "b"
ANIMALITO.TEXT = "BACA" CASE "C" DIM ALFA AS INTEGER ALFA = 100 + 5 ' observar como se
encadenan strings usando simbolo & ANIMALITO.TEXT = ALFA & " CABALLO" CASE ELSE
ANIMALITO.TEXT="NO HAY" END SELECT END SUB </SCRIPT>
Es el primer modelo de visual basic net aspx, el otro modelo VB les toca a ustedes y la unica nota digna de
tomar en cuenta es que se pueden usar mas de dos instrucciones en cada case.
Observar el caso b, observar como se pueden usar mas de dos constantes, sorry por lo de BACA pero el
unico animalito que me acorde fue el BURRO y luego mis alumnos se sienten ofendidos.
Corrida:

3.2.2 REPETITIVAS

Las estructuras de bucles de Visual Basic permiten ejecutar una o varias lneas de cdigo de forma
repetitiva.Puede repetir las instrucciones de una estructura de bucles hasta que una condicin sea True, una
condicin sea False, un nmero de veces especificado o una vez para cada objeto de una coleccin.
En el siguiente ejemplo se muestra una estructura de bucle que ejecuta un conjunto de instrucciones hasta
que una condicin se convierta en verdadera.

Ejecutar un conjunto de instrucciones hasta que una condicin se convierta en verdadera.


3.2.2.1 FORNEXT
Repite un grupo de instrucciones un nmero de veces especificado.

Sintaxis
For counter [ As datatype ] = start To end [ Step step ]
[ Exit For ] [ statements ] Next [ counter ]

[ statements ]

[ Continue For ]

[ statements ]

Elementos

Parte

Descripcin

counter

Se requiere en la instruccin For.Variable numrica.Variable de control para el bucle.Para


obtener ms informacin, vea Argumento de contador ms adelante en este tema.

datatype

Opcional.Tipo de datos de counter.Para obtener ms informacin, vea Argumento de


contador ms adelante en este tema.

start

Requerido.Expresin numrica.Valor inicial de counter.

End

Requerido.Expresin numrica.Valor final de counter.

step

Opcional.Expresin numrica.Cantidad en la que se incrementa counter cada vez que se


recorre el bucle.

statements

Opcional.Una o ms instrucciones entre For y Next que se ejecutan un nmero especificado


de veces.

Continue
For

Opcional.Transfiere el control a la siguiente iteracin del bucle.

Exit For

Opcional.Transfiere el control fuera del bucle For.

Next

Requerido.Termina la definicin del bucle For.

Nota: La palabra clave de To se utiliza en esta instruccin para especificar el intervalo del contador.Tambin
puede utilizar esta palabra clave en Instruccin Select...Case (Visual Basic) y en declaraciones de matriz.
Ejemplos simples
Utiliza una estructura de ForNext cuando desea repetir un conjunto de instrucciones un nmero fijo de
veces.
En el ejemplo siguiente, la variable de index comienza con un valor de 1 y se incrementa con cada iteracin
del bucle, finalizando despus de que el valor de index alcanza 5.
VB
For index As Integer = 1 To 5

Debug.Write(index.ToString & " ") Next Debug.WriteLine("") ' Output: 1 2 3 4 5

En el ejemplo siguiente, la variable de number comienza en 2 y se decrementa en 0,25 en cada iteracin del
bucle, finalizando despus de que el valor de number alcance 0. El argumento de Step de -.25 reduce el valor
en 0,25 en cada iteracin del bucle.

VB
For number As Double = 2 To 0 Step -0.25
Output: 2 1.75 1.5 1.25 1 0.75 0.5 0.25 0

Debug.Write(number.ToString & " ") Next Debug.WriteLine("") '

Sugerencia: Instruccin While...End While (Visual Basic) o Instruccin Do...Loop (Visual Basic) funcionan bien
cuando no se sabe de antemano el nmero de veces que se ejecutan las instrucciones del bucle. Sin
embargo, cuando espere ejecutar el bucle un nmero concreto de veces, For...Next es una mejor
eleccin.Determina el nmero de iteraciones cuando se entra en el bucle por primera vez.
Bucles anidados
Se pueden anidar bucles For colocando un bucle dentro de otro.En el ejemplo siguiente se muestran
estructurasFor...Next anidadas con valores de incremento diferentes.El bucle externo crea una cadena para
cada iteracin del bucle.El bucle interior disminuye una variable de contador de bucle por cada iteracin del
bucle.

VB
For indexA = 1 To 3 ' Create a new StringBuilder, which is used ' to efficiently build strings. Dim sb As
New System.Text.StringBuilder()
' Append to the StringBuilder every third number ' from 20 to 1
descending. For indexB = 20 To 1 Step -3
sb.Append(indexB.ToString)
sb.Append(" ") Next
indexB
' Display the line. Debug.WriteLine(sb.ToString) Next indexA ' Output: ' 20 17 14 11 8 5 2 ' 20 17
14 11 8 5 2 ' 20 17 14 11 8 5 2

Cuando los bucles de anidamiento, cada bucle deben tener una variable nica de counter.
Tambin puede anidar distintos tipos de estructuras de control unos dentro de otros.

Exit For y Continue For


La instruccin de Exit For inmediatamente sale del bucle de ForNext y transfiere el control a la instruccin
que sigue a la instruccin de Next.
la instruccin Continue For transfiere el control inmediatamente a la siguiente iteracin del bucle.

En el siguiente ejemplo se muestra el uso de las instrucciones Continue For y Exit For.

VB
For index As Integer = 1 To 100000 ' If index is between 5 and 7, continue ' with the next iteration. If
index >= 5 And index <= 8 Then
Continue For End If
' Display the index.
Debug.Write(index.ToString & " ")
' If index is 10, exit the loop. If index = 10 Then
Exit For End If
Next Debug.WriteLine("") ' Output: 1 2 3 4 9 10

Puede incluir cualquier nmero de instrucciones Exit For en un bucle For...Next.Cuando se utiliza dentro de
buclesForNext anidados, Exit For sale del bucle ms profundo y transfiere el control al siguiente nivel de
anidamiento.
Exit For suele usarse despus de que se evale alguna condicin (por ejemplo, en una estructura de If
ThenElse).Puede que desee utilizar Exit For para las siguientes condiciones:

Continuar la iteracin es innecesario o imposible.Un valor de error o una solicitud de finalizacin podra
crear esta condicin.

Una instruccin de TryCatchFinally detecta una excepcin.Puede utilizar Exit For al final del
bloque Finally .

Tiene un bucle infinito, que es un bucle que puede ejecutar un nmero grande o incluso infinito de
veces.Si se detecta este tipo de condicin, se puede utilizar Exit For para escapar del bucle.

Implementacin tcnica
Cuando comienza un bucle For...Next, Visual Basic evala startend y step.Visual Basic evala estos valores
nicamente en este momento y despus asignar start a counter.Antes de que el bloque de la instruccin se
ejecuta, Visual Basic compara counter a end.Si counter ya es mayor que el valor de end (o ms pequeo
si step es negativo), el bucle de For y el control pasa a la instruccin que sigue a la instruccin de Next.Si no,
se ejecuta el bloque de instrucciones.
Cada vez que Visual Basic encuentra la instruccin Next, incrementa counter en el valor indicado en step y
vuelve a la instruccin For.Compara de nuevo counter con end y, otra vez, ejecuta el bloque o sale del bucle,
segn el resultado.Este proceso contina hasta que counter sobrepasa end o se encuentra una
instruccin Exit For.
El bucle no detiene hasta que counter haya pasado end.Si counter es igual a end, el bucle contina.La
comparacin que determina si se ejecuta el bloque es counter <= end si step es positivo
y counter >= end si step es negativo.
Si cambia el valor de counter mientras dentro de un bucle, el cdigo podra ser ms difcil de leer y
depuracin.Cambie el valor de start, end, o step no afecta a los valores de iteracin que se determinados
cuando el bucle primero se escribi.
Si se anida bucles, el compilador seala un error si encuentra la instruccin de Next de un nivel de
anidamiento externo antes de la instruccin de Next de un nivel interno.Sin embargo, el compilador slo
puede detectar este error superpuesto si se especifica counter en cada instruccin Next.
Step (argumento)
El valor de step puede ser positivo o negativo.Este parmetro determina el procesamiento de bucles segn la
tabla siguiente:

Valor de step

El bucle se ejecuta si

Positivo o cero

counter <= end

Negativo

counter >= end

El valor predeterminado de step es 1.


Argumento de contador
La siguiente tabla se indica si counter define una nueva variable local cuyo mbito al bucle completo de For
Next.Esta determinacin depende de si datatype est presente y si counter est definido.

datatypepresente
?

counterya se
ha definido?

Resultado (si counter define una nueva variable local cuyo


mbito al bucle completo de For...Next )

No

Si

No, porque counter ya est definido.Si el mbito de counter no es


local al procedimiento, una advertencia en tiempo de compilacin
se produce.

No

No

S.Se deduce el tipo de datos de start, de end, y las expresiones


de step.Para obtener informacin sobre la inferencia de tipos,
vea Option Infer (instruccin) y Inferencia de tipo de variable local
(Visual Basic).

Si

Si

S, pero solo si la variable existente de counter se define fuera del


procedimiento.Esa variable sigue siendo independiente.Si el
mbito de la variable existente de counter es local al
procedimiento, se produce un error de compilacin.

Si

No

S.

El tipo de datos de counter determina el tipo de la iteracin, que debe ser uno de los tipos siguientes:

Un Byte, SByte, UShort, Short, UInteger, Integer, ULong, Long, Decimal, Single, o Double.

Una enumeracin que se declara utilizando una Instruccin Enum (Visual Basic).

Interfaz Object.

Un tipo T que tiene los siguientes operadores, donde B es un tipo que puede utilizarse en una
expresin Boolean.
Public Shared Operator >= (op1 As T, op2 As T) As B
Public Shared Operator <= (op1 As T, op2 As T) As B
Public Shared Operator - (op1 As T, op2 As T) As T
Public Shared Operator + (op1 As T, op2 As T) As T

Puede especificar opcionalmente la variable de counter en la instruccin de Next.Esta sintaxis mejora la


legibilidad del programa, especialmente si ha anidado bucles de For.Debe especificar la variable que aparece
en la instruccin correspondiente de For.
Las expresiones start, end y step pueden evaluarse como cualquier tipo de datos que se ample al tipo
de counter.Si utiliza un tipo definido por el usuario para counter, podra tener que definir el operador de
conversin de CType para convertir tipos de start, de end, o de step al tipo de counter.
El ejemplo siguiente elimina todos los elementos de una lista genrica.En lugar de Instruccin For Each...Next
(Visual Basic), el ejemplo muestra una instruccin de ForNext que recorra en orden descendente.El
ejemplo utiliza esta tcnica porque el mtodo de removeAt hace elementos despus del elemento quitado
para tener un valor de ndice mnimo.
VB
Dim lst As New List(Of Integer) From {10, 20, 30, 40} For index As Integer = lst.Count - 1 To 0 Step -1
lst.RemoveAt(index) Next Debug.WriteLine(lst.Count.ToString) ' Output: 0
El ejemplo siguiente se recorre en iteracin una enumeracin que se declara mediante Instruccin Enum
(Visual Basic).

VB
Public Enum Mammals Buffalo Gazelle Mongoose Rhinoceros Whale End Enum Public Sub
ListSomeMammals() For mammal As Mammals = Mammals.Gazelle To Mammals.Rhinoceros
Debug.Write(mammal.ToString & " ") Next Debug.WriteLine("") ' Output: Gazelle Mongoose Rhinoceros
End Sub

En el siguiente ejemplo, los parmetros de la instruccin utilizan una clase que tiene sobrecargas de operador
para los operadores +, -, >= y <=.

VB
Private Class Distance Public Property Number() As Double
Public Sub New(ByVal number As Double)
Me.Number = number End Sub
' Define operator overloads to support For...Next statements. Public
Shared Operator +(ByVal op1 As Distance, ByVal op2 As Distance) As Distance
Return New
Distance(op1.Number + op2.Number) End Operator
Public Shared Operator -(ByVal op1 As Distance,
ByVal op2 As Distance) As Distance
Return New Distance(op1.Number - op2.Number) End Operator
Public Shared Operator >=(ByVal op1 As Distance, ByVal op2 As Distance) As Boolean
Return
(op1.Number >= op2.Number) End Operator
Public Shared Operator <=(ByVal op1 As Distance, ByVal
op2 As Distance) As Boolean
Return (op1.Number <= op2.Number) End Operator End Class Public
Sub ListDistances() Dim distFrom As New Distance(10) Dim distTo As New Distance(25) Dim distStep
As New Distance(4)
For dist As Distance = distFrom To distTo Step distStep
Debug.Write(dist.Number.ToString & " ") Next Debug.WriteLine("")
' Output: 10 14 18 22 End Sub

3.2.2.2 WHITEWHEN
Ejecuta una serie de instrucciones siempre que una condicin dada sea True.

Sintaxis
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
Elementos

Trmino

Definicin

condition

Requerido.Expresin Boolean.Si condition es Nothing, Visual Basic la trata como False.

statements

Opcional.Una o ms instrucciones a continuacin de While, que se ejecutan cada vez


que conditiones True.

Continue

Opcional.Transfiere el control a la siguiente iteracin del bloque de While .

While

Exit While

Opcional.Transfiere el control fuera del bloque While.

End While

Requerido.Termina la definicin del bloque While.

Comentarios
Utilice una estructura While...End While si desea repetir un conjunto de instrucciones un nmero indefinido de
veces, siempre que una condicin sea True.Si desea ms flexibilidad con respecto a la ubicacin donde
prueba la condicin o al resultado para el que la prueba, quiz prefiera Instruccin Do...Loop (Visual Basic).Si
desea repetir las instrucciones un nmero fijo de veces, Instruccin For...Next (Visual Basic) suele ser mejor
opcin.

Nota: La palabra clave While tambin se utiliza en Instruccin Do...Loop (Visual Basic), Skip While (Clusula,
Visual Basic) yTake While (Clusula, Visual Basic).

Si condition es True, se ejecutan todas las statements hasta que se encuentra la instruccin End WhileEl
Control se devuelve a While el fragmento, y condition se comprueba de nuevo.Si condition an es True, se
repite el proceso.Si esFalse, el control que se va a extraer que sigue el fragmento de End While .
El fragmento de While comprueba siempre la condicin antes de iniciar el bucle.La ejecucin en bucle
contina mientras el resultado de la condicin sea True.Si condition es False cuando primero entra en el
bucle, no ejecuta incluso una vez.
condition resultados general de una comparacin de dos valores, pero puede ser cualquier expresin que se
evala comoBoolean (Tipo de datos, Visual Basic) un valor (True o False).Esta expresin puede incluir un
valor de otro tipo de datos, como un tipo numrico, convertido en Boolean.
Se pueden anidar bucles While colocando un bucle dentro de otro.Tambin puede anidar distintos tipos de
estructuras de control dentro de otras.

Salida mientras
El fragmento de Salida mientras puede proporcionar otra forma de salir de un bucle de While .DeExit
While transfiere el control inmediatamente al extraer que sigue el fragmento de End While .
Normalmente se utiliza Exit While despus de que se evale alguna condicin (por ejemplo, en una
estructura deIf...Then...Else ).Por ejemplo, puede ser conveniente salir de un bucle si se detecta una

condicin que hace que sea innecesario o imposible continuar la iteracin, como puede ser un valor errneo o
una solicitud de finalizacin.Puede utilizar Exit While cuando se prueba para una condicin que podra
provocar un bucle infinito, que es un bucle que puede ejecutar un nmero muy grande o incluso infinito de
veces.Puede utilizar Exit While para que el bucle.
Puede poner cualquier nmero de instrucciones Exit While en cualquier lugar del bucle While.
Cuando se utiliza dentro de bucles While anidados, Exit While transfiere el control fuera del bucle ms
profundo y al siguiente nivel de anidamiento.
De Continue While de extraer transfiere el control inmediatamente a la siguiente iteracin del bucle.

En el ejemplo siguiente, las instrucciones del bucle continan ejecutndose hasta que la variable index es
superior a 10.

VB
Dim index As Integer = 0 While index <= 10 Debug.Write(index.ToString & " ")
Debug.WriteLine("") ' Output: 0 1 2 3 4 5 6 7 8 9 10

index += 1 End While

En el siguiente ejemplo se muestra el uso de las instrucciones Continue While y Exit While.

VB
Dim index As Integer = 0 While index < 100000 index += 1
' If index is between 5 and 7, continue ' with
the next iteration. If index >= 5 And index <= 8 Then
Continue While End If
' Display the index.
Debug.Write(index.ToString & " ")
' If index is 10, exit the loop. If index = 10 Then
Exit While End If
End While Debug.WriteLine("") ' Output: 1 2 3 4 9 10
En el ejemplo siguiente se leen todas las lneas de un archivo de texto.El mtodo OpenText abre el archivo y
devuelve unStreamReader que lee los caracteres.En la condicin de While , el mtodo
de Peek de StreamReader determina si contiene caracteres adicionales.

VB
Private Sub ShowText(ByVal textFilePath As String) If System.IO.File.Exists(textFilePath) = False Then
Debug.WriteLine("File Not Found: " & textFilePath) Else
Dim sr As System.IO.StreamReader =
System.IO.File.OpenText(textFilePath)
While sr.Peek() >= 0
Debug.WriteLine(sr.ReadLine())
End While
sr.Close() End If End Sub

UNIDAD IV ELABORACION Y MANIPULACION DE UNA BASE


DE DATOS
4.1 CREACION DE UNA BASE DE DATOS

Para crear una base de datos SQL Server Compact 3.5 y tener acceso a ella mediante Visual Basic Express,
debe instalar primero SQL Server Compact 3.5. Si no lo instal al instalar Visual Basic Express, debe hacerlo
antes de continuar.

Para crear una base de datos


1. En el men Archivo, haga clic en Nuevo proyecto.
2. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin de Windows
Forms.
3. En el cuadro Nombre, escriba PrimeraBaseDeDatos y, a continuacin, haga clic en Aceptar.
Se abre un nuevo proyecto de formularios Windows Forms.
4. En el men Proyecto, haga clic en Agregar nuevo elemento.
5. En el cuadro de dilogo Agregar nuevo elemento, haga clic en Base de datos local.
6. En el cuadro Nombre, escriba PrimeraBaseDeDatos y, a continuacin, haga clic en Agregar.
Se abrir el Asistente para la configuracin de orgenes de datos.
7. En el Asistente para la configuracin de orgenes de datos, haga clic en Cancelar.
Una nueva base de datos, PrimeraBaseDeDatos.sdf, se agrega al proyecto y aparece en el Explorador
de soluciones.

Agregar una tabla


Como puede observar, crear una base de datos es fcil. En su estado actual, la base de datos no es til dado
que no contiene datos. En el siguiente procedimiento, se agregar una tabla a la base de datos, en este caso,
una tabla para almacenar informacin de direcciones.

Para agregar una tabla a la base de datos


1. En el men Ver, haga clic en Explorador de bases de datos.
2. En el Explorador de bases de datos, expanda PrimeraBaseDeDatos.sdf (haga clic en el signo ms) y, a
continuacin, seleccione Tablas.
3. Haga clic con el botn secundario en Tablas y, a continuacin, en Crear tabla.
Se abre la ventana Nueva tabla.

4. En el cuadro Nombre escriba Direcciones.


5. Seleccione el campo vaco situado bajo Nombre de columna y escriba Nombre.
6. En el campo Tipo de datos, haga clic en nvarchar en la lista desplegable.
7. Establezca el valor del campo Longitud en 50; la columna Permitir valores null se establece
automticamente en S.
Ahora se ha definido la primera columna en la nueva tabla.
8. Repita los tres pasos anteriores para agregar cuatro columnas ms con los valores siguientes:
a. Nombre de columna: Apellido, Tipo de datos: nvarchar, Longitud: 50
b. Nombre de columna: Calle, Tipo de datos: nvarchar, Longitud: 50
c. Nombre de columna: Ciudad, Tipo de datos: nvarchar, Longitud: 50
d. Nombre de columna: Telfono, Tipo de datos: nvarchar, Longitud: 50
9. Haga clic en Aceptar para crear la tabla y cerrar la ventana Nueva tabla.

Agregar claves principales


Ahora tiene una tabla en la base de datos que puede usar para almacenar datos de nombres, direcciones y
telfonos para la libreta de direcciones. El ltimo paso es agregar claves principales para evitar registros
duplicados.
Una columna de clave, tambin conocida como clave principal, designa una columna de la tabla que siempre
contiene valores nicos. En esa columna de la tabla slo puede haber una fila que contenga un valor dado; si
intenta insertar otra fila que contenga ese mismo valor, aparecer un error.
Si no hay una columna que sirva de clave principal, puede usar ms de una columna. En el caso de la tabla
Direcciones, designe las columnas Nombre y Apellido como claves principales. Aunque podra conocer a
varias personas con el mismo nombre o apellido, es menos probable que conozca a dos personas que
compartan el nombre y el apellido.

Para agregar claves principales a la tabla


1. En el Explorador de bases de datos, expanda el nodo Tablas.
2. Haga clic con el botn secundario en la tabla Direcciones y, a continuacin, haga clic en Editar
esquema de tabla.
Se abre la ventana Editar tabla.
3. En la fila Nombre, cambie Permitir valores null a No y Clave principal a S.

4. En la fila Apellido, cambie Permitir valores null a No y Clave principal a S.


Nota: Permitir valores null se establece en No porque cualquier campo que se designe como clave principal
debe contener un valor.
5. Haga clic en Aceptar para guardar estos valores y cerrar la ventana Editar tabla.

Agregar datos
Ahora tiene una base de datos que contiene una nica tabla, Direcciones. Por supuesto, una base de datos no
es muy til a menos que contenga datos. En el siguiente procedimiento, va a agregar algunos datos a la tabla
Direcciones. Si lo desea, puede sustituir los nombres y las direcciones de las personas que conoce por
aquellos proporcionados en el ejemplo.

Para agregar datos a la tabla


1. En el Explorador de base de datos, expanda el nodo Tablas, seleccione el nodo Direcciones y, a
continuacin, en el men Datos, haga clic en Mostrar datos de tabla.
Se abrir una ventana de tabla de datos.
2. En la ventana de tabla de datos, en el campo Nombre, escriba Sandeep.
Nota: Observe que al abrir la ventana de tabla de datos por primera vez, el valor NULL aparece en todos los
campos;null es un trmino de la base de datos que significa que el campo est vaco.
3. En el campo Apellido, escriba Kaliyath.
4. En el campo Calle, escriba 123 45th Ave. E.
5. En el campo Ciudad, escriba Seattle.
6. Seleccione el campo Telfono, escriba 2065550100 y presione la tecla TAB.
Ahora ha definido el primer registro en la tabla Direcciones.
7. Repita los pasos 2 a 6 para agregar dos registros ms que contengan los valores siguientes:
a. Nombre: Michael, Apellido: Alexander, Calle: 789 W. Capital
Way, Ciudad: Tacoma, Telfono:2065550101.
b. Nombre: Andrea, Apellido: Dunker, Calle: 234 Moss Bay
Blvd, Ciudad: Kirkland, Telfono: 2065550102.
8. En el men Archivo, haga clic en Guardar todo para guardar el proyecto y la base de datos.

Mientras escriba los datos, quiz haya observado unos iconos pequeos de signo de exclamacin junto a los
datos. Al usar la tecla TABULADOR para pasar a la fila siguiente, los iconos desaparecieron. Este icono
significa que los datos no se han guardado en la base de datos. Al dejar la fila en la que estaba escribiendo
datos, los datos de toda la fila se guardan en la base de datos de manera automtica.

Pasos siguientes
En esta leccin ha creado una base de datos, ha agregado una tabla de base de datos y, a continuacin, ha
agregado registros a la tabla en el entorno de desarrollo integrado (IDE). En la siguiente leccin, aprender a
utilizar una base de datos en el programa.
4.1.1 TIPOS DE DATOS QUE SOPORTAN LAS TABLAS
En la tabla siguiente se muestran los tipos de datos de Visual Basic .NET, los tipos compatibles con Common
Language Runtime, su asignacin de almacenamiento nominal y sus intervalos de valores.

Tipo de Visual
Basic

Estructura de
tipo Common
Language
Runtime

Boolean

Boolean

En funcin de la
plataforma de
implementacin

True o False

Byte

Byte

1 byte

0 a 255 (sin signo)

Char (carcter
individual)

Char

2 bytes

0 a 65535 (sin signo)

date

DateTime

8 bytes

0:00:00 (medianoche) del 1 de enero de 0001


a 11:59:59 p.m. del 31 de diciembre de 9999.

Decimal

Decimal

16 bytes

0 a +/79.228.162.514.264.337.593.543.950.335 (+/7,9... E+28) sin separador decimal; 0 a +/-

Asignacin de
almacenamiento
nominal

Intervalo de valores

7,9228162514264337593543950335 con 28
posiciones a la derecha del decimal;
el nmero distinto de cero ms pequeo es +/0,0000000000000000000000000001 (+/-1E28)

Double(punto
flotante de
precisin doble)

Double

8 bytes

-1,79769313486231570E+308 a
-4,94065645841246544E-324 para los
valores negativos;
4,94065645841246544E-324 a
1,79769313486231570E+308 para los valores
positivos

Integer

Int32

4 bytes

-2.147.483.648 a 2.147.483.647 (con signo)

Long (entero largo)

Int64

8 bytes

-9.223.372.036.854.775.808 a
9.223.372.036.854.775.807 (9,2...E+18 ) (con
signo)

Object (clase)

4 bytes en
plataforma de 32
bits

Cualquier tipo puede almacenarse en una


variable de tipo Object

Objeto

8 bytes en
plataforma de 64
bits

SByte

SByte

1 byte

-128 a 127 (con signo)

Short (entero corto)

Int16

2 bytes

-32.768 a 32.767 (con signo)

Single (punto
flotante de

Single

4 bytes

-3,4028235E+38 a -1,401298E-45 para los

precisin sencilla)

valores negativos;
1,401298E-45 a 3,4028235E+38 para los
valores positivos

String(longitud
variable)

String (clase)

En funcin de la
plataforma de
implementacin

0 a 2.000 millones de caracteres Unicode


aprox.

UInteger

UInt32

4 bytes

0 a 4.294.967.295 (sin signo)

ULong

UInt64

8 bytes

0 a 18.446.744.073.709.551.615 (1,8...E+19 )
(sin signo)

UserDefined(estructura)

(hereda
deValueType)

En funcin de la
plataforma de
implementacin

Cada miembro de la estructura tiene un


intervalo de valores determinado por su tipo de
datos y es independiente de los intervalos de
valores correspondientes a los dems
miembros.

UShort

UInt16

2 bytes

0 a 65.535 (sin signo)

En notacin cientfica, E hace referencia a una potencia de 10. Por consiguiente, 3,56E+2 significa 3.56 x
102 356 y 3,56E-2 significa 3.56 / 102 0,0356.

Nota: En las cadenas que contienen texto, utilice la funcin StrConv para pasar de un formato de texto a otro.

Consumo de memoria
Al declarar un tipo de datos bsico, no debe suponerse que su consumo de memoria es igual a su asignacin
de almacenamiento nominal. Esto se debe a las consideraciones siguientes:

Asignacin de almacenamiento. Common Language Runtime puede asignar el almacenamiento en


funcin de las caractersticas actuales de la plataforma en la que se ejecuta la aplicacin. Si la
memoria est casi completa, se pueden empaquetar los elementos declarados de la forma ms
estrecha posible. En otros casos, se podran alinear las direcciones de memoria a los lmites del
hardware naturales para optimizar el rendimiento.

Ancho de plataforma. La asignacin de almacenamiento en una plataforma de 64 bits es diferente a


la asignacin en una plataforma de 32 bits.

Tipos de datos compuestos


Las mismas consideraciones se aplican a cada miembro de un tipo de datos compuesto, como una estructura
o una matriz. No se pueden sumar simplemente todas las asignaciones de almacenamiento nominales de los
miembros de tipo.Adems, existen otras consideraciones, como las siguientes:

Sobrecarga. Algunos tipos compuestos tienen requisitos adicionales de memoria. Por ejemplo, una
matriz utiliza memoria adicional para la matriz en s y para cada dimensin. En una plataforma de 32
bits, esta sobrecarga corresponde a 12 bytes y 8 bytes por cada dimensin. En una plataforma de 64
bits, los requisitos se duplican.

Diseo de almacenamiento. No debe suponerse que el orden de almacenamiento en la memoria es


igual al orden de declaracin. Ni siquiera pueden hacerse predicciones sobre la alineacin de bytes,
como un lmite de 2 bytes o de 4 bytes. Si define una clase o estructura y necesita controlar el diseo
de almacenamiento de sus miembros, puede aplicar el atributo StructLayoutAttribute a la clase o
estructura.

Sobrecarga de objetos
Una variable Object que haga referencia a un tipo de datos bsico o compuesto, utiliza 4 bytes adems de los
datos contenidos en el tipo de datos.
4.2 VINCULACION DE UNA TABLA CON UN FORMULARIO
La vinculacin le permite conectarse a datos de otra base de datos sin importarlos, de modo que puede ver y
modificar los datos ms recientes en el origen de ambos y bases de datos de destino sin crear ni mantener
dos copias de los mismos datos. Puede vincular nicamente a las tablas de otra base de datos de Access. No
se puede vincular a las consultas, formularios, informes, macros o mdulos.
Cuando se vincula a una tabla de una base de datos de Access, Access crea una nueva tabla, denominada
tabla vinculada, que mantiene un vnculo a los campos y registros de origen. Los cambios que realice a los
datos de la base de datos de origen se reflejan en la tabla vinculada en la base de datos de destino y
viceversa. Sin embargo, no puede cambiar la estructura de una tabla vinculada en la base de datos de
destino. En otras palabras, no puede realizar cambios a una tabla vinculada, como agregar o eliminar un
campo o modificar el tipo de datos de un campo.
Prepararse para vincular tablas de una base de datos de Access

1.

Busque la base de datos de origen.


El formato de archivo puede ser MDB, MDE, ACCDB o ACCDE. Si la base de datos est protegida con
contrasea, se le pedir que escriba la contrasea durante la operacin de vinculacin.

2.

Identifique las tablas que desea vincular.


Puede vincular a tablas, pero no se puede vincular a las consultas, formularios, informes, macros o mdulos.
Si es la primera vez que se vincula a las tablas de otra base de datos de Access, consulte la siguiente tabla
para algunas sugerencias tiles.
Elemento

Descripcin

Varios objetos

Puede crear vnculos a varias tablas en una sola operacin de vinculacin. Se crea una
tabla vinculada por cada tabla de origen.

Tablas
vinculadas
como origen

No se puede vincular a una tabla que ya es una tabla vinculada en la base de datos de
origen.
Por ejemplo, si la tabla Empleados1 a la que desea vincular a la base de datos de ventas
es realmente una tabla vinculada en la que se vincula a la tabla Employees de la base de
datos Nmina, no puede utilizar la tabla Empleados1 de la base de datos de ventas como
la tabla de origen. En su lugar debe vincularse directamente a la tabla Employees de la
base de datos de nminas.

1.

Tabla nueva o
existente

Cada operacin de vinculacin crea una nueva tabla vinculada por cada tabla de origen.
No se puede sobrescribir o anexar a una tabla existente mediante una operacin de
vinculacin.

Relaciones

Si selecciona varias tablas de origen, las relaciones entre las tablas se trasladan
automticamente a la base de datos de destino. Sin embargo, no puede cambiar ni
eliminar la relacin en la base de datos de destino.

Campos de
bsqueda

Si un campo en la tabla de origen busca valores en otra tabla, olvide vincular a la tabla
relacionada si desea que el campo de destino muestre valores de bsqueda. Si no se
vincula a la tabla o consulta relacionadas, el campo de destino muestra slo los
identificadores de bsqueda.

Cierre la base de datos de origen. Asegrese de que ningn otro usuario tiene abierta en modo
exclusivo la base de datos.

2.

Abra la base de datos de destino. Asegrese de que la base de datos de destino no es de slo lectura
y que tiene los permisos necesarios para agregar objetos y datos a la base de datos.
NOTA Si desea crear los vnculos en una base de datos, debe crear una base de datos en blanco (uno que
no contiene las tablas, formularios o informes) antes de iniciar la operacin de importacin.
Haga clic en el Botn de Microsoft Office

y, a continuacin, haga clic en nuevo.

La operacin no sobrescribir o modificar cualquiera de las tablas o los objetos. Si ya existe un objeto con el
mismo nombre que el objeto de origen en la base de datos de destino, Access anexa un nmero (1, 2, 3 etc.)
en el nombre de la tabla vinculada. Por ejemplo, si vincula a la tabla envos desde una base de datos que ya
tiene una tabla denominada envos, la tabla vinculada se denominar Envos1. Si el nombre Envos1 ya est
en uso, la tabla nueva se denominar Envos2 y as sucesivamente.
Recuerde que si desea anexar los registros de la tabla de origen a una tabla en la base de datos de destino,
debe utilizar una consulta de datos anexados en lugar de ejecutar una operacin de vinculacin.
Para obtener ms informacin acerca de las consultas de datos anexados, vea el artculo crear una consulta
de datos anexados.
Vincular a los datos

1.

En la ficha Datos externos, en el grupo Importar, haga clic en acceso.

NOTA La ficha Datos externos est disponible slo cuando est abierta una base de datos.
2.
En el cuadro de texto nombre de archivo, escriba el nombre de la base de datos de origen o haga clic
enExaminar para mostrar el cuadro de dilogo Abrir archivo.
3.

4.

Haga clic en Vincular al origen de datos creando una tabla vinculada y, a continuacin, haga clic
enAceptar.
En el cuadro de dilogo Vincular tablas, seleccione las tablas que desea establecer el vnculo.
Para cancelar una seleccin, haga clic en la tabla.

5.

Haga clic en Aceptar para finalizar la operacin.


Access crea las tablas vinculadas.

6.

Abra las tablas vinculadas en la vista Hoja de datos para asegurarse de que los datos son correctos.
4.3. CREACION DE CONSULTAS CON SQL
Para ejecutar una instruccin SQL que devuelve filas, puede ejecutar una consulta TableAdapter configurada
para ejecutar una instruccin SQL (por ejemplo, CustomersTableAdapter.Fill(CustomersDataTable)).

Si la aplicacin no utiliza TableAdapters, llame al mtodo ExecuteReader en un objeto de comando,


estableciendo su propiedad CommandType en Text. (El objeto "Command"" hace referencia al comando
concreto para el Proveedor de datos de .NET Framework que utiliza su aplicacin. Por ejemplo, si su
aplicacin utiliza el proveedor de datos de .NET Framework para el servidor SQL Server, el objeto de
comando sera SqlCommand.)

Los ejemplos siguientes muestran cmo ejecutar instrucciones SQL que devuelvan filas desde una base de
datos utilizando TableAdapters u objetos de comando. Para obtener ms informacin sobre cmo realizar
consultas con TableAdapters y comandos, vea Rellenar los conjuntos de datos con datos.
Ejecucin de instrucciones SQL que devuelven filas mediante un TableAdapter
Este ejemplo muestra cmo crear una consulta de TableAdapter mediante Asistente para la configuracin de
consultas de TableAdapter y, a continuacin, proporciona informacin acerca de cmo declarar una instancia
de TableAdapter y ejecutar la consulta.

Nota: Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de
la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edicin de Visual Studio que se
tenga y la configuracin que se utilice determinan estos elementos.

Para crear una instruccin SQL que devuelve filas mediante un TableAdapter
1. Abra un conjunto de datos en el Diseador de Dataset.
2. Si no tiene uno ya, cree un TableAdapter.
3. Si ya tiene una consulta en su TableAdapter que utiliza una instruccin SQL para devolver filas, pase al
procedimiento siguiente, "Para declarar una instancia del TableAdapter y ejecutar la consulta". De lo
contrario, contine con el paso 4 para crear una nueva consulta que devuelva filas.
4. Haga clic con el botn secundario del mouse en el TableAdapter deseado y utilice el men contextual
para agregar una consulta.
El Asistente para la configuracin de consultas de TableAdapter se abre.
5. Deje el valor predeterminado de Usar instrucciones SQL y, a continuacin, haga clic en Siguiente.
6. Deje el valor predeterminado de SELECT que devuelve filas y, a continuacin, haga clic
en Siguiente.
7. Escriba su instruccin SQL o utilice el Generador de consultas para que le ayude a crear una y, a
continuacin, haga clic en Siguiente.
8. Proporcione un nombre para la consulta.
9. Finalice el asistente; la consulta se agrega al TableAdapter.

10. Compilar el proyecto.

Para declarar una instancia de TableAdapter y ejecutar la consulta


1. Declare una instancia de TableAdapter que contenga la consulta que desea ejecutar.
o

Para crear una instancia mediante las herramientas en tiempo de diseo, arrastre el
TableAdapter que desee desde el Cuadro de herramientas. (Los componentes del proyecto
aparecen ahora en el Cuadro de herramientas debajo de un encabezado que coincide con el
nombre del proyecto.) Si el TableAdapter no aparece en el Cuadro de herramientas, quiz
deba compilar el proyecto.
O bien

Para crear una instancia de cdigo, reemplace el cdigo siguiente con los nombres
de DataSet y TableAdapter.
Dim tableAdapter As New DataSetTableAdapters.TableAdapter

Nota: La bsqueda de TableAdapters no se realiza realmente dentro de sus clases de conjunto de datos
asociadas. Cada conjunto de datos tiene una coleccin correspondiente de TableAdapters en su propio
espacio de nombres. Por ejemplo, si tiene un conjunto de datos denominado SalesDataSet, habr un espacio
de nombres SalesDataSetTableAdapters que contiene sus TableAdapters.

2. Llame a su consulta como llamara a cualquier otro mtodo del cdigo. Su consulta es un mtodo de
TableAdapter.Reemplace el cdigo siguiente con los nombres de su TableAdapter y realice la
consulta. Tambin necesita pasar todos los parmetros requeridos por la consulta. Si no est seguro
de si su consulta requiere parmetros, o de qu parmetros requiere, compruebe IntelliSense para
averiguar la firma necesaria de la consulta. Dependiendo de si la consulta toma o no parmetros, el
cdigo sera similar a:
TableAdapter.Query()
TableAdapter.Query(Parameters)
TableAdapter.Query(DataTable, Parameters)
3. El cdigo completo para declarar una instancia de TableAdapter y ejecutar la consulta debe parecerse
al siguiente:
VB
NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter =
NorthwindDataSetTableAdapters.CustomersTableAdapter();
tableAdapter.FillByCity(northwindDataSet.Customers, "Seattle");

new

Ejecucin de instrucciones SQL que devuelven filas mediante un objeto de comando

El ejemplo siguiente muestra cmo crear un comando y ejecutar una instruccin SQL que devuelve filas.

Este ejemplo utiliza el objeto SqlCommand y requiere:

Referencias a los espacios de nombres System, System.Data, System.Data.SqlClient y System.Xml.

Un conjunto de datos denominado sqlConnection1.

Una tabla denominada Customers en el origen de datos al que se conecta sqlConnection1. (De lo
contrario, necesita una instruccin SQL vlida para su origen de datos.)

Para ejecutar una instruccin SQL que devuelve filas mediante programacin a travs de un objeto de
comando

Agregue el cdigo siguiente a un mtodo desde el que desee ejecutar el cdigo. Para devolver las filas
llame al mtodo ExecuteReader del comando (por ejemplo, ExecuteReader). Los datos se devuelven
en un objetoSqlDataReader.
VB
SqlConnection sqlConnection1 = new SqlConnection("Your Connection String"); SqlCommand cmd =
new SqlCommand(); SqlDataReader reader; cmd.CommandText = "SELECT * FROM Customers";
cmd.CommandType = CommandType.Text; cmd.Connection = sqlConnection1;
sqlConnection1.Open(); reader = cmd.ExecuteReader(); // Data is accessible through the DataReader
object here. sqlConnection1.Close();

Seguridad
La aplicacin necesita permiso para tener acceso a la base de datos y ejecutar la instruccin SQL.

UNIDAD V DISEO DE MENUS Y ELABORACION DE REPORTES


5.1 CREAR REPORTES
Para crear reportes en Visual Basic vamos a crear primero el Data Environment (Entorno de Datos) el cual es
una herramienta para crear reportes tal como Crystal Reports o Access.
Creando el Data Environment
a) Haz clic en el botn Project de la barra de herramientas.
b) Haz clic en Add Data Environment

c) Y se abrir el Data Environment mostrando el nombre del proyecto en su barra de ttulo.

d) En la ventana aparece un pequeo icono de un reporte al cual puedes cambiarle el nombre fcilmente
seleccionndolo y modificando su propiedad (Name) por otro como Reportes, etc.
e) Ms abajo se puede ver otro objeto con una clavija elctrica llamado Connection1 al cual tambin puedes
cambiarle el nombre modificando su propiedad (Name) por otro como Alumnos, Maestros, etc.

f) Ahora haz clic con el botn derecho del ratn sobre la Connection1 y haz clic en Properties...
g) Y aparecer la caja Propiedades de vnculo de datos, haz clic en la opcin Conexin.

h) Haz clic en: Usar la cadena de conexin y haz clic en Generar.


i) Y aparecer la caja Seleccionar origen de datos, haz clic en la opcin Origen de datos de equipo.

j) Selecciona el tipo de base de datos en donde se cre la base de datos, en nuestro caso MS Access
Database y haz doble clic ah.

k) Y aparecer la caja Conexin, haz clic en el botn Base de datos...

l) Y aparecer la caja Seleccionar base de datos, localiza la carpeta en donde se halla tu base de datos,
seleccinala y haz clic en Aceptar.

m) Enseguida se vuelve a mostrar la caja Conexin tambin haz clic en Aceptar.


n) Y se mostrar la caja Propiedades de vnculo de datos, mostrando en la caja de texto Cadena de conexin
bajo Usar la cadena de conexin la ruta de la base de datos que hemos conectado, para finalizar la conexin
haz clic en Aceptar.

o) Y volveremos al Entorno de Datos.


5.1.1 UNA TABLA
Las tablas temporales son objetos en servidores de bases de datos que slo existen mientras laconexin con
la base de datos est abierta. Cuando manipulas los datos y pierdes la conexin desde el cdigo Visual
Basic a la base de datos, la tabla temporal se borra de la memoria del servidor. Una tabla temporal se denota
usando el smbolo de la almohadilla (#). Este proceso puede hacerse directamente desde el cdigo.
1.

Crea una sentencia SQL y asgnala a una variable. El lenguaje SQL se usa para crear y consultar
tablas en tu base de datos. El siguiente cdigo crea una sentencia SQL: Dim sql As String sql = "create table
#temp (nombre_cliente varchar(50))" El cdigo crea una tabla de clientes temporal con el nombre de columna
"nombre_cliente" definido.

2.

Crea tu conexin de base de datos. La conexin de base de datos toma la ubicacin de tu base de
datos y tu nombre de usuario y contrasea y conecta con el servidor en la red. El siguiente cdigo crea la
conexin a la base de datos y la abre para usarla con el cdigo: set connection = New ADODB.Connection
connection.ConnectionString = "Provider=SQL Server Provider;"Data Source=servidor;Persist Security
Info=False;uid=nombreusuario;pwd=contrasea" connection.Open Cambia "servidor" por el nombre o
direccin IP de tu servidor de base de datos. Cambia "nombreusuario" y "contrasea" por los valores usados
para conectar con el servidor.

3.

Ejecuta la sentencia SQL para crear una tabla temporal en tu base de datos. La siguiente sentencia
crea la tabla: connection.Execute sql

4.

Guarda los cambios en el cdigo y pulsa la tecla F5. La tecla F5 compila tu cdigo y lo ejecuta en el
debugger compilador de Visual Basic. Prueba el cdigo y verifica que la tabla se ha creado en tu base de
datos.
5.1.2 DIRECCIONAMIENTO DEL REPORTE A IMPRESORA
Visual Basic 6.0 permite obtener por la impresora grficos y texto similares a los que se pueden obtener por la
pantalla, aunque con algunas diferencias de cierta importancia. Existen dos formas de imprimir: la primera
mediante el mtodo PrintForm, y la segunda utilizando el objeto Printer, que es un objeto similar al objeto
PictureBox. Ambos mtodos tienen puntos fuertes y dbiles que se comentarn a continuacin.
Mtodo PrintForm
El mtodo PrintForm permite imprimir un formulario con sus controles y con los resultados de los mtodos
grficos (PSet, Line y Circle) y del mtodo Print. Para ello la propiedad AutoRedraw del formulario tiene que
estar puesta a True, y los mtodos citados tienen que estar llamados desde un evento distinto del Paint. Lo
nico que no se dibuja del formulario es la barra de ttulo. Este sistema de impresin es muy sencillo de
utilizar, pero tiene el inconveniente de que el resultado se imprime con la misma resolucin de la pantalla
(entre 50 y 100 puntos por pulgada), no aprovechando por tanto la mayor resolucin que suelen tener las
impresoras (300, 600 ms puntos por pulgada).
Objeto Printer
Este segundo sistema tiene la ventaja de que permite aprovechar plenamente la resolucin de la impresora,
pero no permite dibujar controles sino slo los mtodos grficos habituales (PSet, Line y Circle), el mtodo
Print y un mtodo no visto hasta ahora que es PaintPicture. Para Visual Basic 6.0 la impresora es un objeto
grfico ms, similar a los formularios y a las cajas grficas PictureBox. Como tal objeto grfico tiene sus
propiedades generales (DrawStyle, BackColor, ForeColor, etc.), adems de otras propiedades especficas de
la impresora, como DeviceName, DriverName, Orientation, Copies, etc. Para ms informacin puede utilizarse
el Help, buscando Printer object. En principio se utiliza la impresora por defecto del PC, pero Visual Basic
mantiene una Printers Collection, que es algo as como un array de impresoras disponibles. A partir de esta
Printers Collection se puede cambiar a la impresora que se desee. El objeto Printer tiene un mtodo llamado

EndDoc para enviar realmente a la impresora el resultado de los mtodos grficos. El mtodo PaintPicture
permite incorporar el contenido de ficheros grficos a un formulario, PictureBox o Printer. Su forma general es:
object.PaintPicture pictProp X, Y, Width, Height
donde pictProp indica el grfico (coincide con la propiedad Picture de PictureBox), X e Y indican las
coordenadas de insercin y los dos ltimos parmetros las dimensiones (opcionales).
5.2 DISEO DE MENU
El objeto Menu de Visual Basic 6.0 se reemplaza por el control MenuStrip o ContextMenuStrip en Visual Basic
2008. Los nombres de algunas propiedades, mtodos, eventos y constantes son diferentes y, en algunos
casos, existen diferencias de comportamiento.
En Visual Basic 6.0, se crea un objeto Menu mediante el Editor de mens. Los objetos Menu estn vinculados
al formulario para el que se han creado pero se pueden modificar en tiempo de ejecucin o mostrar como
mens contextuales. Los mens creados con el objeto Menu no admiten de forma nativa sombreado, iconos o
controles incrustados; slo se pueden crear mens de estilo "sencillo" de Windows 98.
En Visual Basic 2008, el objeto Menu se reemplaza por los componentes MenuStrip y ContextMenuStrip. Los
mens se pueden crear en tiempo de diseo utilizando la edicin en contexto o se pueden crear en cdigo.
Los componentes MenuStrip y ContextMenuStrip permiten crear modernos mens de estilo barra de
herramientas de Office, con compatibilidad completa para reas sombreadas, iconos y controles incrustados
como listas desplegables.
Mostrar mens contextuales
En Visual Basic 6.0, puede mostrar un men contextual llamando al mtodo PopupMenu y pasndole
cualquier objeto Menu de nivel superior. Por ejemplo, si tiene un men Edicin denominado mnuEdit con
submens Cortar, Copiar y Pegar, puede mostrar un men contextual con los comandos Cortar, Copiar y
Pegar llamando a PopupMenu mnuEdit.
En Visual Basic 2008, los mens contextuales se muestran mediante un componente ContextMenuStrip
independiente. No hay equivalente para el mtodo PopupMenu, no obstante, puede seguir compartiendo
comandos entre MenuStrip y ContextMenuStrip al crear ContextMenuStrip en tiempo de diseo y al compartir
controladores de eventos.
5.2.1 PASOS PARA DESARROLLAR UN MENU
Para crear un men debemos ir a Herramientas/Editor de Mens, o tgambin podemos acceder mediante
Ctrl+E. All se abrir un formulario como el que vemos a continuacin:

Para crear el men debemos completar los cam- pos que aparecen en el editor:

Caption: Es el ttulo del men, por ejemplo en Visual basic, el primer ttulo de la barra de menus es "Archivo".
Name: Es el nombre con el que vamos a identificar el elemento del men, generalmente se usa el propio
caption precesido de mnu.
Index: Est relacionado con la posibilidad de crear arreglos.
HelpContextID: Identifica una ayuda sobre la opcin de men. Si el usuario utiliza F1 podr utilizar la ayuda
en pantalla correspondiente
ShortCut: Para el elemento del men con el que estemos trabajando podemos elegir una combinacin de
teclas. En el formulario de ejemplo este se encuentra en (ninguno), pero abriendo Shortcut se puede elegir
entre una cantidad de combinaciones.
NegotiatePosition: Selecciona la propiedad NegotiatePosition del men.
Checked: Los elementos del men pueden tener a su izquierda un tilde, esta propiedad tambin se puede
activar desde el cdigo.
Enabled: Tiene dos posibilidades True o False. Si no est tildado estar en False y el elemento del men se
ver grisado no pudiendo usarse.
Visible: Al igual que el anterior puede estar en True (cuando est tildado) o en False en cuyo caso no se ver.
WindowsList: Es para aplicaciones con varios formularios o ventanas. Estas pueden manejarse desde el
men. Si WindowsList est tildada (True), el men puede presentar una lista con las ventanas abiertas
Flecha derecha: Pasa el men seleccionado a un nivel jerrquico inferior. Crea cuatro niveles de submens
como mximo.
Flecha izquierda: Pasa el men seleccionado a un nivel jerrquico superior. Crea cuatro niveles de
submens como mximo.
Flecha arriba: Mueve el elemento seleccionado hacia arriba.
Flecha abajo: Mueve el elemento seleccionado hacia abajo.
Lista Mens: Es un cuadro de lista que muestra en orden jerrquico todos los elementos del men. Los
elementos de los submens aparecen corridos hacia la derecha y con unos puntitos para indicar su jerarqua.
(men, submen, subsubmen, subsubsubmen, segn el caso, cada uno un poco ms hacia la derecha)
Siguiente: Selecciona la lnea siguiente (hacia abajo) y sirve para segujir agregando elementos al men..
Insertar: Inserta una lnea en el cuadro de lista, pero a diferencia de "siguiente" lo hace encima de la lnea
seleccionada.
Eliminar: Borra la lnea seleccionada.
Aceptar: Aplica los cambios efectuados de forma que desaparece el editor de mens y aparece el nuevo
men en el formulario que estamos usando.
Cancelar: Cierra el Editor de mens sin que se efecte cambio alguno.
5.3 CREACION DE PROJECT

Para su primer programa de Visual Basic, crear una aplicacin de exploracin web que abra una pgina web.
El primer paso para crear un programa de Visual Basic es abrir Visual Studio y crear un proyecto. ste ser
siempre el primer paso para la creacin de cualquier programa de Visual Basic.

En el men Inicio de Windows , haga clic en Visual Basic 2008 Express.


Aparecer la pantalla de bienvenida a Visual Basic Express. Se trata de la interfaz de Visual Basic
2008 Express, que tambin recibe el nombre de entorno de desarrollo integrado o IDE.
1. En el men Archivo, haga clic en Nuevo proyecto.
Aparece el cuadro de dilogo Nuevo proyecto.
2. Seleccione Aplicacin de Windows Forms y haga clic en Aceptar.

Se muestra un nuevo formulario en el IDE y se agregan los archivos necesarios para el proyecto a la
ventanaExplorador de soluciones. Si es el primer proyecto de Aplicacin de Windows Forms que crea,
recibir el nombre de "WindowsApplication1".
Informacin detallada
Acaba de crear un proyecto para el programa de exploracin web. Un proyecto en Visual Basic es un lugar
para almacenar partes del programa y mantenerlas organizadas.
Cuando crea un nuevo proyecto por primera vez, slo existe en la memoria. Si cierra el entorno de desarrollo
integrado (IDE) de Visual Basic, se le pide que guarde o descarte el proyecto. Cuando lo guarde, puede darle
un nombre ms significativo.
Al abrir el cuadro de dilogo Nuevo proyecto, haba diversos tipos de proyectos entre los cuales elegir. El
programa de exploracin Web es una Aplicacin para Windows normal; es decir, un programa que se puede
ejecutar desde el menInicio.
Al crear el proyecto, apareca un formulario (tambin conocido como diseador de formularios) en el entorno
de desarrollo integrado (IDE). Este formulario representa una ventana que se mostrar cuando se ejecuta el
programa. Muchos programas muestran ms de una ventana, por lo que un proyecto puede contener
mltiples formularios.

Referencias: https://msdn.microsoft.com/es-es/library/eyzd6e34(v=vs.90).aspx, https://msdn.microsoft.com/esMX/library/2x7h1hfk.aspx,


http://aprenderaprogramar.com/index.php?
option=com_content&view=article&id=140:tipos-de-variables-en-visual-basic-integer-single-double-stringobject-boolean-etc-ejemplos-cu00308a&catid=37:curso-aprender-a-programar-visual-basic-desdecero&Itemid=61,
http://www.adrformacion.com/curso/visualbasic/leccion2/ElementosLenguaje.htm,
https://msdn.microsoft.com/es-es/library/ktwtk9ff(v=vs.90).aspx

Das könnte Ihnen auch gefallen