80
1

Curso, Tutorial Vb, Visual Basic , Base de Datos

Embed Size (px)

Citation preview

Page 1: Curso, Tutorial Vb, Visual Basic , Base de Datos

1

Page 2: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejemplo1-1

Aplicación Cronometro. Dibujando los controles.

1. Iniciar un Nuevo Proyecto 2. Coloca tres botones de comandos y seis etiquetas en el formulario.

Distribúyelas de acuerdo a la siguiente ilustración.

Establecer las propiedades de un objeto en tiempo de diseño. Cada formulario y control tienen propiedades asignadas por defecto cuando se inicia un nuevo proyecto. Hay dos maneras de desplegar las propiedades de un objeto:

• La Primera es Seleccionar el objeto y después en la ventana de propiedades buscar la propiedad a modificar

• La segunda es seleccionar del cuadro combinado de la ventana de propiedades el objeto y después modificar las propiedades desde la misma ventana.

Las propiedades en esta ventana se encuentran ordenadas alfabéticamente.

Una propiedad muy importante de cada objeto es la propiedad name(Nombre). Los programadores en Visual Basic utilizan una convención para nombrar a cada uno de los objetos de un proyecto, está convención usa las tres primeras letras como prefijo dependiendo del objeto, seguidas de un nombre que uno asigne, por ejemplo:

Objeto Prefijo Ejemplo Form frm FrmCronometro Command Button cmd, btn CmdSalir, btnIniciar Label lbl LblIniciar, LblFinalizar Text Box txt txtTime, txtName Menu mnu mnuExit, mnuSave Check box chk chkChoice

Instructor : Ing. Francisco Torres Hernández 2

Page 3: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

• Los nombres de objetos pueden ser de hasta 40 caracteres de largo, deben iniciar con una letra, pueden contener letras, números y el carácter de subrayado bajo. Los nombres son utilizados al establecer las propiedades en tiempo de ejecución y también para establece los nombres de los eventos de los objetos.

Estableciendo las propiedades en tiempo de ejecución • Se Pueden establecer las propiedades en tiempo de ejecución siguiendo la

sintaxis:

ObjectName.Property = NewValue

Como por ejemplo el cambio de la propiedad (BackColor- Color de Fondo) de un formulario FrmStar, al color azul , quedaría de la siguiente manera.

frmStart.BackColor = BLUE

Instructor : Ing. Francisco Torres Hernández 3

Page 4: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejemplo1-2

Aplicación Cronometro- Establecer las propiedades 1. Set properties of the form, three buttons, and six labels:

Form1: BorderStyle 1-Fixed Single Caption Aplicación Cronometro Name frmStopWatch Command1: Caption &Iniciar la cuenta Name cmdIniciar Command2: Caption &Terminar de contar Name CmdTerminar Command3: Caption &Salir Name CmdSalir Label1: Caption Hora Inicial Label2: Caption Hora Final Label3: Caption Tiempo Transcurrido Label4: BorderStyle 1-Fixed Single Caption En Blanco Name LblIniciar Label5: BorderStyle 1-Fixed Single Caption [Blank] Name LblFinalizar

Instructor : Ing. Francisco Torres Hernández 4

Page 5: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Label6: BorderStyle 1-Fixed Single Caption [Blank] Name lblTranscurrido

2. El formulario debe verse así en estos momentos:

Variables • Las Variables son usadas por VB para guarder información necesaria para la

aplicación.

⇒ No pueden ser de más de 40 caracteres de longitud ⇒ Pueden incluir letras, digitos y el caracter de subrayado bajo(_) ⇒ El primer caracter debe ser una letra ⇒ No pueden usarse palabras reservadas.

Algunos prefijos de los tipos de datos de Visual Basic

Boolean None Integer % Long (Integer) & Single (Floating) ! Double (Floating) # Currency @ Date None Object None String $ Variant None

Instructor : Ing. Francisco Torres Hernández 5

Page 6: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Declaración de Variables • Las formas utilizadas en Visual Basic para declarar las variables son

1. Por Defecto (Variant) 2. Implicitas (MiNombre$) 3. Explicitas (Dim MiNombre as String)

• Ejemplo del alcance de las variables

Module1 Global X as Integer Form1 Form2 Dim Y as Integer Dim Z as Single Sub Routine1() Sub Routine3() Dim A as Double Dim C as String . . . . End Sub End Sub Sub Routine2() Static B as Double . . End Sub

Procedure Routine1 Tiene acceso aX, Y, y A (Pierde su valor al terminar) Procedure Routine2 Tiene acceso aX, Y, y B (conseva su valor) Procedure Routine3 Tiene acceso aX, Z, y C (Pierde su valor)

Instructor : Ing. Francisco Torres Hernández 6

Page 7: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejemplo1-3

Aplicación Cronometro- Añadiendo el código 1. Realiza doble clic en cualquier parte del formulario para que se cargue la

ventana de código. 2. En la ventana de código selecciona el objeto General y la sección

declaraciones. 3. y declara tres variables

La línea Option Explicit forza al PROGRAMADOR a declarar todas las

variables que se usaran. 4. Selecciona el objeto CmdIniciar en el cuadro combinado de objetos. Aparecerá

por defecto las Líneas que inician con Sub y End Sub. Escribe el código que se ilustra en la figura.

Private Sub cmdIniciar_Click() IniciarReloj = Now LblIniciar.Caption = Format(IniciarReloj, "hh:mm:ss") LblFinalizar.Caption = "" LblTranscurrido.Caption = "" End Sub 5. En este procedimiento, una vez que se ha pulsado el botón de iniciar, se lee

la hora actual y se escribe en la caja de texto. Además se colocan el blanco las otras etiquetas.

6. El código para el botón terminar Private Sub cmdTerminar_Click() TerminarReloj = Now TiempoTranscurrido = TerminarReloj - IniciarReloj LblFinalizar.Caption = Format(TerminarReloj,

"hh:mm:ss") LblTranscurrido.Caption = Format(TiempoTranscurrido,

"hh:mm:ss") End Sub

Instructor : Ing. Francisco Torres Hernández 7

Page 8: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Cuando el botón es presionado se guarda en la variable la hora actual y se Procede a realizar el calculo aritmetico del tiempo transcurrido.

7. El Código del botón CmdSalir. Private Sub cmdSalir_Click() End End Sub 8. Verifica que el código que has escrito sea correcto, de cualquier forma Visual

Basic y ate habrá hecho notar en caso de un error. 9. Ejecuta la aplicación. 10. Guarda la aplicación.

Instructor : Ing. Francisco Torres Hernández 8

Page 9: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Curso VB Nivel Básico FTH ®

IIddeeaass ppaarraa mmeejjoorraarr llaa aapplliiccaacciióónn

A. Cambiar el color de fondo del formulario, las Fuentes y tamaños de

los textos de los botones de comando y las etiquetas. B. Nota que cuando el usuario pulsa el botón Terminar cuenta, el

usuario puede no haber hecho click en el botón para iniciar, o viceversa. Modifica el comportamiento, de manera que solo se pueda terminar, cuando se haya pulsado el botón Iniciar. Tip: Ver la propiedad Enabled.

C. Mostrar continuamente el tiempo transcurrido. Cada Segundo. TIP

Utiliza el Control Timer.

Instructor : Ing. Francisco Torres Hernández 9

Page 10: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejercicio 1

Calendario / Hora Diseña una pantalla que despliegue el mes actual, el día, el año. También deberá desplegar la hora actual, actualizándose cada segundo. Procura realizar el formulario para que se vea como una página del calendario.

La solución Propuesta (Siempre Puede Mejorarse) Form:

timReloj

lblyear

lblDiaMes

LblMes

LblHora

lblDia

El nombre del formulario es frmAgenda Código auxiliar:

Private Sub timReloj_Timer() Dim Hoy As Variant Hoy = Now ‘la fecha y hora actuales lblDia.Caption = Format(Hoy, "dddd") lblMes.Caption = Format(Hoy, "mmmm") lblYear.Caption = Format(Hoy, "yyyy") lblDiaMes.Caption = Format(Hoy, "d") lblHora.Caption = Format(Hoy, "h:mm:ss ampm")

End Sub

Instructor : Ing. Francisco Torres Hernández 10

Page 11: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejemplo 2-1

Cuenta de Ahorros 1. Inicia un n Nuevo proyecto. La idea de este proyecto es determiner cuanto

ganarás haciendo depósitos mensuales a una cuenta de ahorros. Para calcularlo usaremos la siguiente fórmula.

F = D [ (1 + I)M - 1] / I

donde F – Monto final D – Cantidad de los depósitos mensuales I – Porcentaje de interes mensual M – Numero de meses.

2. Coloca cuatro etiquetas, 4 cajas de texto y 2 botones de comandos en el

formulario. Procura darle el siguiente aspecto.

Instructor : Ing. Francisco Torres Hernández 11

Page 12: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

3. Establece los nombres de las propiedades a los objetos.

Form1: BorderStyle 1-Fixed Single Caption Cuenta de Ahorros Name frmCuentaAhorros Label1: Caption Deposito mensual Label2: Caption Interes anual Label3: Caption Numero de meses Label4: Caption Saldo final Text1: Text [Blank] Name txtDeposito Text2: Text [Blank] Name txtInteres Text3: Text [Blank] Name txtMeses Text4: Text [Blank] Name txtFinal Command1: Caption &Calcular Name cmdCalcular Command2: Caption &Salir Name cmdSalir

Instructor : Ing. Francisco Torres Hernández 12

Page 13: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ahora el formulario debe verse así.

4. Declara las siguientes variables en la sección general. Option Explicit Dim Deposito As Single Dim Interes As Single Dim Meses As Single Dim Final As Single La sentencia Option Explicit indica al compilador que todas las variables

deban declararse previamente para su possible uso. 5. Attach code to the cmdCalculate command button Click event. Private Sub cmdCalcular_Click()

Dim IntRate As Single Dim IntNew As Single Dim Fcn As Single, FcnD As Single Deposito = Val(txtDeposito.Text) Interes = Val(txtInteres.Text) IntRate = Interes / 1200 Meses = Val(txtMeses.Text) Final = Deposito * ((1 + IntRate) ^ Meses - 1) / IntRate

txtFinal.Text = Format(Final, "#####0.00")

End Sub

Instructor : Ing. Francisco Torres Hernández 13

Page 14: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Este código lee los tres valores introducidos en las cajas de texto, calcula el saldo final usando la fórmula proporcionada y coloca el resultado en la misma.

Instructor : Ing. Francisco Torres Hernández 14

Page 15: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

6. Agrega el siguiente código al evento Click del botón cmdSalir. Private Sub cmdSalir_Click () End End Sub 7. Revisa el proyecto ejecutándolo y no olvides guardar todos tus archivos.

Instructor : Ing. Francisco Torres Hernández 15

Page 16: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejemplo 2-2

Cuenta de Ahorro- Utilización del evento KeyPress En este ejemplo veremos la utilización del Evento KeyPress para determinar la validez de los datos introducidos por el usuario. Las cajas de texto únicamente podrán aceptar los digitos del 0 al 9, el punto decimal y la tecla de borrado (Backspace)

1. Los valores ASCII aceptados son los códigos 48 (Dígito cero) al 57 (digito Nueve), el número 46 que corresponde al punto decimal y el número 8 que es la tecla Backspace. Para estos valores usaremos constantes que estan disponibles excepto por el carácter del punto decimal, es por esto que necesitamos declarar una nueva constante, en la sección General

Const vbKeyDecPt = 46 2. Añade el código siguiente al evento KeyPress de la caja de texto txtDeposito. Private Sub txtDeposit_KeyPress (KeyAscii As Integer)

If (KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or KeyAscii = vbKeyDecPt Or KeyAscii = vbKeyBack Then Exit Sub

Else KeyAscii = 0 Beep End If End Sub

En la sentencia If la sentencia se rompe , esto es debido a las características del procesador de textos, pero recuerda que forman una sola sentencia.

3. No olvides agregar el código de validación de teclas a las otras dos cajas de

texto.

Instructor : Ing. Francisco Torres Hernández 16

Page 17: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejercicio 2-1

Calculando la media y la desviación estándar.

La facultad de estadística de la universidad desea una aplicación en ambiente Windows que permita de una manera rápida y eficiente al usuario la introducción de una secuencia de números y muestre la media y la desviación estándar. La formula para el calculo de la media es la siguiente:

x = ( )/ N xii

N

=∑

1

Y la formula para la desviación estándar está dada por

s2 = [N - ( )xii

N2

1=∑ xi

i

N

=∑

1

2]/[N(N - 1)]

El Formulario propuesto:

lblNumero Label1

Label2 TxtEntrada

cmdAceptar cmdCalcular

cmdNueva cmdSalir

Label6lblMedia

Label4 lblStdDesv

Instructor : Ing. Francisco Torres Hernández 17

Page 18: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Properties: Form frmStats: Caption = Mean and Standard Deviation CommandButton cmdSalir: Caption = &Salir CommandButton cmdAceptar: Caption = &Aceptar el Numero CommandButton cmdCalcular: Caption = &Calcular CommandButton cmdNueva: Caption = &Nueva Secuencia TextBox txtEntrada: FontName = MS Sans Serif FontSize = 12 Label lblStdDesv: Alignment = 2 - Center BackColor = &H00FFFFFF& (White) BorderStyle = 1 - Fixed Single FontName = MS Sans Serif FontSize = 12 Label Label6: Caption = Desviación estándar Label lblMedia: Alignment = 2 - Center BackColor = &H00FFFFFF& (White) BorderStyle = 1 - Fixed Single FontName = MS Sans Serif FontSize = 12 Label Label4: Caption = Media

Instructor : Ing. Francisco Torres Hernández 18

Page 19: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Label lblNumero: Alignment = 2 - Center BackColor = &H00FFFFFF& (White) BorderStyle = 1 - Fixed Single FontName = MS Sans Serif FontSize = 12 Label Label2: Caption = Ingrese el número Label Label1: Caption = Número de valores ingresados Código : Declaraciones en la sección general: Option Explicit Dim NumValores As Integer Dim SumX As Single Dim SumX2 As Single Código del evento cmdAceptar Private Sub cmdAceptar_Click() Dim Value As Single txtEntrada.SetFocus NumValores = NumValores + 1 lblNumero.Caption = Str(NumValores) 'Obtener el número, sumar y sumar al cuadrado Value = Val(txtEntrada.Text) SumX = SumX + Value SumX2 = SumX2 + Value ^ 2 txtEntrada.Text = "" End Sub Colocar el siguiente código en el evento clic del botón cmdcalcular Private Sub cmdCalcular_Click() Dim MEdia As Single Dim StdDev As Single txtEntrada.SetFocus

Instructor : Ing. Francisco Torres Hernández 19

Page 20: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

'Estar seguro que hay al menos dos números If NumValores < 2 Then Beep Exit Sub End If MEdia = SumX / NumValores lblMedia.Caption = Str(MEdia) 'calcular la desviación estándar StdDev = Sqr((NumValores * SumX2 - SumX ^ 2) / (NumValores * (NumValores - 1))) lblStdDesv.Caption = Str(StdDev) End Sub Del botón cmdSalir: Private Sub cmdSalir_Click()

End End Sub Del botón cmdNueva Private Sub cmdNueva_Click() txtEntrada.SetFocus NumValores = 0 lblNumero.Caption = "0" txtEntrada.Text = "" lblMedia.Caption = "" lblStdDesv.Caption = "" SumX = 0 SumX2 = 0 End Sub

Curso VB Nivel Básico FTH ®

CCoossaass ppaarraa mmeejjoorraarr eenn eell eejjeerrcciicciioo ddee llaa mmeeddiiaa yy llaa DDeessvv EEssttáánnddaarr..

Valide los números introducidos por el usuario a manera que únicamente se acepten dígitos, el punto decimal y la tecla backspace.

Cambie la apariencia para que refleje las políticas de la facultad de estadística de la universidad.

Instructor : Ing. Francisco Torres Hernández 20

Page 21: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejercicio 2-2

Programa para generar problemas de sumatoria. La primaria “Reyes Heroles A.C” necesita una aplicación que permita a los alumnos de primer año practicar sus conocimientos sobre operaciones aritméticas. Para eso hemos solicitados su ayuda para poder generar la siguiente aplicación. La solución propuesta Label4 lblNum2Formulario:

Label2txtRespuesta

lblNum1

Label1 lblMensaje

lblPuntaje

cmdSalir cmdSiguiente

Propiedades: score Form frmAdd: BorderStyle = 1 - Fixed Single Caption = Problemario CommandButton cmdSiguiente: Caption = &Siguiente Enabled = False CommandButton cmdSalir: Caption = Sa&lir TextBox txtRespuesta: FontName = Arial FontSize = 48 MaxLength = 2

Instructor : Ing. Francisco Torres Hernández 21

Page 22: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Label lblMensaje: Alignment = 2 - Center BackColor = &H00FFFF00& (Cyan) BorderStyle = 1 - Fixed Single FontName = MS Sans Serif FontBold = True FontSize = 14 FontItalic = True Label lblPuntaje: Alignment = 2 - Center BackColor = &H0000FFFF& (Yellow) BorderStyle = 1 - Fixed Single Caption = 0 FontName = Times New Roman FontBold = True FontSize = 36 Label Label1: Alignment = 2 - Center Caption = Puntos FontName = MS Sans Serif FontSize = 18 Label Label4: Alignment = 2 - Center Caption = = FontName = Arial FontSize = 48 Label lblNum2: Alignment = 2 - Center FontName = Arial FontSize = 48 Label Label2: Alignment = 2 - Center Caption = + FontName = Arial FontSize = 48 Label lblNum1: Alignment = 2 - Center FontName = Arial FontSize = 48

Instructor : Ing. Francisco Torres Hernández 22

Page 23: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Codigo: General Declarations: Option Explicit Dim Sum As Integer Dim NumProb As Integer, NumCorrecto As Integer cmdExit Click Event: Private Sub cmdSalir_Click()

End End Sub El código del evento click del botón cmdSiguiente: Private Sub cmdSiguiente_Click() Dim Numero1 As Integer Dim Numero2 As Integer txtRespuesta.Text = "" lblMensaje.Caption = "" NumProb = NumProb + 1 Numero1 = Int(Rnd * 21) Numero2 = Int(Rnd * 21) lblNum1.Caption = Format(Numero1, "#0") lblNum2.Caption = Format(Numero2, "#0") Sum = Numero1 + Numero2 cmdSiguiente.Enabled = False txtRespuesta.SetFocus End Sub Código del evento Activate del formulario: Private Sub Form_Activate() Call cmdSiguiente_Click End Sub

Instructor : Ing. Francisco Torres Hernández 23

Page 24: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Código del evento Load del Formulario: Private Sub Form_Load() Randomize Timer NumProb = 0 NumCorrecto = 0 End Sub El evento KeyPress de la caja txtRespuesta: Private Sub TxtRespuesta_KeyPress(KeyAscii As Integer) Dim Ans As Integer 'Verificar que únicamente se introduzcan digitos y el caracter ' de retrocreso If (KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or KeyAscii = vbKeyBack Then Exit Sub ElseIf KeyAscii = vbKeyReturn Then 'Tecla Enter? 'Checar la respuesta Ans = Val(txtRespuesta.Text) If Ans = Sum Then NumCorrecto = NumCorrecto + 1 lblMensaje.Caption = "Correcto!" Else lblMensaje.Caption = "La respuesta es " + Format(Sum, "#0") End If LblPuntaje.Caption = Format(100 * NumCorrecto / NumProb, "##0") cmdSiguiente.Enabled = True cmdSiguiente.SetFocus Else KeyAscii = 0 End If End Sub

Instructor : Ing. Francisco Torres Hernández 24

Page 25: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

3. Manejando la Caja de Herramientas de Visual Basic La función para los mensajes de Usuario(msgbox) • Una de las mejores funciones de Visual Basic es MsgBox. Esta caja de mensaje despliega un

mensaje, opcionalmente un icono y un conjunto seleccionado de botones. El usuario responde haciendo clic sobre un botón.

La sintaxis de la función MsgBox es

MsgBox Mensaje, Tipo, Titulo donde

Mensaje El mensaje de texto ha ser desplegado Tipo Tipo de mensaje. Ilustrado más adelante Titulo El texto en la barra de título de la ventana de mensajes.

Uno no tiene control sobre donde aparecerá la ventana de mensajes, pero se muestra

centrada en la ventana de la aplicación que la ejecuto.

• La función MsgBox Retorna un Valor que puede Recuperarse de acuerdo a la siguiente regla.

Dim Respuesta as Integer Respuesta = MsgBox(Mensaje, Tipo, Titulo)

• El argumento Tipo es formado por el envió de cuatro valores correspondientes a los botones a

desplegar, un icono a desplegar, El botón que se encuentra por defecto, y la modalidad de la caja de mensajes.

• El primer componente especifica los botones a desplegar. Se utilizo la siguiente línea de código Msgbox “Curso VB Básico, ____________________ , “Ejemplo” Valor Ejemplo Constantes de Visual Basic 0

VbOKOnly

1

vbOKCancel

Instructor : Ing. Francisco Torres Hernández 25

Page 26: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

2 vbAbortRetryIgnore

3 vbYesNoCancel

4

VbYesNo

5

vbRetryCancel

• El Segundo componente específica el icono a utilizar, si se requiere combinar los valores

deberán sumarse: Se utilizo la siguiente línea de código Msgbox “Curso VB Básico, vbYesNoCancel + ____________________ , “Ejemplo” Valor Ejemplo Constantes de Visual Basic 0 (None)

16 VbCritical

32 vbQuestion

Instructor : Ing. Francisco Torres Hernández 26

Page 27: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

48 vbExclamation

64 vbInformation

• El Tercer elemento indica cuál será el botón que se utilizará por defecto, si ve en el ejemplo

anterior el botón por defecto siempre es el primero, pero nosotros podemos cambiar este comportamiento

Se utilizo la siguiente línea de código Msgbox “Curso VB Básico, vbYesNoCancel + vbInformation+ ____________________ , “Ejemplo” Valor Ejemplo Constantes de Visual Basic 0 vbDefaultButton1

256 vbDefaultButton2

512 vbDefaultButton3

• El ultimo parámetro es utilizado para indicar la modalidad de la ventana: Valor Significado Constante 0 Es modal unicamente para la

aplicación VbApplicationModal

4096 Es modal para todos los programas cargados en el

vbSystemModal

Instructor : Ing. Francisco Torres Hernández 27

Page 28: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

sistema operativo. Considera que los valores de las constantes son numéricos pero se recomienda el uso de las constantes en lugar de los valores que representan El valor devuelto por la función msgbox, depende del botón que se pulso y los valores son los siguientes:

Valor Constante 1 vbOK 2 vbCancel 3 vbAbort 4 vbRetry 5 vbIgnore 6 vbYes 7 vbNo Métodos de objetos En las clases anteriores hemos comentado que los objetos tienen propiedades y eventos asociados con estos, un tercer concepto son los metodos. Un método es un procedimiento o una función que realiza alguna acción a un objeto. La sintaxis general para los métodos es la siguiente

NombreObjeto.Metodo {Argumentos opcionales} El objeto Form El Form es donde el usuario dibuja la interface. Es la parte central del desarrollo de aplicaciones de Visual Basic. • Propiedades del Form

Appearance Especifica una apariencia 3D o plana

BackColor Establece el color de fondo BorderStyle Establece si formulario se podrá

ajustar. Caption Establece el título de la ventana Enabled Si es True permite al formulario

responder a los eventos generados. Font Establece un tipo de fuente, un

estilo y un tamaño ForeColor Indiac el color del texto y de los

gráficos para el primer plano Picture Establece una imagen. Visible Si es false el formulario se vuelve

invisible

Instructor : Ing. Francisco Torres Hernández 28

Page 29: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

• Eventos de un form

Activate Se da cuando el formulario pasa a ser la ventana activa

Click Ocurre cuando el usuario realiza un clic sobre el área ocupada por este

DblClick Ocurre cuando el usuario realiza un doble clic sobre el área ocupada por este.

Load Ocurre cuando el formulario se esta cargando, aquí es un buen lugar para establecer la inicialización de variables.

• Algunos Métodos

Print Imprime el contenido del formulario. Command Buttons

• Este control se ha usado para iniciar, interrumpir o pausar un proceso. • Propiedades de control botón de comando

Appearance Permite seleccionar la apariencia 3D o flotante del control

Cancel Este indica que cuando el usuario pulsa la tecla ESC, se ejecutará el código de este botón

Caption Establece el texto a ser desplegado por el botón

Default Indica que este será el botón que responderá a la tecla ENTER.

Font Establece la fuente, el tamaño y el estilo.

• Evento más cómun

Click Este evento se dispará cuando el usuario realiza clic sobre el área ocupada por el control, o bien cuando el usuario pulsa la combinación de ALT + la letra que tenga marcada como de acceso directo.

Etiquetas

Instructor : Ing. Francisco Torres Hernández 29

Page 30: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

• Una etiqueta es un control que se usa para desplegar texto que el usuario no puede editar directamente.

• Propiedades

Alignment Indica la alineación que tendrá el texto. Puede ser a la izquierda, a la derecha o al centro.

Appearance Establece la apariencia 3D o flotante AutoSize Si es True la etiqueta cambiará su

tamaño para poder dar cabida a todo el texto que tiene asignado a través de caption.

BorderStyle Determina el tipo de Borde Caption Una cadena que especifica el texto a

desplegar dentro de la etiqueta. Font Establece la fuente, el tamaño y el

estilo para el texto. WordWrap Trabaja en combinación con Autosize.

Si autosize es True, entonces el texto se desplegará de una manera multilínea y la caja se expandira. Verticalmente. Si AutoSize es True y WordWrap es False entonces la etiqueta se expandirá Horizontalmente.

• Eventos de un Label:

Click DblClick

Text Boxes

• Una caja de texto es usada para desplegar información introducida en tiempo de ejecución por

el usuario o generada por código. El texto que se muestra debería poder ser editable. • Propiedades de un TextBox:

Appearance Indica la apariencia 3D o flotante BorderStyle Indica el tipo de Borde Font Establece la fuente, el tamaño y el

estilo MaxLength Indica la longitud máxima de

caracteres aceptados. 0 Indica caracteres ilimitados

MultiLine Especifica si un textbox desplegará una línea como un conjunto de estas. Similar a la propiedad WordWrap de una etiqueta.

PasswordChar Esconde el texto, utilizando el carácter que se le suministra.

ScrollBars Especifica si se utilizarán las barras

Instructor : Ing. Francisco Torres Hernández 30

Page 31: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

de desplazamiento. SelLength Indica la longitud del texto

seleccionado SelStart Indica desde donde se empezará a

seleccionar. SelText Texto Seleccionado. Solo

disponible en tiempo de ejecución. Tag Establece una cadena Text El texto a desplegar dentro del

control • Eventos de las cajas de texto:

Change Ocurre cada vez que la propiedad text cambia

LostFocus Ocurre cuando el usuario sale del control.

KeyPress Ocurre cuando se presiona una tecla dentro del control.

• Métodos del TextBox

SetFocus Establece el cursor en el textBox Seleccionado.

Ejemplo

txtEjemplo.SetFocus 'Mueve el cursor a la caja de texto TxtEjemplo

Casillas de Verificación (CheckBox)

Los Check Boxes proveen una forma para realizar elecciones de una lista de potenciales candidatos. Algunos, todos o ninguna opción en un grupo pueden ser seleccionadas. • Check Box Propiedades

Caption Indica el texto a desplegar por el control. Font Establece la fuente, el tamaño y el estilo Value Indica si esta sin marcar (0,

vbUnchecked), marcado (1, vbChecked), o parcialmente marcado (2, vbGrayed)

.

• Eventos del CheckBox:

Click Se dispará cuando un usuario realiza clic sobre este. VB automáticamente asigna los valores.

Botones de Opción (OptionButton)

Instructor : Ing. Francisco Torres Hernández 31

Page 32: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

• Los botones de Opciones proveen la capacidad para realizar una elección mutuamente

exclusiva en un grupo de posibles candidatos. Cuando los optionButtons trabajan como grupo solo uno puede ser Trae.

• Propiedades

Caption Especifica el texto que se mostrará al lado

del botón. Font Establece la fuente, el estilo y el tamaño

del texto. Value Indica si se encuentra seleccionado (true)

o no (false)

• Evento más común

Click Marcos (Frames)

En las secciones anteriores hemos comentado que los optionButton y CheckBoxes pueden agruparse, bueno el control que permite agrupar a estos controles se les conoce como Frames. Para agrupar controles primero se deberá dibujar el frame, y después dibujar los controles que se quieran agrupar dentro del mismo. • Propiedades de los marcos

Caption Indica el texto que se desplegará al inicio del marco.

Font Establece la fuente, el estilo y el tamaño del texto.

Instructor : Ing. Francisco Torres Hernández 32

Page 33: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejemplo 3-1

Domino´s Pizza

1. Inicia un nuevo Proyecto. Deberemos construir un formulario donde una orden para Pizza pueda ser introducida de manera sencilla a través de la realización de clicks en Botones de Opción y Casillas de verificación.

2. Dibuja tres frames. En el pimer frame dibuja tres botones de opción, en el segundo dibuja dos botones de opción, y en el tercero dibuja seis casillas de verificación. Añade dos botones de opción al formulario. Por último agrega dos botones de comando.

3. Establece las propiedades del formulario y para cada control.

Form1: BorderStyle 1-Fixed Single Caption Domino´s Pizza Name frmPizza Frame1: Caption Tamaño Frame2: Caption Masa Frame3 Caption Ingredientes

Instructor : Ing. Francisco Torres Hernández 33

Page 34: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Option1: Caption Pequeña Name optTam Value True Option2: Caption Mediana

Name optTam (Responda que si, cuando se le pregunta si desea crear un array de controles)

Option3: Caption Grande Name optTam Option4: Caption Delgada Name optMasa Value True Option5: Caption Gruesa

Name optMasa (Responda que si, cuando se le pregunta si desea crear un array de controles)

Option6: Caption Para Comer aqui Name optDonde Value True Option7: Caption Para llevar

Name optDonde (Responda que si, cuando se le pregunta si desea crear un array de controles)

Check1: Caption Queso Extra Name chkTop Check2: Caption Champiñones

Name chkTop (Responda que si, cuando se le pregunta si desea crear un array de controles)

Check3: Caption Aceitunas Name chkTop

Instructor : Ing. Francisco Torres Hernández 34

Page 35: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Check4: Caption Cebolla Name chkTop Check5: Caption Pimiento Verde Name chkTop Check6: Caption Tomates Name chkTop Command1: Caption &Hacer la pizza Name cmdHacer Command2: Caption &Salir Name cmdSalir

El formulario debería verse de la siguiente manera. Aquí se le han añadido dos imágenes.

4. Declara las siguientes variables en la sección de declaraciones General: Option Explicit Dim PizzaTam As String Dim PizzaMasa As String Dim PizzaDonde As String Estas variables van a guardar el tamaño, la masa y el lugar donde se servirá la pizza.

Instructor : Ing. Francisco Torres Hernández 35

Page 36: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

5. Agrega el siguiente código de inicialización del evento Form Load. Esto hace que las variables Globales tengan los valores por defecto.

Private Sub Form_Load() 'Cargamos los valores por defecto PizzaTam = "Pequeña" PizzaMasa = "Delgada" PizzaDonde = "Para comer aquí" End Sub 6. Agrega el siguiente código a cada uno de los procedimientos clic de los botones de opción: Private Sub optMasa_Click(Index As Integer) PizzaMasa = optCrust(Index).Caption End Sub Private Sub optTam_Click(Index As Integer) PizzaTam = optSize(Index).Caption End Sub Private Sub optDonde_Click(Index As Integer) PizzaDonde = optWhere(Index).Caption End Sub 7. Agrega el siguiente código al boton cmdHacer en su evento click(). Private Sub cmdHacer_Click()

'Este procedimiento construye un mensaje donde se indica el tipo de 'Pizza a realizar

Dim Mensaje As String Dim I As Integer Mensaje = PizzaDonde + vbCr Mensaje = Mensaje + PizzaTam + " Pizza" + vbCr Mensaje = Mensaje + PizzaMasa + vbCr 'La estructura de Control For permite Recorrer todos las casillas

de 'verificación en busca de los ingredientes seleccionados For I = 0 To 5 If chkTop(I).Value = vbChecked Then 'Solo si el ingrediente esta

seleccionado Mensaje = Mensaje + chkTop(I).Caption + vbCr End If Next I MsgBox Mensaje, vbOKOnly + vbInformation, "Su Pizza" End Sub Este código es el que forma un mensaje donde se indica el tamaño de la Pizza, el tipo de

masa, los ingredientes extra seleccionados y el lugar donde se servirá la pizza 8. Añade el siguiente código al botón Salir. Private Sub cmdSalir_Click()

End

Instructor : Ing. Francisco Torres Hernández 36

Page 37: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

End Sub 9. Ejecuta la aplicación y guarda el proyecto

Curso VB Nivel Básico FTH ®

MMeejjoorraarr eell pprrooyyeeccttoo

A. Agrega un nuevo botón al formulario que tenga el texto Nueva Orden, y que al

presionarlo se muestren los valores por defecto (Pequeña, Delgada y Para comer aquí). Para realizar esto se tienen que volver a establecer los valores iniciales en los controles, los valores iniciales de las variables y quitarles la selección a los ingredientes.

Instructor : Ing. Francisco Torres Hernández 37

Page 38: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Cuadros de Lista (List Boxes)

Un cuadro de lista muestra una lista de elementos de los cuales el usuario puede seleccionar uno o varios. Si el número de elementos excede la cantidad que puede ser desplegada por el cuadro, se muestran automáticamente las barras de desplazamiento. • Propiedades más comunes de un cuadro de lista:

Appearance Selecciona entre el estilo 3D y Flotante

List Arreglo con todos los elementos de una lista.

ListCount Numero de elementos en la lista. ListIndex El número de la lista del elemento

recientemente seleccionado. Si no hay un elemento seleccionado el valor por defecto es -1.

MultiSelect Indica como los elementos podrán ser seleccionados (0 Indica que no se permite la selección múltiple, 1 Se permite la selección múltiple y 2 Permite la selección de Grupos)

Selected Un arreglo con los elementos que tienen el valor True si estan seleccionados o False si no lo están.

Sorted True Indica que los elementos se ordenaran de manera ascendente de acuerdo al código ASCII. Si es False se mostrarán de acuerdo a como se hayan introducido.

Text El texto del item actualmente seleccionado.

• Eventos de un ListBox:

Click DblClick

• Métodos de un listBox

AddItem Permite agregar un item a la lista. Clear Elimina todos los elementos de la lista. RemoveItem Elimina un item de la lista, a través de su identificador (index)

Ejemplos

lstEjemplo.AddItem "Este es un Nuevo elemento" lstEjemplo.Clear lstEjemplo.RemoveItem 4 ' Elimina lstEjemplo.List(4) del cuadro de lista.

• Los elementos de una lista son usalmente inicializados en el procedimiento Form_Load. Y

siempre es una buena idea Limpiar el cuadro de lista antes de inicializar un cuadro.

Instructor : Ing. Francisco Torres Hernández 38

Page 39: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Cuadros Combinados (Combo Boxes)

• El ComboBox es similar a un cuadro de lista. Las diferencias entre un cuadro combinado, es

que incluye un cuadro de texto y solo permite la selección de uno de los elementos. En algunos casos el usuario, puede escribir la opción. Las propiedades de un comboBox son Casi identificas a las de un ListBox, exceptuando la propiedad MultiSelect y agregando la propiedad Style.

Appearance Selecciona entre el estilo 3D y Flotante

List Arreglo con todos los elementos de una lista.

ListCount Numero de elementos en la lista. ListIndex El número de la lista del elemento

recientemente seleccionado. Si no hay un elemento seleccionado el valor por defecto es -1.

Sorted True Indica que los elementos se ordenaran de manera ascendente de acuerdo al código ASCII. Si es False se mostrarán de acuerdo a como se hayan introducido.

Style El método utilizado para la selección de un elemento. Con el estilo 0 y 1, el usuario podrá cambiar los valores de los cuadro combinados, con el estilo 2, el usuario no podrá cambiar el texto.

Text El texto del item actualmente seleccionado.

• Eventos de un ComboBox:

Click DblClick

• Métodos de un ComboBox

AddItem Permite agregar un item a la lista. Clear Elimina todos los elementos de la lista. RemoveItem Elimina un item de la lista, a través de su identificador (index)

Ejemplos

cboEjemplo.AddItem "Este es un Nuevo elemento" cboEjemplo.Clear cboEjemplo.RemoveItem 4 ' Elimina lstEjemplo.List(4) del cuadro de lista.

Instructor : Ing. Francisco Torres Hernández 39

Page 40: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejercicio 3

Pantalla de entrada para datos de clientes. Una nueva tienda de deportes necesita que usted desarrolle un prototipo para su base de datos de clientes. La información solicitada es:

1. Nombre 2. Edad 3. Ciudad de Residencia 4. Sexo (Masculino ó Femenino) 5. Actividades (Correr, Caminata, Bicicleta, Nado, esquí y /o Patinaje) 6. Nivel Atlético (Extremo, Avanzado, Intermedio, o Principiante)

Al presionar el botón mostrar perfil, deberá aparecer un cuadro de mensaje como el que se muestra a continuación:

Instructor : Ing. Francisco Torres Hernández 40

Page 41: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

La Pantalla de captura: Formulario: Frame3

cmdMostrar

cmdSalir

txtEdad Label2

OptNivel

cboCiudad

txtName

Label1

Frame1

optSexo

cmdNuevo

chkAct Frame2 Frame4

Establezca las propiedades para cada control. Asegurese que los nombres de controles corresponden con los indicados en la figura. Código: Declaraciones Generales Option Explicit Dim Actividad As String Evento click() del botón cmdSalir Private Sub cmdSalir_Click() End End Sub Código del evento clic() del botón cmdNuevo: Private Sub cmdNuevo_Click() 'Coloca en blanco a las casillas de verificación de las actividades Dim I As Integer txtNombre.Text = "" TxtEdad.Text = "" For I = 0 To 5 chkAct(I).Value = vbUnchecked Next I End Sub

Instructor : Ing. Francisco Torres Hernández 41

Page 42: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Código del evento clic() del botón cmdMostrar Private Sub cmdMostrar_Click() Dim NoAct As Integer, I As Integer Dim Msg As String, Pronombre As String 'Asegurarse que un nombre se ha introducido If txtNombre.Text = "" Then MsgBox "El perfil necesita tu nombre", vbOKOnly + vbCritical, "No se ha introducido un nombre" Exit Sub End If 'Asegurarse que la edad se ha introducido If TxtEdad.Text = "" Then MsgBox "El perfil necesita una edad", vbOKOnly + vbCritical, "No hay Edad" Exit Sub End If Msg = txtNombre.Text + " tiene" + Str$(TxtEdad.Text) + " años" + vbCr If optSexo(0).Value = True Then Pronombre = "El " Else Pronombre = "Ella " End If Msg = Msg + Pronombre + "vive en " + cboCiudad.Text + "." + vbCr Msg = Msg + Pronombre + " tiene el nivel " Msg = Msg + Actividad + vbCr NoAct = 0 'Verificamos si tiene actividades seleccionadas For I = 0 To 5 If chkAct(I).Value = vbChecked Then NoAct = NoAct + 1 Next I 'Si el numero de actividades es mayor que cero If NoAct > 0 Then Msg = Msg + "Las actividades que practica son:" + vbCr For I = 0 To 5 If chkAct(I).Value = vbChecked Then Msg = Msg + String$(10, 32) + chkAct(I).Caption + vbCr End If Next I Else 'No tiene actividades Msg = Msg + vbCr End If MsgBox Msg, vbOKOnly, "Perfil del cliente" End Sub Código del Evento Load Private Sub Form_Load() 'Carga el comboBox con las posibles ciudades cboCiudad.AddItem "Coatzacoalcos"

Instructor : Ing. Francisco Torres Hernández 42

Page 43: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

cboCiudad.Text = "Coatzacoalcos" cboCiudad.AddItem "Agua Dulce" cboCiudad.AddItem "Nanchital" cboCiudad.AddItem "Las Choapas" cboCiudad.AddItem "Ixhuatlan" cboCiudad.AddItem "Villahermosa" cboCiudad.AddItem "Cosoleacaque" cboCiudad.AddItem "Acayucan" cboCiudad.AddItem "Jaltipan" cboCiudad.AddItem "Minatitlán" Actividad = "Intermedio" End Sub Código del evento clic del botón de opción OptNivel Private Sub optnivel_Click(Index As Integer)

Select Case Index Case 0 Actividad = "Extremo" Case 1 Actividad = "Avanzado" Case 2 Actividad = "Intermedio" Case 3 Actividad = "Principiante" End Select

End Sub Código del evento KeyPress de la caja TxtEdad Private Sub TxtEdad_KeyPress(KeyAscii As Integer) If (KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or KeyAscii = vbKeyBack Then Exit Sub Else KeyAscii = 0 End If End Sub

Instructor : Ing. Francisco Torres Hernández 43

Page 44: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

3. Otros elementos de la caja de herramientas

Ejemplo 4-1

Visualizador de Imagen

Inicia un Nuevo proyecto. En esta aplicación nosotros buscaremos en la computadora por los archivos gráficos y se desplegará nuestra búsqueda en un control image.

Especificaciones del Visualizador de Imagenes Desarrollar una aplicación donde el usuario pueda buscar y encontrar archivos gráficos (ico, bmp, wmf) en su computadora. Una vez que un archivo se ha seleccionado se mostrará su correspondiente nombre de archivo en el formulario y se desplegará el archivo en un image box usando la función LoadPicture().

Una possible solución:

1. Coloca un control Drive List , un control file list box , cuatro etiquetas, una línea y un botón de comando en el formulario, añada además un control image box. Al terminar la aplicación debe verse como se muestra a continuación.

Image1

2. Establece las propiedades para cada objeto en el formulario

Form1:

Instructor : Ing. Francisco Torres Hernández 44

Page 45: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

BorderStyle 1-Fixed Single Caption Visualizador de Imagenes Name frmImage Drive1: Name drvImage Dir1: Name dirImage File1: Name filImage Pattern *.bmp;*.ico;*.wmf;*gif;*jpg [Escribe la línea de arriba sin espacios] Label1: Caption [Blanco] BackColor Yellow BorderStyle 1-Fixed Single Name lblImage Label2: Caption Archivos: Label3: Caption Directorios: Label4: Caption Discos: Command1: Caption &Mostrar Imagen Default True Name cmdMostrar Command2: Cancel True Caption &Salir Name cmdsalir Line1: BorderWidth 3 Image1: BorderStyle 1-Fixed Single Name imgImage Stretch True

3. Attach the following code to the drvImage_Change procedure. Private Sub drvImage_Change() dirImage.Path = drvImage.Drive End Sub Cuando una nueva unidad es seleccionada, este código forzará al cuadro de directorio a

mostrar que directorios se encuentran en el disco.

Instructor : Ing. Francisco Torres Hernández 45

Page 46: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

4. Agregar al control dirImage el código siguiente al método Change. Private Sub dirImage_Change() filImage.Path = dirImage.Path End Sub Igualmente cuando un Nuevo directorio es seleccionado entonces actualizamos el control file

list Box. 5. Agregar al evento click al control cmdMostrar Private Sub cmdmostrar_Click() Dim NombreImage As String If filImage.FileName = "" Then Exit Sub If Right(filImage.Path, 1) = "\" Then NombreImage = filImage.Path + filImage.FileName Else NombreImage = filImage.Path + "\" + filImage.FileName End If lblImage.Caption = NombreImage imgImage.Picture = LoadPicture(NombreImage) End Sub Este código construye el nombre de un archive concatenando la ruta del directorio con el nombre del archive, despues despliga la ruta completa y muestra el archivo en el imagebox. 6. Llama al procedimiento cmdMostrar_Click() desde el evento dblCLick() del control FilImage

Private Sub filImage_DblClick() Call cmdmostrar_Click End Sub

7. Agrega el código necesario para salir de la aplicación Private Sub cmdSalir_Click() End End Sub 8. Guarda el proyecto y pruebalo:

Instructor : Ing. Francisco Torres Hernández 46

Page 47: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Instructor : Ing. Francisco Torres Hernández 47

Page 48: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Creando una aplicación Individual Nosotros hemos revisado la aplicación de la mayoría de las herramientas de la caja de Herramientas de VB, pero hasta ahora para ejecutar nuestras aplicaciones necesitamos del entorno de desarrollo de Vb. En esta sección aprenderemos los pasos para generar un ejecutable de nuestra aplicación, que podrá correr en cualquier computadora con sistema operativo Windows. Diseñar una aplicación.

1. Dibujar la interfaz 2. Determinar procesos y funciones 3. Determinar las herramientas necesarias de la caja de herramientas 4. Diseña la interfaz utilizando la facilidad de uso de los usuarios. 5. Escribe tu código de manera legible utiliza correctamente las sangrías. 6. Realiza la códificación amigable 7. Depura tu aplicación de los errores.

Procedimientos generales independientes de los eventos. La sintaxis para declarar un procedimiento es:

Sub NombreProcedimiento(Argumentos) . . End Sub

• Procedimiento de ejemplo

Aquí tenemos un procedimiento que permite convertir una cantidad en Dólares a pesos mexicanos, este procedimiento utiliza dos parámetros.

Sub USMexConvertir (USDollars As Single, UStoPeso As Single, MexPesos As Single)

MexPesos = UsDollars * UsToPeso End Sub

• Para llamar a un procedimiento se puede utilizar dos formas

Metodo 1:

Call Procedimiento(Argumentos) Si no hay argumentos no hay necesidad de paréntesis

Metodo 2:

Procedimiento Argumentos

Definición de funciones Una función a diferencia de un procedimiento siempre debe devolver un valor, algunas funciones que se han visto son format y msgbox.

Instructor : Ing. Francisco Torres Hernández 48

Page 49: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

• Definición de una función:

Function GenlFcn(Argumentos) As Type . . GenlFcn = ... End Function

• Ejemplo

Esta función calcula el volumen de un cilindro conociendo su altura y su radio

Function CylVol(Alto As Single, Radio As Single) As Single Dim Area As Single Const PI = 3.1415926 Area = PI * Radio ^ 2 CylVol = Area * Alto

End Sub

• Para llamar a una función se puede usar la siguiente sentencia, por lo general siempre van después de una sentencia de asignación. Ejemplo Para llamar a la función para calcular el volumen de un cilindro.

Dim Volumen As Single . . Volumen = CylVol(Alto, Radio)

Añadir menús a las aplicaciones. • Los menús son una forma jerarquica de organizar los comandos a los que tendran acceso los

usuarios.

Un ejemplo típico de un menú

File Edit Format New Cut Bold Open Copy Italic Save Paste Underline Size Exit 10 15 20

• El menú Editor permite la generación y creación de los menús de VB.

Instructor : Ing. Francisco Torres Hernández 49

Page 50: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Cada elemento en la estructura requiere varias entradas en la caja de diseño.

Ejemplo 5-1

Editor de Notas. 1. Inicia un nuevo proyecto 2. Coloca un gran textbox en el formulario.Establece las propiedades del formulario

Form1: BorderStyle 1-Fixed Single Caption Editor de Notas Name frmEdit Text1: BorderStyle 1-Fixed Single MultiLine True Name txtEdit ScrollBars 2-Vertical Text [Blank]

El formulario debería verse como aquí.

Instructor : Ing. Francisco Torres Hernández 50

Page 51: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

3. Necesitamos añadir la siguiente estructura de menús del archivo.

Las especificaciones para cada menú.

Instructor : Ing. Francisco Torres Hernández 51

Page 52: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Creando Archivos ejecutables Para crear un ejecutable habrá que relizar Clic en archivo después en Generar… y listo …. Para configurar las propiedades de un proyecto se realiza clic en Proyecto y después propiedades.

Instructor : Ing. Francisco Torres Hernández 52

Page 53: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Construyendo un paquete de instalación Hasta ahorita hemos podido ejecutar nuestro proyecto porque contamos con todos los archivos necesarios para los mismos instalados en la misma máquina, pero cuando estos archivos no estan disponibles nuestro archivo ejecutable simplemente no funcionará. Asi que para asegurarse que nuestra aplicación correrá sin complicaciones es necesario aparte del ejecutable proporcionar la librerias dinámicas en tiempo de ejecución y registrarlas propiamente en la computadora. Para realizar esto Visual Basic cuenta con el asistente para empaquetado. Para iniciar el asistente es necesario.

Instructor : Ing. Francisco Torres Hernández 53

Page 54: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

INTRODUCCIÓN A LAS BASES DE DATOS

Qué es una Base de Datos? Una BD es un depósito de información. Existen varios tipos diferentes de BD. En este ejemplo se hablaran de las bases de datos relacionales. Que es el tipo de BD más utilizado en la actualidad. Una BD Relacional:

• Almacena datos en tablas • Permite recuperar o consultar Subconjuntos de datos de las tablas • Permite conectar o unir varias tablas con el fin de recuperar datos relacionados que

están almacenados en tablas diferentes.

Qué es un motor de BD? Este proporciona las funciones básicas de una BD. Es un sistema de Software que administra la manera en que se almacenan y se recuperan los datos. El motor de BD a utilizar es Microsoft Jet.

Qué son las tablas y campos? Las BD están formadas por tablas que representan amplias categorías de datos. Si se estuviese creando una bd para gestionar las cuentas de un negocio, por ejemplo, podría crear una tabla para los clientes, otra para las facturas y otra para los empleados. Las tablas tienen una estructura predefinida, ya que contienen datos que se ajustan a cada estructura. Las tablas a su vez contienen registros, los cuales son piezas individuales de información que están dentro de la categoría amplia a la que representan.

Los registros a su vez tienen campos. Un campo representa una subdivisión de los datos de un registro. Un registro que

representa una entrada de una libreta de direcciones puede estar formado por los campos nombre, apellido, dirección, ciudad, código postal y número de teléfono.

Para crear una Bd primero debe determinar que información va a guardar.

¿Qué es un Recordset? Paremos un momento el asunto práctico para ver como trabajan físicamente las bases de datos. Ya sabemos que el programador queda aislado de la forma en que los datos son físicamente grabados, así es que solo tiene acceso a una "imágen" en memoria de los datos físicos (por algo las bases de datos son tan sensibles a los cortes de energía) Esta imágen es lo que se llama un Recordset (conjunto de registros), existen distintos tipos de recordset que el motor de base de datos entrega por ejemplo: Dynaset (recordset dinámico) cambia al mismo tiempo que cambian los datos en la BD subyacente Snapshot (instantánea) muestra la BD subyacente en un momento dado, no muestra los cambios posteriores (obviamente se usa para emitir reportes)

DAO, RDO, OBDC, ADO ¿Para qué Sirven?

Instructor : Ing. Francisco Torres Hernández 54

Page 55: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Fundamentalmente estos tres métodos de programación de bases de datos ofrecen Más instrucciones, y la posibilidad de hacer todas las tareas programáticamente, sin necesidad de usar Datacontrol ni controles enlazados Más control sobre la manera en que se actualizan los datos, posibilidad de recibir datos automáticamente sin intervención de la consola Permite usar instrucciones de programa además de las SQL usuales Permite usar distintos origenes de datos, aún cuando no estén basados en PC, como Oracle, Servidor SQL, etc. DAO = Data Access Objects (Objetos de Acceso a Datos) es el método antiguo (usado en VB 5) para programar bases de datos. DAO usa la antigua tecnología OLE para conectarse con las bases de datos. RDO=-Remote Data Objects (Objetos de Datos Remotos) es el método usado paraconectar PCs con bases de datos remotas en un ambiente cliente-servidor (por ejemplo una base de datos Oracle en un equipo remoto Unix), Usa la ODBC (Open Data Base Conectivity, o Conectividad Abierta de Bases de Datos), los controladores OBDC son el método que emplea en general Windows 9x para conectarse con bases de datos externas. También existe un método abreviado para estas conexiones a bases de datos externas, es usando el Remote Data Control RDC, que es el análogo al DataControl para el DAO ADO = ActiveX Data Objects (Objetos de Datos ActiveX) es el método usado por VB 6.0 para acceder por programa a bases de datos. Usa la tecnología OCX en lugar de OLE y existe, desgraciadamente, incompatibilidades entre DAO y ADO En resumidas cuentas ¿que significa toda esta sopa de letras?. físicamente son bibliotecas, Dll, objetos OLE y OCX así como bibliotecas del Windows (en el caso de OBDC), que deben cargarse junto con el programa e incluirse en la distribución. Para apliocaciones pequeñas no recomendaría usar ninguno de estos métodos que hacen a las aplicaciones pesadas, potencialmente inestables y difíiles de distribuír y portar.

DAO - Acceso a bases de datos mediante el Control Data Para acceder a estas Bases de Datos basta con introducir un control Data en el formulario, y fijarle las propiedades apropiadas para que trabaje sobre uno u otro tipo de base de datos. El control Data nos permite acceder de una forma sencilla a cualquier base de datos de estos tipos, y sirve de enlace entre la base de datos y los controles que son habilitados para presentar los datos de esa base. Utiliza el motor de bases de datos Jet para el acceso a los datos. El Control Data El control Data puede tomarse directamente de la caja de herramientas. Al contrario que los controles similares RDO y ADO, este está siempre en la caja de herramientas. En el formulario tiene el aspecto de una barra deslizante :

Decíamos que el control Data sirve de enlace entre la base de datos y los controles que pueden presentar datos. Estos controles a los que nos referimos son los llaados Controles Enlazados a

Instructor : Ing. Francisco Torres Hernández 55

Page 56: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Datos, y que son viejos conocidos nuestros, al menos algunos de ellos. Los dos más sencillos son el control Label y el control TextBox Un control Label puede presentar un dato. Si queremos que ese dato sea un campo de una tabla de una base de datos, basta que enlacemos la base de datos al control data, y que enlacemos luego el control Label con el control Data. Si hacemos lo mismo con el TextBox, no solamente podremos presentar datos de la BD, sino que los podemos introducir, al ser el TextBox un control bidireccional. Veamos como se enlaza un control data a una base de datos. Se supone que el alumno conoce la estructura de una base Access, BD con la que vamos a iniciar este estudio. De cualquier forma, y para los que han suspendido la asignatura de base de datos Access, citar solamente que una base de datos Access contiene dentro de un fichero (P.e. C:\MiCarpeta\MiBase.Mdb) varias Tablas (P.e. Tabla1, Tabla2 y Tabla3) Cada tabla es en sí una base de datos en el sentido estricto. Tiene un número indeterminado de registros, (filas) que guardan la información en varios Campos. El fichero, que tiene por extensión Mdb es la base de datos, y ese nombre (Dirección completa de la carpeta y nombre del fichero) es lo que debemos poner al control Data en su propiedad DataBaseName. Con esto, el control data ya sabe donde tiene que ir a leer los datos. Pero le falta todavía por saber en que tabla dentro de esa BD los tiene que leer. El nombre de la tabla se lo indicamos al control Data en la propiedad RecordSource. Para elegir esta propiedad basta con desplegar la lista de las tablas haciendo click en la flecha de la línea de la propiedad RecordSource. Dado que el control Data ya sabe en que base de datos debe leer los datos (Ya tiene puesta la propiedad DataBaseName), ya puede saber cuantas tablas tiene y los nombres de estas tablas. Elija la tabla deseada. En nuestro ejemplo, Authors

Con esto ya podría trabajar, pero le faltan aún ciertos detalles. Por ejemplo, el tipo de recordset que debe crear. (Dynaset, Snapshot, Table) Esto se lo indicamos en la propiedad RecordsetType, que por defecto le va a poner Dynaset. (Ya veremos que es cada uno de ellos) Y ya tenemos casi todas las propiedades del control Data cubiertas. Las demás son las típicas de todos los controles. Casi todas las propiedades, porque hay una que se ha introducido en la versión 6 de VB para permitir las dos formas de atacar a la base de datos, con el motor Jet o a través del citado ODBCDirect.. Esa propiedad es DefaultType y nos permite elegir entre usar el motor de base de datos Jet (Poniendo a esta propiedad el valor 2 o dbUseJet) o usar ODBCDirect (Poniéndole el valor 1 ó dbUseODBC) El valor por defecto es usar el motor Jet y así trabajaremos en principio. Ya tenemos enlazado el control Data a la base de datos. Falta ahora enlazar una etiqueta y un TextBox al control Data para tener el enlace completo. Eso es aún más sencillo. Si desplegamos las propiedades del TextBox por ejemplo, veremos que tiene unas propiedades que cuando lo estudiamos, las habíamos pasado un poco por alto: DataSource y DataField. En la figura puede ver que la propiedad DataSource puede desplegarse, mostrando en este caso el nombre del único control Data que tenemos en el formulario: Data1 Si tuviésemos mas controles Data, aparecerían los nombres de todos ellos. Se elige uno.

Instructor : Ing. Francisco Torres Hernández 56

Page 57: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

A continuación debemos señalarle qué campo queremos que nos presente. Podemos desplegar la lista, donde podemos ver los campos de la tabla elegida para la propiedad RecordSource del control Data. Elegimos uno y ejecutamos la aplicación.

odemos observar que ya funciona. Si ponemos tantos TextBox como campos tiene la tabla

ntremos ahora en un estudio un poco más avanzado del control Data.

l control Data proporciona acceso a datos almacenados en bases de datos usando uno de los

este está en el

n el tema de Bases de Datos se emplean términos no conocidos aún. Se irán viendo a lo largo

vance de términos.

Pelegida, podemos ver todo el contenido de la Base de datos moviéndonos a lo largo de ella mediante las flechas de cursor del control Data. Todo ello sin escribir una línea de código tal y como habíamos prometido. E Etres tipos de objetos Recordset. El control Data le permite ir de registro en registro y presentar y manipular los datos de los en controles enlazados. Sin un control Data, los controles enlazados con datos de un formulario no pueden tener acceso automáticamente a los datos. Los controles enlazados solamente pueden tener acceso a un control Data si mismo Formulario. Edel curso, pero no queda otro remedio mas que comenzar a utilizarlos. Se irán haciendo avances de estos términos, que serán explicados en profundidad en su momento. AObjeto Recordset (conjunto de registros) Es un conjunto lógico de registros. Los tres tipos de objetos Recordset son Dynaset, (Permite la lectura y escritura de un registro) Snapshot (Realiza una lectura instantánea de los registros, no permitiendo modificarlos) y Table. (Representación en el código de una tabla base que puede utilizarse para agregar, modificar o eliminar registros de una sola tabla). Controles enlazados Son los controles que pueden presentar directamente datos de uno o varios campos de una Base de Datos. Los controles DBList, DBCombo y DBGrid tienen la posibilidad de presentar un conjunto de registros cuando se asocian con un control Data. Los controles CheckBox, TextBox, Label, Picture, Image, ListBox y ComboBox también son controles enlazados con datos y pueden asociarse a un único campo de un Recordset administrado por un control Data. La mayoría de las operaciones de acceso a datos se pueden realizar usando el control Data sin escribir ningún código. Los controles enlazados con un control Data presentan de forma

Instructor : Ing. Francisco Torres Hernández 57

Page 58: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

automática los datos de uno o más campos del registro actual o, en algunos casos, de un conjunto de registros a ambos lados del registro actual. El control Data realiza todas las operaciones sobre el registro actual. Avance de términos Registro Actual. Un registro es un conjunto completo de campos. Una base puede tener muchos registros, pero el “puntero” de la base de datos apunta a un único registro en cada momento. Ese registro al que apunta el puntero se llama registro actual. Si el control Data recibe instrucciones de moverse a un registro diferente, todos los controles

na vez iniciada la aplicación, Visual Basic usa las propiedades del control Data para abrir la base

VariableTipoRecordset =Data1.Recordset

si tenemos otro control Data en la aplicación (Puede estar en otro formulario) siempre podemos

Set Data2.Recordset = VariableTipoRecordset

bviamente el ámbito de VariableTipoRecordset debe permitir que se vea en los formularios

uando se usa un control Data para crear un objeto Recordset o cuando se crea un objeto

l párrafo anterior, tomado casi literalmente de la información de Microsoft, exige al menos una

crea un Recordset mediante un control Data, se leen inmediatamente todos los

enlazados pasan automáticamente los cambios al control Data para ser guardados en la base de datos. El control Data se sitúa después en el registro requerido y pasa los datos del registro actual a los controles enlazados donde son presentados. Esto significa que se pueden modificar los datos de una base de datos simplemente cambiando los datos en los controles enlazados que lo permitan, y moviendo el puntero de la base de datos, es decir, cambiando el registro actual. Ude datos seleccionada, abrir un objeto Database y crear un objeto Recordset. Las propiedades Database y Recordset del control Data hacen referencia a los objetos Database y Recordset recién creados que pueden ser manipulados por el control Data. Siempre podremos conocer el Recordset usado por el control Data leyendo esa propiedad Yhacer que el recordset de este segundo control Data sea igual al del primero (Odonde está Data1 y Data2 CRecordset en el código y se asigna al control Data, el motor de base de datos Jet de Microsoft puebla automáticamente el objeto Recordset. Como resultado, los marcadores (y en los objetos Recordset de tipo snapshot, los datos del conjunto de registros) se guardan en la memoria local; el usuario no necesita manipular el control Data y no es necesario invocar el método MoveLast en el código para conocer el número total de registros. Los bloqueos de página usados para crear el Recordset se liberan más rápidamente, haciendo posible que otros objetos Recordset accedan a los mismos datos. Los objetos Recordset creados en el código pero que no se asignan a un control Data no son poblados automáticamente por el motor Jet. Se deben poblar desde el código. Eexplicación. Cuando se registros que forman parte de ese Recordset (Recuerde que un Recordset es un conjunto de registros). De esta forma, en una base que estuviera compartida por varios usuarios a través de una Red de Area Local (RAL) un usuario leería todos los datos en el mismo momento de la creación del Recordset por el control Data, llevaría esos datos a su memoria RAM y no volvería a estorbar en la base de datos (cuando un usuario de una RAL lee un dato en una BD, bloquea esta BD mientras dura su lectura y no pueden acceder a ella otros usuarios) Si el Recordset se crea por código, se lee solamente un registro (la base se bloquea en el momento de la lectura e inmediatamente se libera), y cuando se le pide otra operación (p.e. que avance un registro) vuelve a bloquear la BD, lee ese registro y la desbloquea. En principio el leer el Recordset de una vez

Instructor : Ing. Francisco Torres Hernández 58

Page 59: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

parece que tiene ventajas en aquellas instalaciones que tienen una base de datos compartida. Todo ello a un precio. Ocupar mas memoria RAM en cada uno de los PCs de los usuarios. Esta limitación hace en algún caso que no sea posible utilizar un control Data por falta de memoria RAM en los puestos de usuario. El control Data puede manipularse con el mouse, moviéndose de registro en registro o al principio

bservación muy importante

l control Data crea un objeto Database y un objeto Recordset automáticamente. Estos objetos de

Data1.Database Data1.Recordset

l objeto Database creado por un control Data no se cierra aunque se cambie la propiedad

Data1.Database.Close Data1.Recordset.Close

sta observación debe ser tenida muy en cuenta sobre todo cuando el control Data abre la Base

bjetos para acceso a datos

os objetos para acceso a datos Database y Recordset creados por el control Data tienen cada

cordset mueve el registro actual al siguiente

Data1.Recordset.MoveNext

l control Data puede crear cualquiera de los tres tipos de objetos Recordset (Dynaset, Snapshot,

ota. Las constantes usadas para requerir un tipo específico de Recordset cuando se usa un

o al final del Recordset. El control Data no permite que el usuario se pase de los límites del Recordset usando el mouse. No se puede mover el enfoque al control Data. O Eacceso a datos son idénticos a los creados mediante código, y tienen las mismas propiedades y métodos. Podemos referirnos a ellos usando el nombre del control Data seguido del nombre del objeto (Database o Recordset). Por ejemplo : EDatabaseName del control Data. Lo mismo ocurre con el objeto Recordset. Solamente podemos cerrarlos utilizando el método Close : Ede Datos de forma exclusiva, o cuando tenemos que hacer una operación con la Base de Datos que exija que esté cerrada. Por ejemplo, el método CompactDatabase y otros métodos que veremos mas adelante. O Luno sus propiedades y métodos propios y se pueden escribir procedimientos que usen estas propiedades y métodos para manipular los datos. Por ejemplo, el método MoveNext de un objeto Reregistro del Recordset. Para invocar este método, se podría usar el siguiente código:

ETable) Si no se indica el tipo a crear, se crea un Recordset de tipo Dynaset. Ncontrol Data son diferentes de las constantes usadas para determinar el tipo de Recordset creado o que se va crear usando el método OpenRecordset. Para seleccionar un tipo específico de Recordset, establezca la propiedad RecordsetType del control Data a: Tipo de Recordset Valor Constante control Data Constante OpenRecordset Table 0 vbRSTypeTable dbOpenTable

Instructor : Ing. Francisco Torres Hernández 59

Page 60: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Dynaset 1 vbRSTypeDynaset dbOpenDynaset Snapshot 2 vbRSTypeSnapshot dbOpenSnapshot Diferencias entre la Edición Standard y la Edición Profesional de Visual Basic En cuanto al acceso a datos, la diferencia principal entre las ediciones Estándar y la Profesional de Visual Basic es la capacidad de crear nuevos objetos para acceso a datos. En la edición Estándar NO se pueden declarar en el código (con la palabra clave Dim) variables como objetos para acceso a datos. Esto quiere decir que sólo el control Data puede crear objetos Database y Recordset. En la edición de Visual Basic, se puede crear un nuevo objeto Profesional y Empresarial SIRecordset y asignarlo a la propiedad Recordset del control Data. ¡Esta diferencia ha llevado a la locura a muchos alumnos y programadores usando la versión de su casa y la de su empresa o centro escolar ! En la pequeña aplicación realizada al comienzo de este tema ha visto que los controles enlazados

ando se usa el control Data es la posibilidad de presentar una consulta

pida una consulta utilizando una consulta ya creada en Access que introduciendo

ente en

“Autores”

a datos permiten visualizar e introducir datos en la base de datos a través del control Data. Efectivamente, no tendría sentido poner un control data sin enlazarlo a otros controles para que estos nos sirvan de elementos de presentación y captura de datos. Veremos mas adelante en este capítulo los controles enlazados a datos.

onsultas almacenadas C

tra opción importante cuOrealizada previamente en Access. Si se ha creado previamente una consulta, el control Data nos mostrará esa consulta como si se tratase de una tabla más de la base de datos, al desplegar la lista de tablas para cubrir la propiedad RecordSource. Puede por lo tanto presentar solamente los campos que necesite en su aplicación, tomados de una tabla (o de varias tablas si ha establecido las relaciones oportunas) y de esta forma su aplicación va a trabajar más rápido que si tuviese que seleccionar esos campos mediante una instrucción SQL Para presentar una consulta, establezca la propiedad RecordSource del control Data al nombre de esa consulta (En vez de poner el nombre de una tabla, ponga el nombre de la consulta). Esto no puede hacerse si la consulta contiene parámetros. Esto le ocurre cuando la consulta se ha creado partiendo de los datos de otra consulta.

s mucho más ráEla consulta en SQL. La razón es muy sencilla. Al crear una consulta es Access quien crea una especie de “tabla nueva” en la propia base de datos. Esta tabla nueva no contiene datos, sino referencias a registros de una tabla. Por lo tanto, el motor de bases de datos se limita a recorrer esa “tabla nueva”, tomar el número del registro que debe presentar, ir a ese registro y tomar el dato que contiene. Si lo que hace es una consulta SQL, se debe obtener la información registro a registro según las condiciones establecidas en la cláusula SQL. Esta segunda opción tarda logicamente más. Y si está leyendo la base de datos a través de una red de área local, la ocupación de esta red es mucho menor si el recordset se crea con la consulta de Access.

stamos hablando de una consulta SQL establecida en el control Data. ¿Dónde? JustamEla propiedad RecordSource del control data. Hasta ahora habíamos puesto en esa propiedad el nombre de una tabla o de una consulta ya hecha en Access. Si en vez del nombre de la tabla ponemos una consulta SQL, la cosa también funciona: Con una Tabla

ata1.RecordSource = D

on una consulta SQL C

Instructor : Ing. Francisco Torres Hernández 60

Page 61: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Data1.RecordSource = “Select * From Autores Where Apellidos = ‘Cervantes Saavedra’”

Apellidos ea igual a “Cervantes Saavedra” Funciona, pero para averiguar el número de registros que tienen

gramarse para que se ajuste automáticamente a la parte superior inferior de su formulario primario usando la propiedad Align. En cualquier caso, el control Data

Flat y 3-D

ondo de la parte intermedia del control

dministración de BOF/EOF

establecen el comportamiento del control Data cuando ga al principio o final de los registros. En esos casos se produce el BOF y EOF respectivamente.

mediatamente anterior al primero (No es un juego de palabras). Este registro será el -1.

del Data cuando nos hemos asado de registros por abajo. Tiene las opciones MoveFirst (se mueve al primer registro) o BOF

n establece el comportamiento del control Data cuando se sobrepasa el ltimo registro. Podemos indicarle que se mueva al último registro (MoveLast), que se quede

l.

l control Data el tipo de base e datos a la que va a conectarse. Admite todas las bases enumeradas al principio de este

Esta consulta obtiene de la tabla Autores, solamente los registros en los que el campo sesos apellidos deberá recorrerlos todos, comprobar si son iguales a los expresados en la sentencia SQL y en caso afirmativo pasarlos al recordset creado. Si se hubiera creado una consulta previamente en Access, y pusiésemos el nombre de la consulta en la propiedad RecordSource del control Data, éste iría directamente a los registros que gozan de tan ilustres apellidos, ya que Access habría hecho una tabla con los números de los registros que cumplen esa condición (esa tabla no contiene los datos, sino el número de los registros que los contienen), el control data leería esos números e iría a los registros indicados en esos números, evitando de esta forma tener que leer el contenido del campo Apellidos del resto de los registros. De cualquier forma, si la base de datos está en el mismo ordenador que la aplicación, esto empieza a ser importante cuando trate tablas con muchos registros. Si está en una red de área local no hace falta tener muchos registros para comprobar que se ralentiza la aplicación. Propiedades del control Data Align El control Data puede prooajusta su tamaño horizontal al de su formulario primario cuando el tamaño de éste cambia. Esta propiedad permite situar un control Data en un formulario MDI sin requerir un control Picture que lo contenga. Appearance Backcolor Color de f A Las propiedades BOFAction y EOFActionlle BOF (Begin Of File). Se produce el BOF cuando el control Data se posiciona sobre el registro inEOF (End Of File) Se produce la condición EOF cuando el control Data se posiciona en el registro inmediatamente posterior al último. Este registro será también el -1. La propiedad BOFAction permite seleccionar el comportamiento p(se queda donde está) La propiedad EOFActioúdonde está (EOF), o que introduzca un nuevo registro (AddNew) Caption El nombre que figurará en la parte intermedia del contro Connect Muy Importante. En esta propiedad debemos indicarle adcapítulo.

Instructor : Ing. Francisco Torres Hernández 61

Page 62: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

DatabaseName En esta propiedad se le indica el nombre (Con su Path) de la base de datos a la ue debe conectarse. Para facilitar la búsqueda de la base de datos, haciendo click en esta

ad evuelve una referencia a un objeto Database subyacente de n control Data.

ariable = nombredelcontroldata.Database

Data en las propiedades DatabaseName, xclusive, ReadOnly y Connect del control.

Database con la propiedad Database de un control

crear un objeto Recordset y pasarlo a la propiedad Recordset de un

qpropiedad en la caja de propiedades, podemos sacar un cuadro de diálogo haciendo click de nuevo en los tres puntos que aparecen a la derecha de la propiedad. El cuadro de diálogo seleccionará directamente las extensiones de los ficheros de bases de datos acordes con el tipo de base de datos seleccionada en la propiedad Connect. Database (Solo en ejecución) Esta propied es sólo de lectura. Du Sintaxis V El objeto base creado por el control Data se basa ELos objetos Database tienen propiedades y métodos que puede utilizar para administrar los datos. Puede utilizar cualquier método de un objetoData, como Close y Execute. También puede examinar la estructura interna de la Database empleando su colección TableDefs y, a su vez, las colecciones Fields e Indexes de objetos TableDef individuales. NOTA. Aunque puedecontrol Data, no puede abrir una base de datos y pasar el objeto Database recién creado a la propiedad Database del control Data. DragIcon, DragMode , Enabled Igual que todos los controles.

tablece un valor que indica el tipo del origen de datos (Motor Jet u ODBCDirect) que e usan en el control Data.

ontrolData.DefaultType = 1

ar lo l Motor Jet) Pueden usarse también las onstantes dbUseODBC o dbUseJet respectivamente

olo lectura en tiempo de ejecución. Devuelve un valor que indica el estado de modificación del

Variable = NombreDelControlData.EditMode

nguna operación de modificación. bEditInProgress Se ha invocado el método Edit y el registro actual se encuentra en el

istro nuevo que aún no se ha guardado en la base de

La propiedad EditModpredeterminada de un c ata, o cuando no se utiliza un control Data en Visual Basic Edición

DefaultType Devuelve o ess Sintaxis NombreDelC Puede tom s valores 1 (Usa ODBCDirect) y 2 (Usa ec EditMode Sregistro actual. Sintaxis Variable tomará uno de los siguientes valores : dbEditNone No se está realizando nid

búfer de copia. dbEditAdd Se ha invocado el método AddNew y el registro actual del búfer de

copia es un regdatos. e es especialmente útil cuando se desea partir de la funcionalidad ontrol D

Instructor : Ing. Francisco Torres Hernández 62

Page 63: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

profesional. Puede comprobar el valor de la propiedad EditMode y el del parámetro acción del procedimiento del evento Validate para determinar si se debe invocar el método Update. También puede comprobar si el valor de la propiedad LockEdits es True y el de EditMode es dbEditInProgress para determinar si la página de datos actual se encuentra bloqueada. Exclusive Devuelve o establece un valor (True / False) que indica si la base de datos está

bierta para acceso de un único usuario o de múltiples usuarios.

ter, Name, igual que el resto de s controles.

piedad característica de los controles que tienen la propiedad Align. Establece un alor que determina si se muestra un control que puede alinearse cuando un objeto activo del

ecordset de la propiedad Recordset del control Data. Puede ponerse en el cuadro de

s no pueden realizar cambios en registros del Recordset.

).

8 dbAppendOnly o puede

condición de unión.

64 dbSQLPassThrough cción SQL en la propiedad RecordSource, envía la instrucción SQL a una base

su

256 dbForwardOnly movimiento permitido es MoveNext. Esta opción

con el

512 dbSeeChanges d edita.

Para establecer mas de un val ta con sumar sus valores. También puede stablecer más de un valor para esta propiedad, combinando opciones sumando valores entre sí.

Para de ico, puede utilizar el operador And. Por jemplo, para averiguar si el Recordset está abierto para acceso de sólo lectura, podría usar este

a Font, ForeColor, Height, Index, Left, MouseIcon, MousePoinlo Negotiate Provformulario muestra una o más barras de herramientas. No está disponible en tiempo de ejecución. Options Devuelve o establece un valor que especifica una o más características del objeto Rpropiedades o en tiempo de ejecución. Puede tomar los siguientes valores o nombres de constantes (estos nombres solo si los introduce en tiempo de ejecución) 1 dbDenyWrite En un entorno multiusuario, otros usuario

2 dbDenyRead En un entorno multiusuario, otros usuarios no pueden leer registros (sólo Recordset de tipo tabla

4 dbReadOnly No se pueden realizar cambios en registros del Recordset. Puede agregar nuevos registros al Recordset, pero nleer los registros existentes.

16 dbInconsistent Las actualizaciones pueden aplicarse a todos los campos del Recordset, aunque infrinjan la

32 dbConsistent (Predeterminado) Las actualizaciones sólo se aplican a los campos que no infringen la condición de unión.

Cuando se utilizan controles Data con una instru

de datos ODBC, como SQL Server o Oracle, para procesamiento. El Recordset es un desplazamiento sólo hacia adelante. El único método deno puede utilizarse en objetos Recordset manipulados control Data. Genera un error interceptable si otro usuario está cambiando datos que uste

or de los descritos, bas

ePor ejemplo, para establecer dbReadOnly y dbInconsistent puede utilizar este código:

Data1.Options = dbAppendOnly + dbInconsistent

terminar si la propiedad contiene un valor específecódigo:

If Data1.Options And dbReadOnly Then...

Instructor : Ing. Francisco Torres Hernández 63

Page 64: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Si camb cución, deberá utilizar el método Refresh para ue el cambio sea efectivo.

blece un valor que determina si la Database del control está abierta ara acceso de sólo lectura.

ce un valor que indica el tipo de objeto Recordset que desea que cree el control ata.

lores o nombre de la constante que puede adoptar son los siguientes:

vbRSTypeDynaset (Predeterminado) Un Recordset de tipo hoja de respuestas

no e ree el Recordset, se creará un ecordset de tipo hoja de respuestas dinámica. (Dynaset)

ecordset

establece un objeto Recordset definido por las propiedades de un control Data o por n objeto Recordset existente.

piedades de un objeto Recordset, propiedades que son en todo plicables al Recordset del control Data.

n conjunto de registros. Si las propiedades Connect, atabaseName, Options, RecordSource, Exclusive, ReadOnly y RecordsetType establecidas para

nga su Recordset odemos referirnos a él, por ejemplo para ir al primer registro (Data1.Recordset.MoveFirst),

ual

ropiedades citadas al principio que cambien el Recordset, es ecesario volver a crearlo. Para ello basta con utilizar el Método Refresh. (Data1.Refresh)

lece la tabla, el objeto QueryDef (Consulta) o la instrucción SQL subyacente para n control Data. Esta propiedad puede fijarse en el cuadro de propiedades del control data, (el

ia la propiedad Options en tiempo de ejeq ReadOnly Devuelve o estap RecordsetType Devuelve o estableD Los va 0 vbRSTypeTable Un Recordset de tipo tabla. 1

dinámica. 2 vbRSTypeSnapshot Un Recordset de tipo instantánea.

Si specifica un RecordsetType antes de que el control Data cR R Devuelve o u Veremos mas adelante las proa El Recordset es como se adelantó, uDel control Data son válidas, se crea un Recordset automáticamente basándose en dichas propiedades. Ese será el Recordset del control Data. Pero también puede crearse previamente un Recordset mediante la instrucción OpenRecordset y forzar que el Recordset del control Data sea justamente ese mediante la instrucción Set Data1.Recordset = MiRecordset Sea cual fuera la forma de crearlo, a partir del momento en que el Data tepavanzar un registro (Data1.Recordset.MoveNext), al anterior (Data1.Recordset.MovePrevious) ir al último (Data1.Recordset.MoveLast), añadir un registro (Data1.Recordset.AddNew), guardar los cambios en la Base de Datos (Data1.Recordset.Update), o borrar el registro act(Data1.Recordset.Delete) Si se cambia alguna de las pn RecordSource Devuelve o estabucaso mas usado) o introducirse como código. En los dos primeros casos, lo normal es introducir el nombre de una tabla o una consulta de las existentes en la base de datos especificada en la

Instructor : Ing. Francisco Torres Hernández 64

Page 65: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

propiedad DatabaseName, nombres que se pueden elegir desplegando la lista que se obtiene haciendo click sobre la flecha que aparece al lado de la casilla de esta propiedad. Observe que en la lista desplegada figuran los nombres de las tablas y de las consultas que tiene la Base de Datos elegida en la propiedad DatabaseName. Ni que decir tiene que para poder introducirla de esta forma es necesario fijar previamente la propiedad DatabaseName. Puede introducirse en tiempo de ejecución mediante código con la siguiente expresión :

bre de una Tabla o na Consulta, de las que componen la base de datos especificada en la propiedad

d RecordSource como el nombre de una consulta existente en la base de atos, todos los campos devueltos por la consulta serán visibles a los controles enlazados

todos s campos devueltos por la consulta a SQL serán visibles a los controles enlazados adjuntos al

ambiar el valor de la propiedad RecordSource en tiempo de ejecución, deberá tilizar el método Refresh para activar el cambio.

ne un valor válido para su propiedad DataField. i cambia el valor de la propiedad RecordSource de un control Data y, a continuación, utiliza

as Propiedades Tag, Top, Visible, WhatThisHelpID, Width, igual que el resto de los controles.

inciden directamente en el tratamiento de bases de datos. No e comentan los métodos Drag, Move y ZOrder que son idénticos a los del resto de controles)

plicable al control Data. Veremos que también es aplicable a otros objetos de cceso a datos (QueryDef). El método Refresh no puede utilizarse con colecciones que no

NombreDelControlData.RecordSource = “NombredelaTabla Donde NombredelaTabla es una expresión de cadena que especifica el nomuDatabaseName, o una consulta SQL válida que utiliza sintaxis apropiada para la base de datos especificada en la propiedad DataBaseName. La propiedad RecordSource especifica el origen de los recursos accesibles a través de controles enlazados del formulario. Si establece la propiedad RecordSource como el nombre de una tabla existente en la base de datos, todos los campos de esa tabla serán visibles a los controles enlazados adjuntos a este control Data. El orden de los registros recuperados lo establece el objeto Index que selecciona mediante la propiedad Index del Recordset. Si no establece la propiedad Index, los datos se devolverán sin ningún orden concreto. Si establece la propiedadadjuntos al control Data. El orden de los registros recuperados lo establece la consulta Si en la consulta no se ha especificado un orden, los datos se devolverán sin ningún orden concreto. Si establece la propiedad RecordSource como una instrucción SQL que devuelve registros, locontrol Data. Esta instrucción puede incluir una cláusula ORDER BY para cambiar el orden de los registros devueltos por el Recordset creado por el control Data o una cláusula WHERE para filtrar los registros. Después de cu Nota. Asegúrese de que cada control enlazado tieSRefresh, el Recordset identificará el nuevo objeto. Esto puede invalidar los valores de DataField de controles enlazados y producir un error interceptable. L METODOS DEL CONTROL DATA (Se explican aquí los métodos que s Método Refresh De momento es aasean persistentes, como Databases, Recordsets o Workspaces.

Instructor : Ing. Francisco Torres Hernández 65

Page 66: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Actualiza los datos del recordset del control data. Imagínese que el control data accede a una ase de datos compartida. Mediante este método actualizamos el contenido del recordset del Data

NombredelcontrolData.Refresh

Puede brir o reabrir la base de datos (si an variado las propiedades DatabaseName, ReadOnly, Exclusive o Connect) y volver a generar

tes en los controles enlazados a datos vinculados al control Data.

zados sus valores originales, por ejemplo uando un usuario modifica los datos y luego decide cancelar los cambios.

sibles valores que se

tos los valores actuales de los controles enlazados.

tual de los controles enlazados en la base e datos. Los cambios introducidos en los controles enlazados a datos se pasan a la base de

vulnere las stricciones de integridad referencial, o que la página que contiene el registro esté bloqueada, o

dos del Control Data. Este control tiene su Recordset, y el Recordset del ontrol Data tiene sus métodos, idénticos a los de un Recordset creado por código.

duce solamente como resultado de un error de acceso a datos que tiene lugar cuando no stá ejecutando código Visual Basic. Lo explicamos.

ormulario que lo contiene, abriendo la base

by por lo tanto los datos presentados a través de los controles enlazados. El método Refresh también se utiliza para cerrar y volver a generar el objeto Recordset o las estructuras de datos creadas por un control Data.

Sintaxis

utilizar el método Refresh sobre un control Data para ahel objeto Recordset indicado por la propiedad Recordset del control. Método UpdateControls Actualiza los datos presen Sintaxis Nombredelcontroldata.UpdateControls Utilice este método para restablecer en los controles enlacEste método produce el mismo efecto que hacer actual de nuevo al registro actual, excepto en que no se produce ningún evento ni introduce en la Base de Datos los pohubiesen cambiado en los controles enlazados. Método UpdateRecord Guarda en la base de da Sintaxis NombredelcontrolData.UpdateRecord Puede utilizar este método para guardar el contenido acddatos al cambiar el registro actual, bien mediante código (Data1.Recordset.MoveNext, p.e.) o usando las flechas del control data, o cambiando el registro actual en un DBGrid. Sin embargo hay circunstancias en las que no es apropiado hacer esto. Mediante el método UpdateRecord introducimos los cambios en la BD. Este método no desencadena el evento Validate. En algunos casos, la actualización puede no tener lugar, debido a que la operación reque la base de datos u objeto Recordset no sean actualizables, o a que el usuario no cuente con el permiso adecuado para la operación. En cualquiera de estas circunstancias, se producirá un error interceptable. Estos son los métoc EVENTOS DEL CONTROL DATA Error Se proe El control data carga los datos durante la carga del f

Instructor : Ing. Francisco Torres Hernández 66

Page 67: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

indicada en su propiedad DataBaseName. Imagínese que no existe esa base de datos en el disco.

nto Error del control Data se ejecuta cada vez que ocurre un error por una maniobra e este tipo, y pasa el código de error como parámetro. Analizando el código de error podemos

ro de diálogo Abrir si no se ha podido encontrar la base de datos specificada en la propiedad DataBaseName del control Data después de haber terminado el

rror (DataError As Integer, Response As Integer) elect Case DataError

rror 3024

g1.ShowOpen

n

espués de que un registro se convierte en el registro actual.

Donde objeto =uando se carga un control Data, El primer registro de su objeto Recordset se convierte en el

position. Cuando un usuario haga clic en uno de los

to se puede usar para realizar cálculos basándose en los datos del registro actual o para ambiar el formulario en respuesta a los datos del registro actual.

e antes de que un registro diferente se convierta en el registro actual; antes del método pdate (excepto cuando los datos se guardan con el método UpdateRecord); y de los métodos

s Integer,] acción As Integer, guardar As Integer)

dice = Indice del control Data dentro de una matriz de controles (Si ha lugar) peración que ha producido el evento, como se describe mas

e mas adelante.

En ese caso no se producirá ningún interceptable ya que no se ejecuta ningún código escrito. Tampoco se ejecuta ningún código escrito cuando el usuario hace click en uno de los botones del control data. El procedimiedescribir código en este procedimiento para paliar el error. La ayuda de VB tiene un buen ejemplo del uso de este procedimiento. Este ejemplo presenta un cuadeevento Form_Load. Private Sub Data1_ES 'Si no se ha encontrado el archivo de base de datos se produce el e Case 3024 'Presentar un cuadro de diálogo Abrir. CommonDialoEnd Select End Sub Repositio Se produce d

Private Sub Objeto_Reposition()

Nombre del control Data Cregistro actual, provocando el evento Rebotones del control Data, moviéndose de registro en registro o si se usa uno de los métodos Move del objeto Recordset asociado al control data, como MoveNext, MoveFirst, MovePrevious, los métodos Find, como FindFirst, FindNext, o cualquier otra propiedad o método que cambie el registro el actual, se produce el evento Reposition después de que cada registro se convierta en el actual. Este evenc Validate Se producUDelete, Unload o la operación Close. Private Sub objeto_Validate ([ índice A objeto = Nombre del control Data ínacción = Un entero que indica la o

adelante guardar = una expresión booleana que especifica si los datos asociados han cambiado, como

se describ

Instructor : Ing. Francisco Torres Hernández 67

Page 68: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Acción

Cancela la operación cuando se sale del procedimiento Sub.

st2 vbDataActionMovePrevious s.

dateRecord).

ha sido definida.

han cambiado. alse Los datos asociados no han cambiado.

as comprobaciones sobre los registros que se van escribir en la base de datos.

ara mayor detalle de este evento.

ONTROLES ENLAZADOS A DATOS

s que pueden presentar datos de una base de datos, través de un control Data. Los controles enlazados a datos permiten crear aplicaciones con

, que es la propiedad donde e debe poner el nombre del control Data asociado a ellos. Existen en Visual Basic trece controles

ceso a los datos de las bases a través de controles nlazados de un formulario. Crea y administra los objetos Database y Recordset para su uso por

Se utiliza para obtener una combinación enlazada formada por un cuadro de lista y un uadro de texto. La lista puede llenarse automáticamente a partir de un control Data. El usuario

puede tomar estos valores : 0 vbDataActionCancel

1 vbDataActionMoveFir Método MoveFirst. Método MovePreviou

3 vbDataActionMoveNext Método MoveNext. 4 vbDataActionMoveLast Método MoveLast. 5 vbDataActionAddNew Método AddNew. 6 vbDataActionUpdate Operación Update (no Up7 vbDataActionDelete Método Delete. 8 vbDataActionFind Método Find. 9 vbDataActionBookmark La propiedad Bookmark no10 vbDataActionClose Método Close. 11 vbDataActionUnload El formulario se va a descargar. Los valores de guardar son: True Los datos asociados F El evento Validate se usa para realizar las última Vea la ayuda de Visual Basic p C Los controles enlazados a datos son aquelloaacceso a datos con muy poco código, o incluso ninguno. Para utilizar cualquiera de estos controles enlazados conectables a datos debe incluir uno o más controles Data en un formulario. El control Data establece un enlace entre la base de datos y los controles enlazados para la manipulación de los datos. El control Data que sirve de enlace entre la Base de Datos y los controles enlazados debe estar obligatoriamente en el mismo formulario que los controles. Los controles asociados a datos tienen todos la propiedad DataSourcesenlazados a datos, además del control Data : Data Ya comentado, se utiliza para tener aceparte de los controles enlazados. Requerido para su uso con todos los demás controles enlazados. DBCombo cpuede elegir un elemento de la lista o introducir un valor en el cuadro de texto. Puede utilizarse para proporcionar acceso de lectura / escritura a un campo de texto específico seleccionado en la lista.

Instructor : Ing. Francisco Torres Hernández 68

Page 69: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

DBList Se usa para mostrar una lista generada a partir de un control Data en la que el usuario uede elegir un elemento. La lista puede rellenarse automáticamente desde un control Data, y

id Se utiliza para mostrar a la vez todos los registros del recordset del control Data. El BGrid se rellena automáticamente con todos los registros, y muestra todos los campos del

ra ofrecer acceso e sólo lectura a un campo de texto específico.

el usuario puede introducir o modificar. Puede tilizarse para proporcionar acceso de lectura / escritura a un campo de texto específico.

cilla para dicar si algo es verdadero o falso, o para mostrar varias opciones entre las que el usuario pueda

btener una combinación de un cuadro de lista y un cuadro de texto. a lista se rellena con el método AddItem. El usuario puede elegir un elemento de la lista o

ento. La lista e rellena con el método AddItem. Puede usarse para proporcionar acceso de lectura / escritura a

icono o un meta-rchivo en un formulario. Puede utilizarse para proporcionar acceso de lectura / escritura a un

en gráfica de un mapa de bits, un icono o un meta-archivo n un formulario. Las imágenes mostradas en un control Image utilizan menos recursos que las de

lazado a datos de reciente incorporación. Apareció con la versión de VB y es un control parecido al DBGrid, pero con algunas ventajas y otros inconveniente. En

so del Administrador Visual de Datos

Agregar una Base de datos

ppuede proporcionar acceso de lectura / escritura a un campo de texto específico seleccionado en ella. DBGrDrecordset de control Data, formando una cuadrícula con filas y columnas. El usuario puede elegir un elemento de la cuadrícula para variar el valor en ese campo y registro o introducir un nuevo registro. El hecho de colocarse sobre un determinado registro de la cuadrícula, fuerza a ese registro a convertirse en el registro actual del control Data al que está asociado. Label Se usa para el texto que el usuario no debe modificar. Puede utilizarse pad TextBox Se utiliza para almacenar texto queu CheckBox Se utiliza para crear un cuadro que el usuario puede elegir de forma seninelegir más de una. Puede utilizarse para proporcionar acceso de lectura / escritura a un campo booleano o de bit específico. ComboBox Se utiliza para oLintroducir un valor en el cuadro de texto. Puede utilizarse para proporcionar acceso de lectura / escritura a un campo de texto seleccionado en la lista. Consulte el control DBCombo ListBox Se utiliza para mostrar una lista en la cual el usuario puede elegir un elemsun campo de texto específico seleccionado en la lista. Consulte el control DBList PictureBox Se usa para mostrar una imagen gráfica de un mapa de bits, un acampo de imagen o binario específico. Image Se utiliza para mostrar una imagelos controles PictureBox. Puede usarse para proporcionar acceso de lectura / escritura a un campo de imagen o binario específico. MSFlexGrid Es un control en5este caso, estando asociado a un control Data, el MSFlexGrid solamente permite leer datos, no podemos variar el contenido de ningún registro. Tampoco se mueve el registro actual del control Data cuando seleccionamos otra fila del MSFlexGrid.

U

1. En el menú complementos selecciona Administrador Visual de Datos

Instructor : Ing. Francisco Torres Hernández 69

Page 70: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

2. Una vez que se cargue la Ventana elija del mede Datos

nú archivo la opción nuevo y después Base

3. Escriba la ruta y el nombre de la base de datos 4. Procederemos a añadir una tabla a la Base de datos.

Agr rega una Tabla 1. Una Vez creada la Base de datos(o abierta).

. Pulse clic con el botón derecho de las propiedade2 s de la base de datos y pulse el comando Nueva Tabla

3. Se mostrará la siguiente ventana, donde deberá asignársele un nombre de tabla

Instructor : Ing. Francisco Torres Hernández 70

Page 71: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

4. Pulse el botón agregar campo para asignar los campos de la tabla deseada. Repita este

proceso tantas veces como campos necesite. 5. Cuando la tabla tenga los campos necesarios pulse el botón Generar la tabla

Agregar un campo Para anexar un campo deberá estar en la ventana estructura de tabla. (Vea la imagen anterior. 1. Pulse el botón Agregar campo 2. En la ventana siguiente escriba el nombre del campo.

Instructor : Ing. Francisco Torres Hernández 71

Page 72: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

3. Seleccione un tipo de datos para el campo. 4. Pulse la casilla de verificación [Necesary] en el caso de que el valor de este campo

siempre deba existir. 5. Pulse el botón Aceptar para agregar el campo a la estructura de la tabla.

Instructor : Ing. Francisco Torres Hernández 72

Page 73: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Ejercicio 1 Se necesita una base de datos que permita almacenar los nombres y los números de teléfonos de varios contactos, además se necesitará una aplicación que permita consultarla, agregar registros, eliminarlos y editarlos. Considere que la empresa no cuenta con una licencia de Access y será necesario utilizar el Administrador visual de Datos y Visual Basic 6.0 Para la creación de la aplicación. La estructura de la base de datos deberá ser la siguiente

NOMBRE DE LA BASE DE DATOS: Telefonos.mdb

NOMBRE DE LA TABLA: Telefonos

NOMBRE DEL CAMPO TIPO DE DATOS TAMAÑO INDEXADO

Id_telefono Long (Autoincremental) SI

Nombre Texto 50 Si (Con duplicados)

Direccion Texto 50 No

Telefono Texto 50 No

Notas Texto 240 No Permitir Longitud cero 1. Utilizando el Administrador Visual de Datos construya la siguiente base de datos. 2. Guarde la Base de datos en el mismo directorio en el que se encontrará su proyecto de

Visual Basic. Se recomienda C:\CursoVB\Datos 3. Antes de cerrar el administrador Visual de datos cerciorase de que los nombres de

campos son los mismos y que se han dejado sin acentos.

Instructor : Ing. Francisco Torres Hernández 73

Page 74: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

4. En un nuevo formulario anexe .

• 1 Etiqueta • 1 Control Image • 2 Control Frame • 12 Botones de opción.

Vea la imagen siguiente para conocer los nombres de los controles y determinar las propiedades visuales.

El formulario debe verse en estos momentos de la siguiente manera. Configure las propiedades que considere necesarias pero utilice los mismos nombres de Objetos.

Instructor : Ing. Francisco Torres Hernández 74

Page 75: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

cmdBorrar

cmdBuscar

cmdCancelar

cmdEditar

cmdGuardar

cmdNuevo

cmdRefrescar

cmdSalir

cmdInicio

cmdAtras

cmdAdelante

cmdFin

4. Procederemos a agregar los controles que servirán para mostrar información de la base de datos.

txtId_Telefono

txtNombre

TxtDireccion

TxtTelefono

txtNotas

5. En estos momentos nuestra pantalla de Base de datos debe tener el siguiente aspecto

Instructor : Ing. Francisco Torres Hernández 75

Page 76: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

6. Verifique que los nombres de controles correspondan con los que se ilustran en las imágenes.

7. Agregue un control Data al formulario. 8. Deje el nombre de data1 al control. Establezca los parámetros necesarios para conectarse

a la base de datos y para abrir la tabla 9. Enlace cada campo de texto del formulario con su respectivo nombre de campo en la

tabla. Ejemplo el control txtid_telefono debe tener su propiedad DataSource igual a Data1, y su propiedad dataField a ID_Telefono.

10. Verifique que todos los controles se encuentran enlazados correctamente. 11. Procederemos a agregar el código de los botones de desplazamiento.

Boton CmdInicio

Boton CmdAtras

Instructor : Ing. Francisco Torres Hernández 76

Page 77: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

Botón cmdAdelante

Boton CmdFin

12. Para realizar la funcionalidad se requerirá de un procedimiento que permita inhabilitar las cajas de textos y otro para habilitarlas. Este sería el código necesario

Instructor : Ing. Francisco Torres Hernández 77

Page 78: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

13. Necesitaremos uno más que permita desactivar los botones de comandos. Estos serán útiles en las opciones de edición, borrado y guardado

14. Al iniciar el formulario deberán estar deshabilitadas las cajas y el botón Guardar.

15. El código del botón Borrar queda de la siguiente manera.

Instructor : Ing. Francisco Torres Hernández 78

Page 79: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

16. El código del botón Buscar

17. El código del botón Cancelar.

Instructor : Ing. Francisco Torres Hernández 79

Page 80: Curso, Tutorial Vb, Visual Basic , Base de Datos

Curso Visual Basic 6.0 Nivel Básico

18. El código del botón Editar un registro.

19. El código del botón Guardar

20. El código del botón nuevo

21. El código para el botón Refrescar

22. Anexe el código necesario para el botón Salir 23. Ejecute la aplicación. 24. Anexe tres registros para probar la funcionalidad del mismo 25. Si no ha cambiado la propiedad Visible del control Data1, cambie esta a False.

Instructor : Ing. Francisco Torres Hernández 80