visual basic 6. curso de introducción -...

60
Visual Basic 6. Curso de introducción Autor: Gabriel Martín Gutiérrez [Ver curso online] Descubre miles de cursos como éste en www.mailxmail.com 1 mailxmail - Cursos para compartir lo que sabes

Upload: others

Post on 08-Feb-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Visual Basic 6. Curso deintroducciónAutor: Gabriel Martín Gutiérrez

[Ver curso online]

Descubre miles de cursos como éste en www.mailxmail.com 1

mailxmail - Cursos para compartir lo que sabes

Page 2: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Presentación del curso

Tutorial de Visual Basic 6. El primer punto de este curso serán los controles yformularios que son los elementos gráficos que forman parte de las aplicaciones enVisual Basic. Luego, veremos el entorno de programación y la sintaxis VisualBasic, analizando lo que son, comentarios, sentencias, variables, tipos de datos,operadores, sentencias de control, además de las funciones y procedimientos.

Más adelante estudiaremos el Editor de Menús de Visual Basic, el manejo deerrores en Visual Basic y el acceso a bases de datos, desarrollando la teoría deacceso a datos DAO, una introducción a SQL, y el comentario ADO. Desarrollaremosla creación de un control data, controles Dbgrid, el botón cmdConsultasVisitas,entre otros elementos que, como parte del conjunto, te dejarán un cursointroductorio serio y completo de Visual Basic.

Visita más cursos como este en mailxmail:[http://www.mailxmail.com/cursos-informatica][http://www.mailxmail.com/cursos-programacion]

¡Tu opinión cuenta! Lee todas las opiniones de este curso y déjanos la tuya:[http://www.mailxmail.com/curso-visual-basic-6-introduccion/opiniones]

Cursos similares

Cursos Valoración Alumnos Vídeo

Algoritmos en QBASIC. ManualEste manual de QBASIC es una colección linkografica y bibliográfica sobre eluso de QBASIC frente a la propuesta de solucionar los casos más comunesd... [26 /10/09]

3.046  

Webs dinámicas con PHPEl lenguaje PHP es un lenguaje de programación de estilo clásico, nada quever con el HTML, XML o WML. Se parece mucho más al Java o Javascriptpero, a diferencia de esto... [10 /09/04]

12.181  

C# Curso de ProgramaciónCurso Básico de programación en C#, este curso básico abarcará desde lasbases del lenguaje hasta nuestros primeros pasos con aplicaciones web,acceso a bases de datos de... [14 /07/05]

10.393  

Access con Visual BasicMicrosoft Access con Visual Basic, aprende a crear una base de datos enAccess usando Visual Basic. Veremos también cómo crear tablas eintroducir... [01 /07/09]

7.197  

Sistema operativo. Windows 98Aprende con nuestro curso acerca del sistema operativo Windows 98, teenseñaremos las variadas funciones que tiene este software y que te ayudará a... [28 /04/09]

1.197  

Descubre miles de cursos como éste en www.mailxmail.com 2

mailxmail - Cursos para compartir lo que sabes

Page 3: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

1. Formulario y controles (1/2)[http://www.mailxmail.com/curso-visual-basic-6-introduccion/formulario-controles-1]

CURSO DE INTRUDUCCIÓN A VISUAL BASIC 6 

Formularios y Controles

Los elementos gráficos que forman parte de las aplicaciones en Visual Basic soncontroles que están contenidos en formularios (ventanas), y tanto los controlescomo los formularios tienen propiedades.

Ejemplos de controles son:

Botones, cajas de texto, cajas de selección desplegables, etiquetas, menús, etc.

Los controles y los formularios son entidades genéricas de las que puede habervarios ejemplares concretos en cada programa, estas entidades genéricas son lasclases mientras que cada ejemplar de una clase son los objetos.

Cada formulario y cada control tiene un conjunto de propiedades que define suaspecto (color, tamaño, tipo de letra, etc.), como responde a las acciones delusuario (si está activo o no lo está), etc.

Cada objeto tiene un nombre que lo identifica, por medio del cual se hace referenciaal mismo, estos nombres son definidos por defecto por Visual Basic en el momentode ser creados, pero no son en principio adecuados y deben ser renombrados por elprogramador para permitir una mejor identificación de cada uno de ellos. Paraestablecer el nombre de los objetos existe una convención muy aceptada queconsiste en usar tres letras minúsculas que identifican al control, seguidas por otrasletras (la primera mayúscula), libremente elegidas por el usuario teniendo en cuentael uso que se le va a dar al objeto. Algunas abreviaturas usuales para nombrar loscontroles son:

cmd  > Command buttonfrm    > Formlbl     > Labelopt    > Option buttonmnu  > Menufra     > Frame.

Una vez creado el objeto, se puede acceder a sus propiedades pulsando en el botónderecho del `mouse´ y seleccionando la opción `Propiedades´ o bien, pulsando latecla F4.

Descubre miles de cursos como éste en www.mailxmail.com 3

mailxmail - Cursos para compartir lo que sabes

Page 4: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Descubre miles de cursos como éste en www.mailxmail.com 4

mailxmail - Cursos para compartir lo que sabes

Page 5: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

2. Formulario y controles (2/2)[http://www.mailxmail.com/curso-visual-basic-6-introduccion/formulario-controles-2]

Los controles responden a los eventos (acciones realizadas por el usuario), de talforma que el programador decide que ocurre cuando se realiza un evento sobre uncontrol. Son eventos programables hacer click, doble click, pasar el mouse, pulsaruna tecla o combinación de teclas, recibir o perder el foco, etc.

Cada vez que se realiza un evento, Visual Basic arranca una determinada función oprocedimiento que realiza la acción programada por el usuario para responder a eseevento en concreto.

Para acceder a los distintos eventos que pueden ser programados sobre un controlse hace doble click sobre el mismo o se pulsa en el botón derecho del ´mouse´ y seelige la opción `Ver Código´, accediéndose a una pantalla en la cual se programa loque ocurrirá cuando se produzca el evento. Cada control puede tener varios eventosprogramables, por ello para seleccionar la acción que se está programando esta sedebe elegir en la parte superior derecha de la pantalla en la que se escribe el código.

Cuando el programa se esté ejecutando, el resultado de hacer click sobre el botónprogramado será el sacar un mensaje por pantalla de la manera siguiente:

La creación de objetos, el establecimiento de sus propiedades y la programación desus eventos se realiza cuando se está diseñando el proyecto, esto es en tiempo dediseño y el resultado de la labor de diseño y programación se pone de manifiestocuando se ejecuta el programa, esto es en tiempo de ejecución. Para ejecutar unprograma que se está diseñando se selecciona la opción de menú `Ejecutar´ >`Iniciar´, o pulsando la tecla F5.

Descubre miles de cursos como éste en www.mailxmail.com 5

mailxmail - Cursos para compartir lo que sabes

Page 6: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Cada aplicación que se empieza a desarrollar es un proyecto que comprende otrascomponentes más sencillas como los formularios y los módulos (conjuntos defunciones).

Para guardar un proyecto, hay que tener en cuenta que se compone de variosficheros (dos como mínimo), que deben ser guardados con el nombre adecuado y enel directorio adecuado. Existe siempre un fichero de proyecto, con extensión .vbp(Visual Basic Proyect) que se crea o modifica con la opción `Archivo´ > `GuardarProyecto´ que contiene toda la información de conjunto de la aplicación. Ademáshay que crear un fichero por cada formulario del proyecto .frm y otro por cadamódulo de la aplicación .bas o .cls.

Hay que tener claro el lugar donde se guardan estos ficheros para que sean usadoscorrectamente por el proyecto cuando se vuelva a abrir.

Descubre miles de cursos como éste en www.mailxmail.com 6

mailxmail - Cursos para compartir lo que sabes

Page 7: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

3. Entorno de programación Visual Basic[http://www.mailxmail.com/...rso-visual-basic-6-introduccion/entorno-programacion-visual-basic]

Entorno de Programación Visual Basic

Cuando se inicia un proyecto en Visual Basic 6.0. se accede a una pantalla como lasiguiente: 

En esta pantalla hay un menú, una barra de herramientas para acceso a algunas de lasopciones más usuales del menú y un cuadro de controles disponibles para ser usados en elproyecto. Los controles inicialmente cargados en este cuadro NO son todos los disponiblesen Visual Basic, existe la posibilidad de acceder a nuevos controles para su uso en elproyecto, para ello hay que usar la opción de menú `Proyecto´ > `Componentes´desplegándose un cuadro que permite insertar los nuevos controles que se quieran utilizar.

Cuando se ha terminado la programación de la aplicación hay que crear el programaejecutable para ser distribuido e instalado en los PC´s que vayan a usar dicho programa.Para crear el fichero ejecutable con extensión .exe se usa la opción de menú `Archivo´ >`Crear *.exe´.

Descubre miles de cursos como éste en www.mailxmail.com 7

mailxmail - Cursos para compartir lo que sabes

Page 8: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

4. Sintaxis Visual Basic. Sentencias. Variables y tiposde datos[http://www.mailxmail.com/...troduccion/sintaxis-visual-basic-sentencias-variables-tipos-datos]

SINTAXIS VISUAL BASIC.

Un programa está constituido por variables que contienen datos sobre los que setrabaja y por sentencias que operan sobre estos datos. Algunos aspectos a tener encuenta a la hora de escribir sentencias de programación en Visual Basic son:

a) Comentarios. En Visual Basic, todo lo contenido en una sentencia a la derechadel carácter comilla simple (`) en una línea es un comentario y no es tenido encuenta. Los comentarios son muy útiles para facilitar la comprensión del códigoutilizado sobre todo en proyectos complejos donde resulta imprescindibles pararevisiones posteriores del código.

b) Sentencias en más de una línea. En ocasiones las sentencias son complejas y esnecesario escribirlas en más de una línea para que entren en la pantalla, para ellohay que dejar un espacio en blanco al final de la línea y escribir el carácter guióninferior (_)

Ej.) lblEtiqueta.Caption = "Esta es una etiqueta de descripción de " _                                              "un ejemplo de una sentencia en dos líneas"

c) Varias Sentencias en una sola línea. Para escribir varias sentencias en una solalínea es necesario escribir dos puntos (:) entre sentencia y sentencia.

Ej.) a= 7: b= 87:

d) Variables y Tipos de Datos.

Los programas usan variables, para guardar valores temporalmente, así se puedeentender una variable como una entidad que permite almacenar valorestemporalmente durante la ejecución de una aplicación. Posee dos partes, un nombreo identificador y un valor que será su contenido.

Los tipos de datos básicos que se pueden almacenar en una variable son lossiguientes:

d.1) Tipos Numéricos

Se usan para representar cantidades numéricas enteras (integer y long) y decimales(single y double).

d.2) Tipo Byte.

Representa una cantidad entre 0 y 255 y se pueden hacer con el las mismasoperaciones que con los enteros, salvo la resta.

d.3) Tipo String

Descubre miles de cursos como éste en www.mailxmail.com 8

mailxmail - Cursos para compartir lo que sabes

Page 9: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Se usa para representar cadenas de caracteres 

d.4) Tipo Bolean.

Permite representar valores del tipo True/False.

d.5) Tipo Date.

Se usa para representar Fechas

d.6) Tipo Currency.

Es un formato de representación en coma fija, se usa para representar valoresdecimales que tengan a lo sumo 15 dígitos de parte entera y cuatro de parte decimal.

Descubre miles de cursos como éste en www.mailxmail.com 9

mailxmail - Cursos para compartir lo que sabes

Page 10: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

5. Sintaxis Visual Basic. Declaración y ámbito de lasvariables[http://www.mailxmail.com/...6-introduccion/sintaxis-visual-basic-declaracion-ambito-variables]

La siguiente tabla contiene una representación de distintos tipos de datos.

Declaración y ámbito de las variables.

Declarar una variable consiste en avisar al programa de la existencia de la misma,dándola un nombre y un tipo. La declaración de variables es aconsejable pero noobligatoria salvo que se fuerce a Visual Basic a declarar todas las variables mediantela sentencia Option Explicit al principio de cada módulo.

Las variables tienen un ámbito que delimita las partes del programa desde donde sepueden usar, así hay variables de tipo local y variables de tipo global.

Las variables locales son aquellas que están definidas dentro de un procedimiento ofunción y sólo son accesibles en ese procedimiento o función donde se definieron,así una variable local es reinicializada cada vez que se entra en el procedimiento.

Las variables de tipo global son aquellas que son accesibles desde cualquier partedel programa. Para hacer que una variable sea global, hay que declararla en la partegeneral de un módulo *.bas o de un formulario de la aplicación usando la palabra Public. Para acceder a las variables definidas como públicas en un formulario hayque especificar el formulario en el que fueron creadas pero si se definen en unmódulo no es necesario, basta con el nombre para hacer uso de ellas.

La declaración de variables se realiza de la siguiente forma:

{ Dim / Static / Private / Public ] nombreVariable as Tipo.

Ej:Dim Letra as StringStatic Permanente as Integer

Descubre miles de cursos como éste en www.mailxmail.com 10

mailxmail - Cursos para compartir lo que sabes

Page 11: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Static Permanente as IntegerPublic Valor as IntegerPrivate Logico as Boolean

Si se usa la declaración Static, entonces la variable conserva su valor mientras seestá ejecutando el resto del código. Por ejemplo, si en el evento click de un botónescribimos:

Private Sub Boton_Click()

Static AcumuladoAcumulado = Acumulado + 7MsgBox AcumuladoEnd Sub

Con el código del ejemplo anterior, en tiempo de ejecución al pulsar el botón porprimera vez aparece un mensaje con el valor 7, si se vuelve a pulsar el botón, elmensaje será 14, si se vuelve a pulsar será 21, y así se irá incrementando ensucesivas ocasiones que se pulse el botón, es decir, la variable declarada comoStatic va conservando su valor al entrar en el procedimiento sin inicializarlo a cerocomo ocurriría si se hubiese declarado con Dim en cuyo caso el mensaje seríasiempre 7.

Descubre miles de cursos como éste en www.mailxmail.com 11

mailxmail - Cursos para compartir lo que sabes

Page 12: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

6. Sintaxis Visual Basic. Declaración y ámbito de lasvariables. Operadores[http://www.mailxmail.com/...ion/sintaxis-visual-basic-declaracion-ambito-variables-operadores]

La siguiente tabla muestra para los distintos tipos de declaraciones, el lugar dondese realizan y la accesibilidad que producen. 

Si una variable se usa sin haberla declarado previamente, toma por defecto el tipoVariante que se adapta a la información o dato que se toma en cada momento, espues un tipo muy flexible pero su uso debe restringirse pues ocupa más memoria yrequieren más tiempo de CPU que el resto de variables. Recordemos no obstanteque se puede forzar a Visual Basic a declarar todas las variables usando la sentencia Option ExplicitOption Explicit.

Las restricciones para poner el nombre a una variable son las siguientes:

1.-Debe empezar por una letra2.-No puede tener más de 255 caracteres3.-El nombre debe ser único en su campo de visibilidad (procedimiento, módulo,etc.)4.- No puede ser una palabra reservada.

e) Operadores.

En la siguiente tabla se representan operadores soportados por Visual Basic, usadospara la realización de operaciones aritméticas, lógicas, relacionales, etc.

Descubre miles de cursos como éste en www.mailxmail.com 12

mailxmail - Cursos para compartir lo que sabes

Page 13: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Descubre miles de cursos como éste en www.mailxmail.com 13

mailxmail - Cursos para compartir lo que sabes

Page 14: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

7. Sentencias de control. Sentencia If, Then, Else, EndI f[http://www.mailxmail.com/...c-6-introduccion/sentencias-control-sentencia-if-then-else-end-if]

f) Sentencias de Control

Las sentencias o estructuras de control, permiten tomar decisiones y realizar unproceso en repetidas veces. Son las denominadas bifurcaciones y bucles. Estasestructuras son muy importantes puesto que son las encargadas de controlar el flujode un programa según los requerimientos del mismo. En Visual Basic se dispone delas siguientes:

f.1) Sentencia IF....THEN.....ELSE....END IF

Permite ejecutar condicionalmente una o más sentencias. Su representación es así:

En la representación anterior, si se cumple la primera condición, es decir condicion1= True, entonces el programa continua su ejecución por el Grupo1 de Sentencias, sino se cumple, pasa a evaluar condicion2, y si es cierta se ejecuta el Grupo 2 deSentencias y si es falsa evalúa condicion3 y así se continúa hasta el encontrar unElse If (puede haber tantos como se precisen) que contenga una condición verdaderapara ejecutar su grupo de sentencias. Si ninguna condición de las evaluadas escierta, se ejecuta el Grupo de Sentencias de la cláusula Else.

En esta sentencia de control las únicas cláusulas obligatorias son If Thenpudiéndose prescindir si es necesario de Else, Else If Then y End If 

Descubre miles de cursos como éste en www.mailxmail.com 14

mailxmail - Cursos para compartir lo que sabes

Page 15: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Descubre miles de cursos como éste en www.mailxmail.com 15

mailxmail - Cursos para compartir lo que sabes

Page 16: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

8. Sentencias SELECT CASE, FOR, NEXT[http://www.mailxmail.com/...curso-visual-basic-6-introduccion/sentencias-select-case-for-next]

f.2) Sentencia SELECT CASE: Permite ejecutar una de entre varias acciones enfunción del valor de una expresión. Su representación general es la siguiente:

En la representación anterior expresion es una expresión numérica o alfanumérica yetiqueta1, etiqueta2, etc., puede adoptar las formas siguientes:

1.- expresion, expresion,...., expresion (de 1 a n veces)2.- expresion To expresion3.- Is operador de relación expresion4.- combinación de las anteriores separadas por comas. 

En el siguiente ejemplo se muestra una sentencia Select Case en la que se usan lascuatro formas anteriores.

f.3) Sentencia FOR.....NEXT: La sentencia For da lugar a un bucle, y permite ejecutarun número de sentencias un cierto número de veces. Su forma general es:

Descubre miles de cursos como éste en www.mailxmail.com 16

mailxmail - Cursos para compartir lo que sabes

Page 17: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Este tipo de bucles se usan principalmente para recorrer un rango discreto devalores. Estos bucles son especialmente útiles para recorrer matrices. Elfuncionamiento es el siguiente: primero se asigna el valor de la expresion1 a lavariable y se comprueba si su valor es mayor o menor que expresion2. En caso deser menor se ejecutan las Sentencias y una vez ejecutadas la variable se incrementaen el valor de expresion3 o en 1 si no hay Step, volviéndose a efectuar lacomparación entre la variable y la expresion2 y así sucesivamente hasta que el valorde la variable es mayor que expresion2 y en ese caso se sale del bucle.

Todo lo anterior se produce en el caso de ser expresion3 un valor positivo, si fueranegativo las sentencias se ejecutan cuando el valor de la variable es mayor que el deexpresion2 y después de cada ejecución se decrementa su valor según loespecificado en expresion3.

Descubre miles de cursos como éste en www.mailxmail.com 17

mailxmail - Cursos para compartir lo que sabes

Page 18: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

9. Sentencia DO&WHILE... LOOP[http://www.mailxmail.com/curso-visual-basic-6-introduccion/sentencia-do-while-loop]

f.4) Sentencia DO...WHILE... LOOP

Este bucle repite la ejecución de un conjunto de sentencias mientras una condicióndada sea cierta La condicion puede ser evaluada antes o después de ejecutarse elconjunto de sentencias. Sus posibles formas son:

En esta primera forma si condición es True se ejecuta el grupo de sentencias y sesigue ejecutando hasta que condición sea False. La evaluación de la condición serealiza antes de ejecutar las sentencias, por tanto el rango posible de veces que seejecutan estas será de 0 a n, es decir, puede que el bucle no llegue a ejecutarsenunca.

En esta segunda forma, primero se ejecuta una vez el grupo de sentencias y luegose va evaluando condición, repitiéndose la ejecución de las sentencias mientras seaTrue, por tanto con esta forma el bucle al menos se ejecuta una vez, es decir surango será de 1 a n.

Descubre miles de cursos como éste en www.mailxmail.com 18

mailxmail - Cursos para compartir lo que sabes

Page 19: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Descubre miles de cursos como éste en www.mailxmail.com 19

mailxmail - Cursos para compartir lo que sabes

Page 20: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

10. Sentencia DO... UNTIL... LOOP[http://www.mailxmail.com/curso-visual-basic-6-introduccion/sentencia-do-unti l- loop]

f.5) Sentencia DO... UNTIL... LOOP

Repite la ejecución de un conjunto de sentencias hasta que una condición dada seacierta, es decir a diferencia de While, el bucle se repite mientras la condición seafalsa y se sale del mismo cuando es verdadera.

Tiene dos formas generales:

En esta primera forma si condición es False se ejecuta el grupo de sentencias y sesigue ejecutando hasta que condicion sea True. La evaluación de la condición serealiza antes de ejecutar las sentencias, por tanto el rango posible de veces que seejecutan estas será de 0 a n, es decir, puede que el bucle no llegue a ejecutarsenunca. 

En esta segunda forma, primero se ejecuta una vez el grupo de sentencias y luegose va evaluando condicion, repitiéndose la ejecución de las sentencias mientras seaFalse, por tanto con esta forma el bucle al menos se ejecuta una vez, es decir surango será de 1 a n.

Descubre miles de cursos como éste en www.mailxmail.com 20

mailxmail - Cursos para compartir lo que sabes

Page 21: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Nota. En los bucles For, Until, While es posible establecer una salida del bucle almargen de las dadas en las condiciones para recorrer el mismo, esto se hace con lasentencias Exit For, Exit Do.

Descubre miles de cursos como éste en www.mailxmail.com 21

mailxmail - Cursos para compartir lo que sabes

Page 22: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

11. Programas informáticos. Funciones[http://www.mailxmail.com/...urso-visual-basic-6-introduccion/programas-informaticos-funciones]

g) Funciones y Procedimientos.

Los programas informáticos suelen tener una gran cantidad de líneas de código (cientos eincluso miles), por ello a medida que aumentan su tamaño pueden convertirse en sistemaspoco manejables si no fuera por la modularización, que es un proceso consistente en dividirun programa muy grande en una serie de módulos mucho más pequeños y manejables, aestos módulos se les denomina en Visual Basic con el nombre de Procedimientos yFunciones.

Los Procedimientos y Funciones se usan para realizar tareas comunes múltiples veces sinnecesidad de tener que repetir código.

La diferencia fundamental entre ambos es que las funciones, al ser llamadas, ejecutan unaserie de sentencias y suelen devolver un valor de retorno, por tanto pueden ser usadas enuna expresión, mientras que los procedimientos realizan una tarea pero no devuelvenningún valor de retorno.

g.1) Funciones.

Tienen la siguiente forma general: 

NombreFuncion es el nombre de la función que se usa para invocarla, parametros son losargumentos de la función que se han de pasar cuando se invoca, se indica encerrado entrecorchetes [ ] puesto que es opcional, puede haber funciones con argumentos y otras sinargumentos.

As Tipo, es el valor que retorna la función, también es opcional puesto que hay funcionesque no devuelven ningún valor.

Dentro del grupo de sentencias que contiene la función puede existir una salida de lamisma mediante Exit Funcition.

También suele existir una asignación al nombre de la función de una expresión, y estaexpresión será el valor devuelto por la función.

La función anterior suma los parámetros a y b, así esta función puede ser llamada desdeotra parte del programa de la siguiente forma:

Dim Resultado as IntegerResultado = Suma (7,8)Msgbox Resultado

Una vez ejecutada estas sentencias saldrá por pantalla el valor 15. Se observa que lafunción retorna un valor y que se usa en una expresión, en la que ese valor de retorno se leasigna a la variable Resultado.

Descubre miles de cursos como éste en www.mailxmail.com 22

mailxmail - Cursos para compartir lo que sabes

Page 23: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Cuando se llama a una función, en principio, el número y los tipos de los argumentos de lallamada debe ser igual al número y los tipos de los parámetros de la función, en casocontrario se producirían errores de programa, así las siguientes llamadas a la función sumaserían erróneas.

Resultado = Suma ("Luis", "Pepe") `Da error puesto que los argumentos no son enteros

Resultado = Suma (7,8,15) `Da error puesto que el número de argumentos es incorrecto.

Descubre miles de cursos como éste en www.mailxmail.com 23

mailxmail - Cursos para compartir lo que sabes

Page 24: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

12. Programas informáticos. Procedimientos[http://www.mailxmail.com/...visual-basic-6-introduccion/programas-informaticos-procedimientos]

g.2) Procedimientos.

NombreProcedimiento es el nombre que se usa para invocarlo, parametros son losargumentos que se pasan al procedimiento y son opcionales, pudiendo no existir. Al igualque en el caso de las funciones, puede haber una sentencia dentro del cuerpo delprocedimiento que provoque la salida del mismo, que sería Exit Sub. A diferencia de unafunción, los procedimientos no pueden ser usados en una expresión puesto que nodevuelven ningún valor, simplemente realizan una tarea, así la forma de llamar unprocedimiento sería:

Para sacar por pantalla la raíz cuadrada de un número usando este procedimiento se puedehacer así:

Dim Valor as DoubleValor = 48Raizcuadrada Valor`El resultado obtenido es presentar un mensaje en pantalla con la raiz `cuadrada de 48. 

Si realizamos la llamada al procedimiento en una expresión, entonces da error. Lo siguientesería erróneo:

Dim Valor as DoubleDim Resultado as DoubleValor = 48Resultado = RaizCuadrada Valor `No se puede usar un procedimiento en una asignación. 

Visual Basic tiene definidas una serie de funciones que pueden resultar de utilidad, algunasde ellas se presentan en las tablas siguientes:

Tabla de Funciones para el manejo de caracteres.

Descubre miles de cursos como éste en www.mailxmail.com 24

mailxmail - Cursos para compartir lo que sabes

Page 25: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Tabla de Funciones matemáticas

Descubre miles de cursos como éste en www.mailxmail.com 25

mailxmail - Cursos para compartir lo que sabes

Page 26: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

13. Editor de menús en Visual Basic[http://www.mailxmail.com/curso-visual-basic-6-introduccion/editor-menus-visual-basic]

EDITOR DE MENUS EN VISUAL BASIC.

En Visual Basic podemos crear aplicaciones que estén gobernadas a través de unmenú, es decir, como los típicos programas del entorno Windows, para ello VisualBasic dispone del Editor de Menús. Para acceder al Editor de Menús debemos pulsaren `Herramientas > Editor de Menús´ o pulsar sobre el formulario el botón derechodel mouse y seleccionar la opción `Editor de Menús´, entonces se accede a uncuadro como el siguiente: 

Para ir añadiendo opciones al menú se va rellenando la caja de texto Caption en laque se indica el identificador con el que se verá la opción en la pantalla, también serellena la caja de texto Name en la que se indica el nombre que tiene la opción (queserá el que se usa para programar las acciones que ocurran al pulsar sobre ella, alser una opción de menú conviene que empiece por mnu seguido de mas letras, laprimera en mayúscula) y una vez hecho esto si se quiere añadir otra opción se pulsaen el botón `Siguiente´ y se procede de la misma forma y así sucesivamente.

Procediendo de la manera descrita anteriormente, se crearán menús simples, esdecir, que no tienen submenús asociados. Para crear submenús, simplemente seañaden, tal como se describe en el párrafo anterior, nuevas opciones y se sangranpulsando en la flecha derecha, así se indica a Visual Basic que el elemento es partede un submenú del elemento por encima de él. El número máximo de nivelespermitido es de cuatro. En ocasiones resulta conveniente separar dentro de unsubmenú distintas opciones del mismo, para ello se crea entre las opciones que sedesee separar, una nueva opción del submenú y en la propiedad Caption se escribeun guión y se le da cualquier nombre en Name, así se habrá generado la separaciónentre las opciones.

Dentro del cuadro de menú también se pueden marcar o desmarcar las opciones EnabledEnabled y Visible, lo que hará que la opción esté Activa y Visible si las opciones

Descubre miles de cursos como éste en www.mailxmail.com 26

mailxmail - Cursos para compartir lo que sabes

Page 27: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

están marcadas o Inactiva ó Invisible según la opción que esté desmarcada. Enprincipio el nombre Name, que se asigna a cada opción de menú debe ser el mismo,salvo en los casos en que se rellene la caja de texto Index, en ese caso dos opcionespueden tener la misma propiedad Name pero deben tener un valor distinto en Indexpara diferenciar una de otra. La propiedad Shorcut permite establecer unacombinación de teclas que al ser pulsadas acceden directamente a la opción delsubmenú sin necesidad de pulsar sobre él con el ratón.

Una vez que se ha diseñado el menú, hay que añadir el código necesario para querealice las tareas que se deseen. Los ítems (opciones) de los menús admiten sólo un eventoevento, el click que se produce cuando son seleccionados por medio del ratón o delteclado. Para añadir el código se selecciona en tiempo de diseño el ítemcorrespondiente y se abre la ventana de código que corresponde al evento click deesa opción de menú, procediendo en ese momento a programar en ella la tarea quese desea se realice cuando en tiempo de ejecución se seleccione esta opción.

La siguiente imagen muestra como quedaría el menú creado en el Editor de Menúsque se muestra en la imagen anterior.

Descubre miles de cursos como éste en www.mailxmail.com 27

mailxmail - Cursos para compartir lo que sabes

Page 28: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

14. Visual Basic. Manejo de errores (1/2)[http://www.mailxmail.com/...curso-visual-basic-6-introduccion/visual-basic-manejo-errores-1]

MANEJO DE ERRORES EN VISUAL BASIC.

En ocasiones cuando se ejecuta un programa suceden errores que en el caso de noser tratados adecuadamente pueden poner fin a la ejecución del mismo, lo cualresulta totalmente inadecuado, por ello en Visual Basic se puede tratar estos errorespara que en el caso de producirse se realice algún tipo de acción, como pudiera sersimplemente el lanzar un aviso por pantalla indicando el error que se ha producidopermitiendo que el programa continúe ejecutándose.

Cuando se realiza una aplicación pueden presentarse distintos tipos de errores,entre ellos: errores de sintaxis y errores de ejecución.

1 . -Los errores de sintaxis son el resultado de escribir incorrectamente unasentencia.

Si se producen estos errores la aplicación no se puede ejecutar pues el intérprete deVisual Basic no entiende ese trozo de programa, por ello se detectan en tiempo dediseño y se resuelven de forma sencilla pues se marcan automáticamente con uncolor distinto.

2 . -Los errores durante la ejecución ocurren cuando al ejecutar una aplicación unasentencia intenta una operación que es imposible de realizar (ej.: una división entrecero).

Estos errores terminan con la ejecución del programa si no son tratadosadecuadamente, y para manipularlos se dispone de la sentencia On Error.

Ej.: Tenemos una aplicación con tres cajas de texto, de nombre txtSumando0,txtSuamando1 y txtSuma y un botón llamado cmdSuma en el que programamos losiguiente:

Cuando se inicie la aplicación si en la primera caja de texto ponemos el número 5 yen la segunda el 6, entonces al pulsar el botón de suma en la tercera se rellenarácon el número 11 que es la suma de los dos anteriores. Ahora si lo que escribimoses por ejemplo "PEPE" en la primera caja de texto y 7 en la segunda, entonces se

Descubre miles de cursos como éste en www.mailxmail.com 28

mailxmail - Cursos para compartir lo que sabes

Page 29: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

es por ejemplo "PEPE" en la primera caja de texto y 7 en la segunda, entonces seproducirá un error que de no ser tratado nos echa de la aplicación, concretamenteel mensaje antes de terminar con la ejecución será el que se ve en la siguienteimagen:

Nota: Completamos esta explicación en el siguiente capítulo.

Descubre miles de cursos como éste en www.mailxmail.com 29

mailxmail - Cursos para compartir lo que sabes

Page 30: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

15. Visual Basic. Manejo de errores (2/2)[http://www.mailxmail.com/...curso-visual-basic-6-introduccion/visual-basic-manejo-errores-2]

Ahora bien, si al principio del procedimiento del botón se hubiese usado lasentencia On Error se podría continuar con la ejecución del programa, quedando laprogramación de una forma parecida a lo siguiente:

La primera sentencia del procedimiento anterior On Error Goto Indice, le estáindicando al programa que en el caso de encontrarse algún error de ejecución, elque sea, se vaya a la etiqueta marcada con el nombre Indice: y ejecute las sentenciasque contiene.

En este caso la etiqueta marcada con el nombre Indice la hemos situado al final delprocedimiento y después del nombre se ponen dos puntos (:) para indicar que setrata de una etiqueta. La programación que se ha escrito es en este caso muysimple, y lo que hace es detectar que si el número del error (los errores en VisualBasic tienen asociado un número) es distinto de cero (si el número de error es ceroeso indica que no hay error), es decir, si se ha producido un error lance un mensajepor pantalla con la indicación del número de error cometido y la descripción queVisual Basic hace del mismo, y una vez visto el mensaje se continua con laaplicación, es decir no nos saca del programa. El mensaje que se visualiza es el quese muestra en la imagen siguiente:

En el caso anterior al detectar el error, sólo se describe el mismo y se continua con

Descubre miles de cursos como éste en www.mailxmail.com 30

mailxmail - Cursos para compartir lo que sabes

Page 31: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

la aplicación, porque así se programó en la etiqueta Indice, ahora bien podríanhaberse especificado otras sentencias dentro de la etiqueta que tratasen el error deotra manera, por ejemplo devolviendo el control del programa a una sentenciadeterminada, para ello se usa la función Resume.

Descubre miles de cursos como éste en www.mailxmail.com 31

mailxmail - Cursos para compartir lo que sabes

Page 32: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

16. Visual Basic. Acceso a base de datos. Control data[http://www.mailxmail.com/...-basic-6-introduccion/visual-basic-acceso-base-datos-control-data]

ACCESO A BASES DE DATOS.

Visual Basic proporciona los elementos necesarios para la construcción de aplicaciones quese dediquen a gestionar bases de datos.

EL CONTROL DATA. El control Data puede tomarse directamente de la caja de controles iniciales que

proporciona Visual Basic  y su representación en el formulario es la siguiente:

Este control nos permite acceder a distintos tipos de bases de datos (Access, dBase,Paradox, etc.).

Las propiedades más importantes del control data a las que se accede seleccionando elcontrol y pulsando la tecla de función F4 son:

1.- Connect: Se indica el tipo de base de datos con la que se va a trabajar, en nuestro casousaremos Access.

2.- DataBaseName: Se especifica el lugar y el nombre de la base de datos a la que se quiereacceder. Ej.: C:\VB6\Biblio.mdb

3.- DataSource: Indica el conjunto de registros (tabla, consulta o instrucción SQL) con la quese va a trabajar.

Una vez establecidas estas tres propiedades del control data (el tipo de base de datos, labase de datos, y el conjunto de registros -tabla, consulta o instrucción SQL-) ya podemosacceder a los datos contenidos en los campos de esos registros para trabajar con ellos.

Para hacer referencia al conjunto de registros con los que vamos a trabajar se escribe elnombre del control data seguido de un punto (.) y de la palabra reservada Recordset.

A continuación toda la teoría de acceso a datos se irá presentando a la vez que seindican los pasos para crear un Ejemplo con control Data que permita entre otrascosas las siguientes: Presentación en pantalla del contenido de una tabla de una basede datos Access y creación de controles que nos permitan manipular la misma,moviéndonos a través de los registros, eliminando unos, añadiendo otros nuevos,buscando los que cumplan determinadas condiciones, etc., etc....

Descubre miles de cursos como éste en www.mailxmail.com 32

mailxmail - Cursos para compartir lo que sabes

Page 33: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

17. Crear un control data (1/6)[http://www.mailxmail.com/curso-visual-basic-6-introduccion/crear-control-data-1]

Creamos un control data con los siguientes valores:

Name: datVisitasCaption: PersonalDatabaseName : C: \Curso\Visitas.mdbDataSource: Personal

Hemos creado el control data datVisitas para acceder a una base de datos ubicadaen el directorio Curso cuyo nombre es Visitas.mdb y que tiene una tabla llamadaPesonal a la que accedemos con el control data recién creado.

La tabla Personal tiene los siguientes campos: Nif, Nombre, Apellido1, Apellido2,Dirección, Cpostal, Municipio, Provincia.

Ahora para referirnos a un campo concreto del conjunto de registros Recordset alque se tiene acceso se haría así:

datVisitas.Recordset!NifdatVisitas.Recordset!NombredatVisitas.Recordset!Apellido1datVisitas.Recordset!Apellido2............

Para poder seleccionar el registro de la tabla al que queremos acceder se usan losmétodos MoveFirst, MoveLast, MoveNext, MovePrevious.

datVisitas.Recordset.Movefirst > Nos situamos en el primer registro de la tabladatVisitas.RecordsetMovelast > Nos situamos en el último registro de la tabladatVisitas.RecordsetMoveNext > Nos situamos en el siguiente registro de la tabladatVisitas.Recordset.MovePrevious > Nos situamos en el registro anterior.

Para presentar en pantalla el contenido de un registro concreto de la tabla Personaly poder movernos por el resto desde el primero hasta el último y hacia delante yhacia atrás se puede hacer así:

Se crea una caja de texto con las siguientes propiedades:

Name: txtPersonalText: `Se borra el contenido, se deja en blanco´DataSource: datVisitasDataField: Nif 

Con la propiedad DataSource de la caja de texto se vincula la misma a un controlData, en este caso con datVisitas que es el que se está usando.

Con la propiedad DataField la caja de texto queda vinculada al campo que se

Descubre miles de cursos como éste en www.mailxmail.com 33

mailxmail - Cursos para compartir lo que sabes

Page 34: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

especifique del conjunto de registros a los que se accede con el control Data, eneste caso el campo Nif de la tabla Personal, que es la tabla a la que se accede condatVisitas.

Descubre miles de cursos como éste en www.mailxmail.com 34

mailxmail - Cursos para compartir lo que sabes

Page 35: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

18. Crear un control data (2/6)[http://www.mailxmail.com/curso-visual-basic-6-introduccion/crear-control-data-2]

Una vez realizado lo anterior (capítulo precedente) se pulsa en el botón derecho delmouse sobre la caja de texto recién creada, eligiendo la opción Copiar dentro delmenú que se depliega en ese momento, y se vuelve a pulsar el botón derecho delmouse eligiendo en esta ocasión la opción Pegar, en ese momento Visual Basic lanzaun mensaje indicando que ya existe un control igual al que vamos a agregar ypregunta si se desea crear una matriz de controles, si elegimos la opción NO,entonces se crea un control Text igual al anterior en todas sus propiedades salvo enel nombre, pero si se elige SI se crea un control igual incluso en el nombre pero conuna propiedad Index distinta para diferenciar uno de otro, en este caso convendríaelegir SI y el resultado es que la caja de texto nueva se llamará txtPersonal(1), suvalor Index es 1, y la que ya teníamos creada pasará a nombrarse comotxtPersonal(0), su valor Index es 0.

Volvemos a desplegar el menú con el botón derecho del mouse tantas veces comosea necesario para seleccionar la opción Pegar y crear tantas cajas de texto comocampos tienen los registros de la tabla Personal, en este caso 8, es decir se crearádesde txtPersonal(0) hasta txtPersonal(7). En este momento se tienen los ochocontroles necesarios para presentar en pantalla el valor de cada uno de los campos,sin embargo todas las cajas de texto estarían vinculadas al mismo campo,concretamente Nif, por ello en cada una se cambia la propiedad DataField paraasociar cada una a un campo distinto, quedando así:

TxtPersonal(0) > DataField: NifTxtPersonal(1) > DataField: NombreTxtPersonal(2) > DataField: Apellido1TxtPersonal(3) > DataField: Apellido2TxtPersonal(4) > DataField: DirecciónTxtPersonal(5) > DataField: CPostalTxtPersonal(6) > DataField: MunicipioTxtPersonal(7) > DataField: Provincia

Una vez hecho esto creamos cuatro botones con las siguientes propiedades:

Primer botón:Name: cmdPrimeroCaption: Primer Registro

Segundo botón:Name: cmdSiguienteCaption: Siguiente Registro

Tercer botón:Name: cmdAnteriorCaption: Registro Anterior

Cuarto botón:Name: cmdUltimo

Descubre miles de cursos como éste en www.mailxmail.com 35

mailxmail - Cursos para compartir lo que sabes

Page 36: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Caption: Último Registro

Una vez creados estos botones los programamos para que al pulsar sobre ellos seacceda al primer registro, al siguiente, al anterior y al último, esto se haría así:

Delante de cada caja de texto se crearía una etiqueta en la que se escribe el nombredel campo cuyo contenido se muestra.

Descubre miles de cursos como éste en www.mailxmail.com 36

mailxmail - Cursos para compartir lo que sabes

Page 37: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

19. Crear un control data (3/6)[http://www.mailxmail.com/curso-visual-basic-6-introduccion/crear-control-data-3]

Con lo anterior (capítulo precedente) al ejecutar el programa se tendría unaaplicación que accede a los registros de una tabla de una base de datos y permitemoverse por ellos del primero al último, hacia delante y hacia atrás usando losbotones recién creados y también mediante el control Data de nombre datVisitas.Para moverse en la tabla igual que se hace con los botones se puede usardirectamente el control Data tal como se indica en la siguiente imagen:

La apariencia que podría tener el programa anterior sería algo así: 

Cuando se está recorriendo un conjunto de registros, un Recordset es interesantedetectar los momentos en los que se llega al principio o al final del conjunto,concretamente, en el caso anterior si estamos en el último registro no tendríasentido el pulsar en el botón de `Siguiente Registro´ o si estamos en el primerohacerlo en el botón de `Registro Anterior´. La marca que indica si estamos en elprimer registro del Recordset es BOF y la que indica que hemos llegado al último es EOF.

En el ejemplo actual sería conveniente tener en cuenta la situación del registro queestamos visualizando en los casos de ser el primero o el último, lo cual afecta a losbotones cmdSiguiente y cmdAnterior, que cambiarían su programación quedando dela siguiente forma:

La explicación a este cambio de programación del botón es: La tabla de datos enAccess reserva un registro para indicar que se está al final del fichero, este registro

Descubre miles de cursos como éste en www.mailxmail.com 37

mailxmail - Cursos para compartir lo que sabes

Page 38: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Access reserva un registro para indicar que se está al final del fichero, este registroes posterior al último que a nuestros efectos sería válido, por tanto si estamos en elúltimo registro válido y nos movemos hacia delante accedemos al registro quecontiene la marca EOF de final de fichero lo cual no tendría sentido, por tanto enese caso nos situamos en el último registro válido que es donde estábamos antes demover hacia delante, para hacerlo se usa el método MoveLast y luego se indica porpantalla.

La explicación a este cambio de programación del botón es: La tabla de datos enAccess reserva un registro para indicar que se está al inicio del fichero, este registroes anterior al primero que a nuestros efectos sería válido, por tanto si estamos en elprimer registro válido y nos movemos hacia atrás accedemos al registro quecontiene la marca BOF de principio de fichero lo cual no tendría sentido, por tantoen ese caso nos situamos en el primer registro válido que es donde estábamos antesde mover hacia atrás, para hacerlo se usa el método MoveFirst y luego se indica porpantalla.

Descubre miles de cursos como éste en www.mailxmail.com 38

mailxmail - Cursos para compartir lo que sabes

Page 39: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

20. Crear un control data (4/6)[http://www.mailxmail.com/curso-visual-basic-6-introduccion/crear-control-data-4]

Creemos dos nuevos botones que al pulsarlos nos permitan añadir y eliminarregistros de la tabla de datos, para ello se usan los métodos AddNew que añade unnuevo registro y el método Delete que borra el registro actual. Las propiedades deestos dos nuevos botones serán:

Botón para añadir registros:Caption: Añadir RegistroName: cmdAñade

Botón para eliminar registros:Caption: Eliminar RegistroName: cmdElimina

La programación de estos botones será: 

Al pulsar en el botón cmdAñade, se vacían todas las cajas de texto y habrá queescribir en ellas los valores correspondientes al nuevo registro que vamos a añadir ala tabla de datos, sólo cuando se escriba en alguna de las cajas de texto se realizaefectivamente la adición del nuevo registro.

Al pulsar el botón cmdElimina, el registro actual, el que se está viendo en esemomento en pantalla es borrado de la tabla de datos mediante el método Delete,pero además se pone la sentencia datVisitas.Refresh para que refresque elconjunto de datos, y por ello, como estábamos situados en un registro y este ya noexiste nos situamos en el primero. Si se van eliminando registros y llega unmomento que no hay ninguno, entonces al pulsar en este botón no puede procedera la eliminación del registro produciéndose un error que finalizaría la ejecución de laaplicación, para evitar lo anterior se usa la sentencia On Error que permite manejar elerror que se produce, que en este caso es el que tiene como número el 3021. Unaforma posible como quedaría la programación de este botón sería ahora:

Descubre miles de cursos como éste en www.mailxmail.com 39

mailxmail - Cursos para compartir lo que sabes

Page 40: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Al producirse un error, el control del programa pasa a las sentencias de la etiquetaIndice, en ese momento si detecta que el error es el 3021, es decir se estáintentando borrar un registro y no hay nada que borrar, entonces saca un mensajepor pantalla indicando que la tabla `Personal´ está vacía, además hace referencia ala tabla por su nombre porque se lo hemos indicado con datVisitas.Recordset.NamedatVisitas.Recordset.Name. El mensaje sería como el de la imagen siguiente:

Descubre miles de cursos como éste en www.mailxmail.com 40

mailxmail - Cursos para compartir lo que sabes

Page 41: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

21. Crear un control data (5/6)[http://www.mailxmail.com/curso-visual-basic-6-introduccion/crear-control-data-5]

Tipos de Recordset.

Hasta este momento hemos establecido las propiedades Name, Caption,DatabaseName y RecordSource de un control Data que ha accedido a una tabla deuna base de datos; en este momento establecemos una nueva propiedad que esRecordsetType que indica el tipo de objeto Recordset que se va a crear y quepuede ser uno de los tres siguientes:

0- Table1- Dynaset2- Snapshot

La pantalla de propiedades del control data para seleccionar el tipo de Recordsetsería como la siguiente imagen:

Cuando se crea un control Data, Visual Basic ofrece por defecto el tipo Dynaset. 

En función del tipo de Recordset elegido la forma de tratar los datos (buscar,moverse, etc.) se hace de distinta forma. Las características más importantes de lostres tipos son las siguientes:

0- Table: Con este tipo de Recordset sólo podemos acceder a una tabla existente en la basede datos, pero NO a una consulta. Los Table son los únicos tipos que soportaníndices, es decir, se puede indicar el índice de la tabla que vamos a usar y lograr conello rápidas búsquedas de registros. Cuando se cambian datos, estos estándisponibles para otros usuarios de forma automática.

1- Dynaset: Conjunto dinámico de registros de una o varias tablas o de una o varias consultasexistentes en la base de datos. Una ventaja de Dynaset frente a Table es quepodemos crear un conjunto de datos de varias tablas o consultas y no de una única

Descubre miles de cursos como éste en www.mailxmail.com 41

mailxmail - Cursos para compartir lo que sabes

Page 42: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

tabla tal como ocurre con el tipo Table. Una desventaja es que no se pueden usaríndices para las búsquedas.

2- Snapshot: Conjunto estático de registros de una o varias tablas o de una o varias consultasexistentes en la base de datos. La principal diferencia con Dynaset es que nopermite actualizaciones, por ello suele usarse para hacer listados o visualizarinformación en la que los datos no serán modificados.

Una vez conocidos los distintos tipos de Recordset que se pueden usar y lascaracterísticas principales de los mismos, añadiremos dos nuevos botones alejemplo que estamos desarrollando, uno para realizar búsquedas y otro paraefectuar modificaciones de datos.

Botón para realizar búsquedas:Caption: BuscarName: cmdBuscar

El botón recién creado se usará para acceder a registros que cumplan una serie decondiciones. En este momento hay que decidir el tipo de objeto Recordset que se vaa usar para efectuar las búsquedas. Elegimos el tipo Table, ya que estamostrabajando únicamente sobre una tabla de una base de datos, por tanto se estableceen el control Data datVisitas la propiedad 0-Table en RecordsetType.

Descubre miles de cursos como éste en www.mailxmail.com 42

mailxmail - Cursos para compartir lo que sabes

Page 43: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

22. Crear un control data (6/6)[http://www.mailxmail.com/curso-visual-basic-6-introduccion/crear-control-data-6]

El tipo Table es el único que permite usar los índices de una tabla de una base dedatos para realizar las búsquedas, en este caso, usaremos el índice NIF establecidopreviamente en la tabla personal que nos permitirá buscar los registros con un NIFdeterminado. Para realizar estas búsquedas se usan los métodos Index y Seek, elprimero para indicar el índice que se va a usar y el segundo para establecer el valorque se va a buscar en el campo afectado por el índice indicado. Las sentenciasquedarían así:

`Para indicar que vamos a usar el indice NIFdatVisitas.Recordset.Index = "NIF"

`Para buscar un NIF concreto, por ejemplo el "02154879L"datVisitas.Recordset.SeeK "=", "02154879L"

Si las dos sentencias anteriores se ponen en la línea de código del botón cmdBuscar,entonces se buscaría de manera rápida el primer registro cuyo NIF es el"02154879L", y los datos del mismo son los que se presentarían en pantalla, ahorabien, si no hay ningún registro entonces se produciría un error. Para evitar que elerror producido al no encontrar el NIF buscado termine la ejecución de la aplicaciónse puede controlar con el método NoMatch, que indica que no se ha encontrado elregistro buscado. Añadiríamos la siguiente sentencia al botón:

Con esto se indica que en el caso de no encontrar el registro, saque un mensaje porpantalla indicándolo y se sitúe en el primer registro, así no saltará el error. Tal comoquedaría la programación del botón cmdBuscar, sólo se podría realizar la búsquedade un determinado NIF, lo cual no resultaría muy útil, para evitar esta situación hayque crear un mecanismo de entrada de datos que permita al usuario indicar en cadamomento el NIF a buscar, para esto se puede crear una nueva caja de texto quepodemos llamar txtBusqueda en la que especificar el NIF que se quiere encontrar,entonces la programación del botón de búsqueda quedaría así:

En la programación del botón, ahora no se indica que busque un NIF concreto y

Descubre miles de cursos como éste en www.mailxmail.com 43

mailxmail - Cursos para compartir lo que sabes

Page 44: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

siempre el mismo, sino que lo que busca es lo que se escriba en la nueva caja detexto txtBusqueda. En este momento se puede buscar cualquier NIF usando elíndice NIF, pero puede que en la tabla haya más índices que pueden ser usados pararealizar búsquedas, ya que puede interesar buscar por municipio, provincia,nombre, etc... Supongamos que en la tabla Personal hay un índice por cada campoque tiene el mismo nombre que ese campo, es decir tendríamos los siguientesíndices: Nif, Nombre, Apellido1, Apellido2, Direccion, Municipio, Localidad y Provincia.

Por tanto podemos usar esos índices para buscar en los distintos campos de la tablade datos, para ello habría que indicar al botón de búsqueda cmdBuscar, ya no sólola cadena que se desea encontrar sino el índice que hay que utilizar, para conseguiresto creamos una nueva entrada de datos en la que se especifique ese índice, estose puede hacer creando otra caja de texto que llamaremos txtIndice en la queespecificaremos el índice deseado. Una vez hecho esto, la programación del botónde búsqueda cambiaría nuevamente para quedar de la siguiente forma:

En este momento las búsquedas son mucho más dinámicas puesto que podemosseleccionar distintos índices y distintos valores para realizarlas. Con esta forma debuscar se accede al primer registro que cumpla la condición especificada, y losregistros quedan ordenados según el índice usado. Convendría en el botón anteriorusar también una sentencia On Error para controlar los distintos errores que sepudieran producir, como el que ocurriría si en txtIndice se indica un nombre deíndice distinto a los que tiene la tabla de datos.

Descubre miles de cursos como éste en www.mailxmail.com 44

mailxmail - Cursos para compartir lo que sabes

Page 45: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

23. Crear un control data. Botón de modificaciones (1/4)[http://www.mailxmail.com/...al-basic-6-introduccion/crear-control-data-boton-modificaciones-1]

Hasta aquí se ha diseñado un programa que permite acceder a una tabla de una base dedatos, editar sus registros, moverse a través de ellos, eliminarlos, añadir otros nuevos,realizar búsquedas y modificarlos. La última tarea, la de modificación de registros se realizasin más que escribir en la caja de texto correspondiente el valor de modificación, sinembargo esta no es una buena manera de realizar los cambios, es preferible y más segurotener un botón que nos permita confirmar o rechazar los cambios que hemos ido realizandoal escribir nuevos valores en la caja de texto, esto implica no obstante, una visión distintadel ejercicio que venimos realizando y que afectará en alguna medida a casi todos losbotones programados en el mismo. Los cambios a realizar antes de crear el botón que seencargue de las modificaciones son:

1°) . - En el diseño actual del ejercicio las cajas de texto txtPersonal(0),txtPersonal(1),....,txtPersonal(7), estaban vinculadas al control datVisitas a través de lapropiedad DataSource y de DataField para así descargar en las cajas de texto de maneraautomática los campos de la tabla de datos, sin embargo en la nueva orientación delejercicio esto no es adecuado, por ello se vacían de contenido las propiedades DataSource yDataField de todas las cajas de texto.

2°) . - Como ya no se descargan automáticamente los datos en las cajas de texto debido alcambio producido en el punto 1°, entonces hay que realizar la descarga de otra manera,esto lo haremos mediante un procedimiento que asigne a cada caja de texto el valorcorrespondiente del campo al que representa en el registro actual, de esta manera, alescribir en la caja de texto no se modifica directamente en la tabla de datos, dejando estatarea al nuevo botón que crearemos para las modificaciones. El procedimiento se puedeestablecer en un modulo o en el Formulario y lo llamaremos siempre que se necesite.Podríamos crearlo en el Formulario así:

Este procedimiento descarga el valor de cada campo en una caja de texto. Lo mismo sepodría escribir de una forma más sencilla, ya que el valor Index que identifica las distintascajas de texto se corresponde con el lugar que ocupan los campos en la tabla de datos, asíaprovechando esta circunstancia, el procedimiento quedaría así:

En esta nueva forma de escribir el procedimiento hemos usado el bucle For para recorrer loscampos de la base de datos y las cajas de texto e ir haciendo la descarga. En ocasiones loscampos de las tablas de datos contienen valores Nulos, en ese caso cuando se va a

Descubre miles de cursos como éste en www.mailxmail.com 45

mailxmail - Cursos para compartir lo que sabes

Page 46: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

descargar un valor Null en una caja de texto se produce un error, por ello, afinando más laforma anterior del procedimiento, este quedaría así:

En esta nueva forma, antes de realizar la descarga se comprueba si el valor es distinto de Null y en solo en ese caso se realiza no haciendo nada en caso contrario. Para detectar si uncampo contiene un valor Null se usa el método IsNull.

Descubre miles de cursos como éste en www.mailxmail.com 46

mailxmail - Cursos para compartir lo que sabes

Page 47: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

24. Crear un control data. Botón de modificaciones (2/4)[http://www.mailxmail.com/...al-basic-6-introduccion/crear-control-data-boton-modificaciones-2]

3°) . - En los botones para situarnos en el primer registro, en el siguiente al activo, en elanterior, en el último y en el de realizar las búsquedas, debemos incluir en sus códigos deprogramación una llamada al procedimiento Edición recién creado puesto que las cajas detexto ya no se actualizan por si solas, así esos botones no sólo nos deben situar en elregistro correspondiente de la tabla de datos, sino que además deben editarlo para que elusuario lo vea en pantalla y sepa donde está situado. Los códigos de programación de estosbotones quedarían así:

Descubre miles de cursos como éste en www.mailxmail.com 47

mailxmail - Cursos para compartir lo que sabes

Page 48: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

En la programación de estos botones, en algunos se ha usado On Error para detectar ycontrolar errores y en otros no, convendría no obstante incluir el controlador de errores entodos ellos.

Descubre miles de cursos como éste en www.mailxmail.com 48

mailxmail - Cursos para compartir lo que sabes

Page 49: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

25. Crear un control data. Botón de modificaciones (3/4)[http://www.mailxmail.com/...al-basic-6-introduccion/crear-control-data-boton-modificaciones-3]

4°) . - Para modificar el contenido de los registros se crea un nuevo botón que llamamoscmdModificar.

En genereal, para modificar un registro hay que indicar los valores que toman los camposque queremos modificar en ese registro, por ejemplo si se quiere cambiar el valor delcampo Nombre de un registro hay que indicar el nuevo valor que este campo va a tener, porejemplo "Antonio", esto se hace así:

datVisitas.Recordset!Nombre = "Antonio"

Además es necesario que las sentencias en las que se indican los valores nuevos que tomanlos campos se encierren entre los métodos Edit y Update, así para que la asignación de lacadena de caracteres "Antonio" se efectuase correctamente, no bastaría con la sentenciaanterior, sino que quedaría de la siguiente forma:

datVisitas.Recordset.EditdatVisitas.Recordset!Nombre = "Antonio"datVisitas.Recordset.Update

Para modificar más de un campo, se indican todas las sentencias de modificación entre Edity Update.

datVisitas.Recordset.EditdatVisitas.Recordset!Nombre = "Antonio"datVisitas.Recordset!Nif = "08369548K"datVisitas.Recordset!Apellido1 = "Sánchez"datVisitas.Recordset!Municipio = "Sevilla"datVisitas.Recordset.Update

En el caso del botón cmdModificar, cuando se pulse se modifica el registro actual de latabla de datos con lo escrito en ese momento en las cajas de texto, es decir, ahora ya nobasta con escribir un nuevo valor en una caja de texto para actualizar los datos de la tablasino que hay que pulsar en cmdModificar.

El código de este botón quedaría así:

Al pulsar este botón se actualizan los valores de la tabla de datos, para ello hemos usado el

Descubre miles de cursos como éste en www.mailxmail.com 49

mailxmail - Cursos para compartir lo que sabes

Page 50: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

método Edit y Update entre los cuales hay que indicar las modificaciones de campos paraque estas tengan efecto.

Descubre miles de cursos como éste en www.mailxmail.com 50

mailxmail - Cursos para compartir lo que sabes

Page 51: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

26. Crear un control data. Botón de modificaciones (4/4)[http://www.mailxmail.com/...al-basic-6-introduccion/crear-control-data-boton-modificaciones-4]

5°) . - En el botón para añadir registros los cambios a realizar no son tan pequeños como enlos anteriores, esta acción cambia de forma sustancial. Al pulsar este botón lo primero quese debe hacer es vaciar todas las cajas de texto en las que se indicarán los valores de loscampos del nuevo registro, y una vez hecho esto habrá de procederse a añadirlo realmente,por ello creamos otro botón que se hace visible al pulsar el primero y que lo llamaremoscmdConfirmarAñadir.

La programación del primer botón para añadir registros quedaría así:

En el código anterior se usa el bucle For para ir recorriendo todas las cajas de texto yvaciarlas y una vez hecho esto se hace visible el nuevo botón creado para confirmar que seañade el registro.

En este momento se rellenan los campos del nuevo registro que se quiere crear y al terminarse pulsa en el botón de confirmación para hacer efectiva la adicción del nuevo registro. Elcódigo de programa del botón de confirmar quedaría así:

En este control se vuelve a usar el bucle For para ir añadiendo a cada campo lo indicado enlas cajas de texto y este bucle está contenido entre los métodos AddNew y Updatenecesarios para que el proceso funcione de manera correcta.

Una vez añadido el registro el propio botón de confirmación se autoesconde.

Descubre miles de cursos como éste en www.mailxmail.com 51

mailxmail - Cursos para compartir lo que sabes

Page 52: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

27. Crear un control data. Control Dbgrid (1/3)[http://www.mailxmail.com/...o-visual-basic-6-introduccion/crear-control-data-control-dbgrid-1]

Con todo lo anterior hemos desarrollado un ejercicio de dos formas distintas, la segundamejor que la primera que nos permite acceder y manipular el contenido de una base dedatos. Hasta aquí, siempre se ha accedido a los registros uno a uno, pero además existe laposibilidad de visualizar el contendido total de la tabla de datos, para ello se puede usar elcontrol Dbgrid. Este control no está disponible por defecto en Visual Basic, sino que hay queagregarlo al proyecto, para ello se accede a la opción de menú `Proyecto > Componentes´y se obtiene el siguiente cuadro:

En el cuadro anterior se pulsa en el botón Examinar y se busca el archivo dbgrid32.ocx conlo que se dispondrá de una nueva opción dentro del cuadro, que hay que seleccionar y quees la siguiente:

Una vez seleccionada esta, se dispone en el cuadro de controles del proyecto de un nuevo

elemento  para crear controles Dbgrid en los formularios. El control Dbgrid presenta elcontenido del control Data al que está asociado lo que se determina en la propiedadDataSource del Dbgrid.

En el proyecto que se está desarrollando podemos crear un control Dbgrid al que llamamosdbDatVisitas y se asocia al control Data datVisitas, con ello se visualiza en el control reciéncreado la tabla de datos Personal con todos sus campos. Si se quiere ver sólo alguno de loscampos de la tabla de datos o se quiere cambiar la posición en que se visualizan, entonces,en tiempo de diseño se pulsa en el botón derecho del ratón sobre el control y seleccionando`Propiedades´ accedemos a un cuadro para personalizar el aspecto del control dbgrid,como el de la siguiente imagen:

Descubre miles de cursos como éste en www.mailxmail.com 52

mailxmail - Cursos para compartir lo que sabes

Page 53: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

El aspecto de un control dbgrid presentando los datos del control Data al que está asociadoserá como el que sigue:

Si se desea que No se puedan cambiar los datos de los campos directamente, es necesarioponer la propiedad AllowUpdate a False.

Descubre miles de cursos como éste en www.mailxmail.com 53

mailxmail - Cursos para compartir lo que sabes

Page 54: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

28. Crear un control data. Control Dbgrid (2/3)[http://www.mailxmail.com/...o-visual-basic-6-introduccion/crear-control-data-control-dbgrid-2]

Después de tener una forma de acceder a la visualización de todos los datos de la tabla através de dbDatVisitas y otra para acceder a uno en concreto con las cajas de texto ybotones diseñados anteriormente, una forma de situarse en un registro en particular, apartede usando en botón cmdBuscar, sería accediendo a la totalidad de los registros a través dedbDatVisitas y una vez situados en el que se desee haciendo doble click sobre él presentartodas las cajas de texto y botones ya diseñadas y con los datos del registro seleccionado,para hacer esto, en primer lugar convendría colocar en un contenedor, por ejemplo uncontrol frame las cajas de texto y botones para visualización de registros, este framediseñarle con la propiedad Visible a False y cuando se hace el doble click en en dbgrid sehace visible el frame e invisible el dbgrid.

Lo hacemos así: Creamos un control llamado fraData con la propiedad Visible a False,dentro del cual pegamos las etiquetas, botones, cajas de texto, etc., usadas para lavisualización de los registros.

El evento Dbclick del control dbDatVisitas queda con el siguiente código: 

Con esto, al hacer doble click en tiempo de ejecución sobre dbDatVisitas, en primer lugarse hace una llamada al procedimiento `Edicion´ que edita en las cajas de texto los valoresde los campos del registro en el que estemos situados, que será aquél sobre el que se hizoel doble click, y luego se hace Visible el control fraData y se esconde dbDatVisitas parasituarnos en la pantalla de edición del registro.

Toda la ejecución del ejercicio se ha realizado hasta ahora a partir de un control Data con lapropiedad RecordsetType a Table, y accediendo a una tabla ya creada dentro de una basede datos. Ahora vamos a usar un nuevo control Data con la propiedad RecordsetType enDynaset para acceder ya no a una tabla sino a una `consulta´ de una tabla.

En la base de datos Visitas.mdb, además de la tabla de Personal, hay otra tabla llamadaVisitas. Supongamos que esta base de datos se está usando para llevar el control de laspersonas que visitan un museo, dando de alta en la tabla Personal a los nuevos visitantes yen la tabla Visitas las veces que cada visitante accede al museo, así las tablas estaránrelacionadas por un campo común, el Nif, de esta forma cuando un visitante llega al museose teclea su Nif, accediendo a sus datos personales en caso de haber realizado alguna visitaanterior y dando de alta los datos de la nueva visitas. Si por el contrario es la primera visitarealizada entonces hay que dar de alta tanto los datos personales como los de la visita. Nopodrá añadirse ningún registro a la tabla Visitas con un determinado Nif, mientras este Nifno esté dado de alta en la tabla Personal.

Los campos de la tabla Visitas, serán: Nif, PrecioVisita, DuraciónVisita, FechaVisita,TipoDiaVisita.

Para completar el ejercicio añadiremos dos controles Data nuevos y dos nuevos botones,para acceder a la tabla Visitas y dar de alta las nuevas visitas que se vayan produciendo ypara acceder a una consulta de las tabla Visitas en la que estén sólo las realizadas por undeterminado Nif.

Descubre miles de cursos como éste en www.mailxmail.com 54

mailxmail - Cursos para compartir lo que sabes

Page 55: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

determinado Nif.

Los dos nuevos botones se crean dentro del control fraData, y tendrán las siguientespropiedades:

Botón para alta de visitas:Caption: Nueva VisitaName: cmdNuevaVisita

Botón para consultar visitas:Caption: Consultar VisitasName: cmdConsultaVisitas

Descubre miles de cursos como éste en www.mailxmail.com 55

mailxmail - Cursos para compartir lo que sabes

Page 56: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

29. Crear un control data. Control Dbgrid (3/3)[http://www.mailxmail.com/...o-visual-basic-6-introduccion/crear-control-data-control-dbgrid-3]

Con el primer botón se accede a un control frame que contenga las cajas de texto y botonesnecesarios para dar de alta un nuevo registro en la tabla Visitas, para acceder a esta tabla seusa un nuevo control Data en tipo Table que podemos llamar datAltaVisitas. Elprocedimiento para hacer esto es igual que para dar de alta nuevos registros en la tabla dePersonal ya descrito anteriormente, por ello no se detalla cómo hacerlo. La imagen siguientemuestra un control frame que contiene los elementos necesarios para dar de alta en la tablaVisitas.

Con el nuevo botón cmdConsultaVisitas se accede a las visitas realizadas a lo largo deltiempo por una determinada persona, estas visitas se presentarán en pantalla a través de uncontrol dbgrid asociado a un nuevo control Data que llamaremos datConsulta, en el que ensu propiedad RecordsetType se pondrá Dynaset y se dejará en blanco la propiedadRecordSource ya que ahora no se conectará con una tabla o consulta ya definida, sino queesta conexión se establecerá en el código del botón cmdConsultaVisitas.

En el botón cmdConsultasVisitas se establecerá una cadena de caracteres, que se pasará a lapropiedad RecordSource del control Data para acceder a la consulta de datos que en cadamomento se pida. La cadena creada, en realidad es una instrucción en el lenguaje de basesde datos SQL, por ello es necesario conocer algo de este lenguaje, concretamente lasentencia Select:

La sentencia Select permite consultar información de una tabla pudiéndose seleccionar una,varias o todas las columnas (campos) de la tabla.

Puede incluir varias cláusulas opcionales y como mínimo debe incluir la cláusula obligatoria FromFrom a través de la cual se especifica la tabla o tablas a las que se va a acceder para obtenersus columnas (campos).

Puede incluir también la cláusula Order By que indica la columna o columnas que se van ausar para ordenar los datos.

Puede además incluir la cláusula Where para especificar la condición que han de cumplir losregistros que forman parte de la consulta.

Para crear una consulta obteniendo información de los campos Nif y PrecioVisita de la tablaVisitas ordenada por Nif, se haría así:

Select Nif, PrecioVisita From Visitas Order By Nif.

Descubre miles de cursos como éste en www.mailxmail.com 56

mailxmail - Cursos para compartir lo que sabes

Page 57: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Si ahora queremos restringir la consulta anterior sólo para aquellos registros que cumplanuna condición, por ejemplo Nif = "01545454X", entonces lo especificamos con la cláusula WhereWhere quedando la consulta así:

Select Nif, PrecioVisita From Visitas Where Nif = "01545454X" Order By Nif.

Si se quiere obtener una consulta de todos los campos de la tabla Visitas se pueden escribirtodos ellos o bien usar el símbolo asterisco (*). Para obtener la consulta anterior con todoslos campos, quedaría así:

Select * From Visitas Where Nif = `01545454X´ Order By Nif.

Descubre miles de cursos como éste en www.mailxmail.com 57

mailxmail - Cursos para compartir lo que sabes

Page 58: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

30. Crear un control data. cmdConsultaVisitas (1/2)[http://www.mailxmail.com/...sual-basic-6-introduccion/crear-control-data-cmdconsultavisitas-1]

Una vez conocido como se crea la consulta, el código para ello se programa en el botóncmdConsultasVisitas, pero antes creamos un nuevo control dbgrid que llamamosdbConsulta que se asocia al control datConsulta para presentar por pantalla los registrosseleccionados. Después de crear este nuevo control, el código de cmdConsultaVisitas será:

Todas las sentencias del botón aparecen comentadas en el propio código, obsérvese noobstante, que en la creación de la cadena consulta, primero se escribe una parte entrecomillas dobles, luego se concatena con el valor que tenga la caja de texto txtPersonal(0) yluego se vuelve a concatenar con otra parte escrita directamente entre comillas dobles. Loanterior ha de ser así para especificar la condición que ha de cumplir la consulta, que no esotra que el campo Nif de la tabla Visitas sea igual al campo Nif del registro de la tablaPersonal actual, que es el que en ese momento contiene la caja de texto txtPersonal(0). Lacadena Consulta se crea pues, concatenando las tres partes siguientes:

1.- "SELECT * FROM VISITAS WHERE NIF = `" Se escribe la primera parte de la sentenciaentre comillas dobles, obsérvese que el último carácter encerrado entre comillas dobles esuna comilla simple (`) para que al concatenar todas las partes el valor del Nif aparezcaencerrado entre comillas simples.

2.- txtPersonal(0) Esta segunda parte varía en función del valor que contenga la caja detexto txtPersonal(0), cuyo contenido es lo que se concatenará para crear la cadena.

3.- "' ORDER BY FechaVisita" Tercera parte escrita al igual que la primera entre comillasdobles en la que el primer carácter es una comilla simple (´), para encerrar el valor del Nif.

Con todo lo anterior, al pulsar en el botón cmdConsultaVisitas, se accede a un controldbgrid que contiene una consulta de las visitas realizadas por una persona concreta.

Descubre miles de cursos como éste en www.mailxmail.com 58

mailxmail - Cursos para compartir lo que sabes

Page 59: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

31. Crear un control data. cmdConsultaVisitas (2/2)[http://www.mailxmail.com/...sual-basic-6-introduccion/crear-control-data-cmdconsultavisitas-2]

Hasta aquí el ejercicio que nos ha permitido acceder y manipular datos de una base de datosde formas distintas y usando valores distintos en la propiedad RecordsetType de loscontroles Data. Este es un ejercicio muy simple especialmente en lo que se refiere a lasconsultas.

Nota: El ejercicio anterior se ha realizado usando la tecnología de acceso a datos DAO (DataAccess Object) y usando los controles que Visual Basic ofrece para esta forma de acceso adatos, tales como el control data, sin embargo se podría haber desarrollado sin usar elcontrol data sino creando variables que permiten conectarse con bases de datos, crearconjuntos de registros, etc.

Ej.: En el ejercicio desarrollado, el primer control Data accedía a una base de datos llamada"C:\Curso\Visitas.mdb" y dentro de esa base de datos la tabla `Personal´. Esto también sepuede hacer sin ningún control data de la siguiente forma:

Así, para referirnos por ejemplo al campo Nombre de la tabla de personal, en el ejemplo lohemos hecho de la siguiente forma:

También Visual Basic incorpora otra tecnología de acceso a datos llamada ADO que sepodría haber usado para realizar este ejercicio.

El motivo fundamental por el que se ha elegido usar el control Data de DAO como elementofundamental para desarrollar este ejercicio es que este es un curso de iniciación a la gestiónde bases de datos desde Visual Basic, y todo lo aprendido aquí será de utilidad si se deseadesarrollar aplicaciones con DAO sin usar apenas el control Data o utilizando ADO.

NOTA: Con este capítulo hemos llegado al final del curso.

Visita más cursos como este en mailxmail:[http://www.mailxmail.com/cursos-informatica][http://www.mailxmail.com/cursos-programacion]

¡Tu opinión cuenta! Lee todas las opiniones de este curso y déjanos la tuya:[http://www.mailxmail.com/curso-visual-basic-6-introduccion/opiniones]

Descubre miles de cursos como éste en www.mailxmail.com 59

mailxmail - Cursos para compartir lo que sabes

Page 60: Visual Basic 6. Curso de introducción - mailxmail.comimagenes.mailxmail.com/cursos/pdf/6/visual-basic-6-introduccion-24256.pdf · Visual Basic 6. Curso de introducción Autor: Gabriel

Cursos similares

Cursos Valoración Alumnos Vídeo

PHP y MySQL. Aplicaciones Web: base dedatos MySQL II (octava parte)Programación de aplicaciones Web con PHP y MySQL. Continuando con elestudio de la Base de datos MySQ, aprende sobre el SQL (Lenguaje de consultasestructu... [02 /12/08]

1.710  

C# Curso de ProgramaciónCurso Básico de programación en C#, este curso básico abarcará desde lasbases del lenguaje hasta nuestros primeros pasos con aplicaciones web, accesoa bases de datos de... [14 /07/05]

10.393  

Bases de Datos en C#El curso incluye el código necesario para acceder a las bases de datos y realizarconsultas de selección y de acción.... [05 /04/07]

7.240  

Webs dinámicas con PHPEl lenguaje PHP es un lenguaje de programación de estilo clásico, nada que vercon el HTML, XML o WML. Se parece mucho más al Java o Javascript pero, adiferencia de esto... [10 /09/04]

12.181  

Sistema operativo. Windows 98Aprende con nuestro curso acerca del sistema operativo Windows 98, teenseñaremos las variadas funciones que tiene este software y que te  ayudaráa... [28 /04/09]

1.197  

Descubre miles de cursos como éste en www.mailxmail.com 60

mailxmail - Cursos para compartir lo que sabes