Академический Документы
Профессиональный Документы
Культура Документы
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
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.
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
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
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:
Diseador de formularios
tercero alterna entre distintas carpetas.
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.
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...
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
WebControl.vsz
Control Web
WebService.vsz
Servicio Web
WindowsApplication.vsz
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
Casilla de
verificacin
CheckBox
Cuadro combinado
ComboBox
Botn de comando
Datos
Cuadro de lista de
directorios
DirListBox
Cuadro de lista de
archivos
FileListBox
Cuadro de lista de
unidades
DriveListBox
Marco
Barras de
desplazamiento
horizontal y vertical
HScrollBar y
VScrollBar
Imagen
Image
Etiqueta
Label
Lnea
Line
ListBox
Contenedor OLE
OLE
Botn de opcin
OptionButton
Cuadro de lista
Cuadro de imgen
Forma
Cuadro de texto
Cronmetro
Frame
Picturebox
Shape
TextBox
Timer
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.
DataGrid
Cuadrcula
Apex enlazada
a datos
DataGrid
Cuadro de lista
enlazado a
datos.
DataList
MSFlexGrid
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:
Slo deben contener letras, nmeros y el carcter de subrayado (_); no se permiten signos de
puntuacin ni espacios en blanco.
.
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.
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
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
Option1
Name
optButton
Index
Name
optButton
Index
Name
cmdAgregar
Caption
&Agregar
Name
cmdEliminar
Caption
&Eliminar
Option2
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
MaxID = MaxID - 1
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.
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
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
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.
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
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
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.
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:
Elemento de
programacin
Variable
Literal
Constante
Enumeracin
Propiedad
Parmetro de
procedimiento
Argumento de
procedimiento
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
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.
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.
Valor del
dividendo
Resultado
Double
Double
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.
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.
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".
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 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.
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.
.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.
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:
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.
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:
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
End If
Ejemplo:
1
If n < 0 Then
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
Else
End If
Ejemplo:
1
Else
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
Case Else
End Select
01
02
Case 1, 2, 3
03
04
Case 4
05
06
Case 5, 6
07
08
Case 7
09
10
Case Else
11
12
End Select
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.
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
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
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)
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.
Sintaxis
For counter [ As datatype ] = start To end [ Step step ]
[ Exit For ] [ statements ] Next [ counter ]
[ statements ]
[ Continue For ]
[ statements ]
Elementos
Parte
Descripcin
counter
datatype
start
End
step
statements
Continue
For
Exit For
Next
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
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
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.
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
Negativo
datatypepresente
?
counterya se
ha definido?
No
Si
No
No
Si
Si
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
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
statements
Continue
While
Exit While
End 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
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
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.
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.
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
Char (carcter
individual)
Char
2 bytes
date
DateTime
8 bytes
Decimal
Decimal
16 bytes
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
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
Objeto
8 bytes en
plataforma de 64
bits
SByte
SByte
1 byte
Int16
2 bytes
Single (punto
flotante de
Single
4 bytes
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
UInteger
UInt32
4 bytes
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
UShort
UInt16
2 bytes
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:
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.
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.
2.
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
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.
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.
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)).
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.
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
El ejemplo siguiente muestra cmo crear un comando y ejecutar una instruccin SQL que devuelve filas.
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.
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.
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.
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.
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.
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.