Manual Práctico VB6 ADO

80
Prof. Jean Carlos Blanco B. Manual Práctico para diseñar Sistemas en Microsoft Visual Basic 6.0 FASE #01 - Crear carpeta de trabajo en una ruta especifica - Construir Base de Datos del Sistema Pasos básicos a la hora de diseñar su base de datos Determinar la finalidad de la base de datos. El primer paso para diseñar una base de datos es determinar su finalidad y cómo se va a utilizar. Hable con los demás usuarios que utilizarán la base de datos. Piensen detenidamente en las preguntas que desean que responda la base de datos. Realice bocetos de los informes que desea que genere la base de datos. Reúna los formularios que utiliza actualmente para registrar los datos. En cuanto determine la finalidad de su base de datos, comenzarán a surgir ideas acerca de la información que desea obtener de ella. Entonces ya puede determinar qué hechos necesita almacenar en la base de datos y a qué tema corresponde cada hecho. Estos Mi_Sistema_Version_1.0 Unidad de Almacenamiento

Transcript of Manual Práctico VB6 ADO

Page 1: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Manual Práctico para diseñar

Sistemas en Microsoft Visual Basic 6.0

FASE #01

- Crear carpeta de trabajo en una ruta especifica

- Construir Base de Datos del Sistema

Pasos básicos a la hora de diseñar su base de datos

Determinar la finalidad de la base de datos.

El primer paso para diseñar una base de datos es determinar su finalidad y cómo se va a

utilizar.

Hable con los demás usuarios que utilizarán la base de datos. Piensen

detenidamente en las preguntas que desean que responda la base de datos.

Realice bocetos de los informes que desea que genere la base de datos.

Reúna los formularios que utiliza actualmente para registrar los datos.

En cuanto determine la finalidad de su base de datos, comenzarán a surgir ideas acerca de

la información que desea obtener de ella. Entonces ya puede determinar qué hechos

necesita almacenar en la base de datos y a qué tema corresponde cada hecho. Estos

Mi_Sistema_Version_1.0 Unidad de Almacenamiento

Page 2: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

hechos se corresponden con los campos (columnas) de la base de datos y los temas a los

que pertenecen los hechos son las tablas.

Determinar los campos necesarios en la base de datos

Cada campo es un hecho acerca de un tema determinado. Por ejemplo, puede que sea

necesario almacenar los hechos siguientes acerca de los clientes: nombre de la

organización, dirección, ciudad, estado o provincia, y número de teléfono. Deberá crear un

campo independiente para cada uno de estos hechos. A la hora de determinar qué campos

son necesarios, tenga presentes estos principios de diseño:

Incluya toda la información que necesite.

Almacene información en partes lógicas que sean lo más pequeñas posibles. Por

ejemplo, los nombres de los empleados suelen repartirse en dos campos, Nombre y

Apellidos, para que sea más fácil ordenar los datos por Apellidos.

No cree campos para datos que estén formados por listas de múltiples elementos.

Por ejemplo, si en una tabla Proveedores se crea un campo Productos que contenga

una lista con los productos que se reciben del proveedor separados mediante una

coma, después será más difícil encontrar los proveedores que suministren un

producto determinado.

No incluya datos derivados ni calculados (datos que son el resultado de una

expresión (expresión: cualquier combinación de operadores matemáticos o lógicos,

constantes, funciones y nombres de campos, controles y propiedades que evalúa a

un solo valor. Las expresiones puede realizar cálculos, manipular caracteres o

probar datos.)). Por ejemplo, si tiene un campo PrecioUnitario y un campo Cantidad,

no cree otro campo que multiplique los valores de ambos.

No cree campos que sean similares entre sí. Por ejemplo, si en una tabla

Proveedores crea los campos Producto1, Producto2 y Producto3, será más difícil

encontrar todos los proveedores que suministran un producto determinado.

Asimismo, será necesario cambiar el diseño de la base de datos si un proveedor

suministra más de tres productos. Sólo necesitará un campo para los productos si

coloca dicho campo en una tabla Productos en lugar de en una tabla Proveedores.

Determinar las tablas que se necesitan en la base de datos.

Cada tabla debe contener información sobre un asunto. Su lista de campos le dará pistas

acerca de las tablas que necesita. Por ejemplo, si tiene un campo FechaContratación, su

asunto es un empleado y, por tanto, pertenece a la tabla Empleados. Puede tener una tabla

para Clientes, una tabla para Productos y una tabla para Pedidos.

Page 3: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Determinar a qué tabla pertenece cada campo

A la hora de decidir a qué tabla pertenece cada campo, tenga presentes estos principios

de diseño:

Agregue el campo a una sola tabla.

No agregue el campo a una tabla si, como resultado, la misma información va a

aparecer en varios registros de esa tabla. Si determina que un campo de una tabla

va a contener mucha información duplicada, seguramente ese campo se encuentra

en una tabla que no le corresponde.

Por ejemplo, si coloca el campo que contiene la dirección de un cliente en la tabla

Pedidos, probablemente esa información se va a repetir en más de un registro,

porque seguramente el cliente va a realizar más de un pedido. Sin embargo, si

coloca el campo de dirección en la tabla Clientes, aparecerá una sola vez. A este

respecto, una tabla de una base de datos de Microsoft Access (base de datos de

Microsoft Access: colección de datos y objetos (como tablas, consultas o

formularios), que está relacionada con un tema o propósito concreto. El motor de

base de datos Microsoft Jet administra los datos.) es diferente de una tabla de

base de datos de archivos simples, como una hoja de cálculo.

Cuando cada elemento de información se almacena una sola vez, se actualiza en un

solo lugar. Esto resulta más eficiente y elimina la posibilidad de que existan

entradas duplicadas que contengan información diferente.

Identificar el campo o los campos con valores únicos en cada registro

Para que Microsoft Access conecte información almacenada en tablas distintas (por

ejemplo, para conectar un cliente con todos los pedidos del cliente) , cada tabla de la base

de datos debe incluir un campo o un conjunto de campos que identifiquen de forma

exclusiva cada registro de la tabla. Este campo o conjunto de campos se denomina clave

principal (clave principal: uno o más campos (columnas) cuyos valores identifican de manera

exclusiva cada registro de una tabla. Una clave principal no puede permitir valores Nulo y

debe tener siempre un índice exclusivo. Una clave principal se utiliza para relacionar una

tabla con claves externas de otras tablas.).

Determinar las relaciones entre las tablas.

Ahora que ha dividido la información en tablas y que ha identificado los campos de clave

principal (clave principal: uno o más campos (columnas) cuyos valores identifican de manera

Page 4: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

exclusiva cada registro de una tabla. Una clave principal no puede permitir valores Nulo y

debe tener siempre un índice exclusivo. Una clave principal se utiliza para relacionar una

tabla con claves externas de otras tablas.), necesita una forma de indicar a Microsoft

Access cómo volver a reunir toda la información relacionada de un modo significativo. Para

ello se definen relaciones (relación: asociación que se establece entre campos comunes

(columnas) en dos tablas. Una relación puede ser uno a uno, uno a varios o varios a varios.)

entre las tablas.

Puede resultar útil ver las relaciones de una base de datos existente bien diseñada, como

la base de datos de ejemplo Neptuno.

Perfeccionar el diseño

Una vez diseñadas las tablas, los campos y las relaciones (relación: asociación que se

establece entre campos comunes (columnas) en dos tablas. Una relación puede ser uno a

uno, uno a varios o varios a varios.) que necesita, es el momento de estudiar el diseño y

detectar los posibles fallos. Es más sencillo cambiar el diseño de la base de datos ahora

que una vez que haya rellenado las tablas con datos.

Utilice Microsoft Access para crear las tablas, especificar relaciones entre las tablas e

introducir suficientes datos de ejemplo en las tablas para poder comprobar el diseño. Para

probar las relaciones de la base de datos, compruebe si puede crear consultas para

obtener las respuestas que desea. Cree bocetos de los formularios e informes, y

compruebe si muestran los datos esperados. Busque duplicaciones de datos innecesarias y

elimínelas.

Introducir datos y crear otros objetos de la base de datos

Cuando considere que la estructura de las tablas cumple los principios de diseño descritos

anteriormente, es el momento de comenzar a agregar los datos existentes a las tablas.

Después, puede crear otros objetos de base de datos (consultas (consulta: pregunta

sobre los datos almacenados en las tablas o solicitud para llevar a cabo una acción en los

datos. Una consulta puede unir datos de varias tablas para servir como origen de datos de

un formulario, informe o página de acceso a datos.), formularios (formulario: objeto de

base de datos de Access en el que se colocan controles para realizar acciones o para

especificar, mostrar y editar datos en los campos.), informes (informe: objeto de base de

datos de Access que imprime información a la que se ha dado formato y se ha organizado

de acuerdo con sus especificaciones. Ejemplos de informes: resúmenes de ventas, listines

telefónicos y etiquetas de correo.), páginas de acceso a datos (página de acceso a datos:

Page 5: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

página Web, publicada desde Access, que tiene una conexión a una base de datos. En una

página de acceso a datos, puede ver, agregar, editar y manipular los datos almacenados en

la base de datos. Una página puede incluir también datos de otros orígenes de datos, como

Excel.), macros (macro: acción o conjunto de acciones utilizados para automatizar tareas.)

y módulos (módulo: colección de declaraciones, instrucciones y procedimientos

almacenados juntos como una unidad con nombre. Existen dos tipos de módulos: módulos

estándar y módulos de clase.)).

Utilizar las herramientas de análisis de Microsoft Access

Microsoft Access incluye dos herramientas que pueden ayudarle a perfeccionar el diseño

de una base de datos de Microsoft Access (base de datos de Microsoft Access: colección

de datos y objetos (como tablas, consultas o formularios), que está relacionada con un

tema o propósito concreto. El motor de base de datos Microsoft Jet administra los

datos.).

El Analizador de tablas puede analizar el diseño de una tabla, proponer nuevas

estructuras y relaciones (relación: asociación que se establece entre campos

comunes (columnas) en dos tablas. Una relación puede ser uno a uno, uno a varios o

varios a varios.) de tablas, si es conveniente, y dividir una tabla en nuevas tablas

relacionadas, si es necesario.

El Analizador de rendimiento puede analizar la base de datos completa y realizar

recomendaciones y sugerencias para mejorarla. El asistente también puede

implantar estas recomendaciones y sugerencias.

Tomando la explicación anterior (pasos básicos para construir una base de datos) vamos a

elaborar una base de datos que lleve el Control de Citas para Pacientes en una Clínica.

Page 6: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Paso 1.- Desarrollamos la siguiente plantilla:

Diccionario de Datos

Nombre de la Base de Datos: bdClinica

Nombre de la Tabla: tbPacientes

Nombre del Campo Tipo de Datos Tamaño Formato Mascara Titulo / Descripción

Requ

erido

Perm

itir L

ongitu

d d

e C

ero

Ind

exado

(IU,

ICD,I

SD)

Clave

Princ

ipal

Clave

For

áne

a

N_Hist Texto 6 - "A-"9999 N° de Historia X No IU X

Nom_Ape Texto 60 - - Nombre y Apellido X No ICD

Fec_Nac Fecha/Hora - Fecha corta 99/99/99 Fecha Nacimiento X No ICD

Edad Número Byte Número general 999 Edad No ICD

Sexo_Mas Sí/No - Sí/No - Masculino X No ICD

Sexo_Fem Sí/No - Sí/No - Femenino X No ICD

Ocup Texto 35 - - Ocupación X No -

Dire Memo - - - Dirección X No -

Telf Texto 11 - \(9999")-"999\-99\-99 Teléfono X No -

Page 7: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Nombre de la Tabla: tbHistoria_Clinica

Nombre del Campo Tipo de Datos Tamaño Formato Mascara Titulo / Descripción

Requ

erido

Perm

itir L

ongitu

d d

e C

ero

Ind

exado

(IU,

ICD,I

SD)

Clave

Princ

ipal

Clave

For

áne

a

Id_Hist_Cli Autonumerico Entero largo Número general - Identif. Historia Cli X No IU X

Indicac Memo - - - Indicaciones - Si - - -

Fec_At Fecha/Hora - Fecha corta 99/99/99 Fecha de Atención X No ICD

N_Hist_Fora Texto 6 - "A-"9999 N° de Historia X No ICD X

Nombre de la Tabla: tbCitas

Nombre del Campo Tipo de Datos Tamaño Formato Mascara Titulo / Descripción

Requ

erido

Perm

itir L

ongitu

d d

e C

ero

Ind

exado

(IU,

ICD,I

SD)

Clave

Princ

ipal

Clave

For

áne

a

Id_Citas Autonumerico Entero largo Número general - Identif. Citas X No IU X

Fec_Cita Fecha/Hora - Fecha corta 99/99/99 Fecha de Cita X No ICD

Hor_Cita Fecha/Hora - Fecha corta 99/99/99 Hora de Cita X No ICD

N_Hist_Fora Texto 6 - "A-"9999 N° de Historia X No ICD X

Page 8: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Modelo de Entidad – Relación

N_Hist (Clave Primaria)

Nom_Ape

Fech_Nac

Edad

Sexo_Mas

Sexo_Fem

Ocup

Dire

Telf

TbPacientes DS01

Id_Hist_Cli (Clave Primaria)

Indica

Fech_Act

N_Hist (Clave Foránea)

TbHistoria_Clinica DS02

Id_Citas (Clave Primaria)

Fec_Cita

Hor_Cita

N_Hist (Clave Foránea)

TbCitas DS03

Se

Asigna

Solicita

Page 9: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Después de haber diseñado la estructura de la base de datos procedemos a crearla en

Microsoft Access de la siguiente forma:

Paso 1.- Abrimos la aplicación desde el botón inicio de la barra de tareas/todos los

programas/Microsoft office/Microsoft Access 2003│2007

Paso 2.- Estando en el panel de inicio de la aplicación presionamos clic en la opción Base de

datos en blanco, y colocamos el nombre de la base de datos que ya asignamos en la plantilla

y seleccionamos la ruta donde grabamos la carpeta de trabajo para nuestro sistema,

después de haber realizado esos pasos procedemos a presionar clic en el botón crear.

Page 10: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Paso 3.- Ahora en este paso presionaremos clic derecho sobre la tabla1 donde aparecerá

un menú desplegable donde seleccionaremos vista diseño para comenzar a rellenar los

campos requeridos para dicha tabla (Ver anexo Plantilla); quedando de la siguiente forma:

En esta figura colocamos el

nombre de la tabla que

deseamos crear

Page 11: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Y por último empezamos a configurar la tabla según nuestra plantilla.

Después de haber creado todas las tablas procedemos a crear las relaciones entre las

tablas. Veamos las ilustraciones para crearla:

- Seleccionamos la ficha Herramientas de base de datos

- Presionamos clic en el icono de relaciones

Page 12: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

- Presionamos clic en el icono mostrar tabla

Abrimos cada una de

Las tablas disponibles

Para realizar las

Correspondientes

Relaciones

- Al visualizar todas las tablas arrastramos el campo que contenga la clave principal

sobre la clave foránea, donde aparecerá un cuadro que valida la relación entre

ambos campos; solo tenemos que activar las tres casillas para que se cumpla la

normalización en cascada de los registros que se encuentran en ambas tablas

quedando de así de la siguiente forma:

Page 13: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Con este paso ya hemos finalizado el proceso de elaboración de la base de datos ahora

procedemos abrir la aplicación de visual basic 6.0

Abrimos el

Icono EXE estándar

Page 14: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

- Presionamos clic derecho en cuadro de

herramientas/Componentes

Activamos todos los componentes

CIA XP, Microsoft Masked Edit

Control 6.0, Microsoft Tabbed

Control 6.0, Microsoft Windows

Common Control 6.0 (SP6),

Shockwave Flash. Aplicamos y

Aceptamos los cambios.

Ahora empezamos a diseñar las pantallas del sistema

Pantalla #01.- Pantalla de Inicio

Page 15: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Form Name

BackColor

BorderStyle

Caption

Icon

Moveable

Picture

StarUpPosition

WindowsState

frmInicio

Blanco

1.- Fixed Single

Pantalla de Inicio

Ruta de un icono

False

Ruta de Imagen

2.- Center Screen

0.- Normal

Label1 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Automated System of

0.- Transparent

Cualquiera

Cualquiera

Label2 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Medical Doctor's offices

0.- Transparent

Cualquiera

Cualquiera

Label1

Label2

Timer1

ProgressBar 20

Page 16: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Timer1 Name

Enabled

Interval

trmTiempo

True

1000

ProgressBar20 Name

Min

Max

prbBarra

0

5

Codificación Pantalla Inicio

- Presionamos doble clic sobre el objeto timer1

- Declaramos la variable que llevará el conteo del proceso

Static Proceso As Integer

- Creamos un contador para que automáticamente avance la carga del control

progreso (prgBarra)

Proceso = Proceso + 1

- Igualamos el valor de la barra progreso (prgBarra) al contador para que el mismo

avance

Me.prgBarra.Value = Proceso

- Creamos un ciclo condicional donde verificamos si el valor del Proceso es igual a 6

segundo entonces detenemos el reloj (trmTiempo) y avanzamos a una nueva pantalla

y cerramos el formulario actual

If Proceso = 6 Then

trmTiempo.Enabled = False

frmLogin.Show

Unload Me

End If

- Quedando finalmente la codificación de la siguiente forma:

Page 17: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

- Ahora regresamos a la fase de diseño y presionaremos doble clic sobre el

formulario

Cambiamos el evento

Cargar (Load) por Descargar (Unload)

- Solo escribiremos descargar (unload me), ya que al presionar el usuario sobre el

botón cerrar éste cancelará la inicialización del sistema.

Pantalla #02.- Pantalla de Seguridad

Unload me

Page 18: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Form Name

BackColor

BorderStyle

Caption

Icon

Moveable

Picture

StarUpPosition

WindowsState

frmLogin

Blanco

1.- Fixed Single

Pantalla de Seguridad

Ruta de un icono

False

Ruta de Imagen

2.- Center Screen

0.- Normal

Label2

Label1

XPFrame201

XPComboBox201

XPText201

XPButton201

XPButton202

XPButton203

XPFrame202

Label3

Label4

Image1

Page 19: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Label1 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Automated System of

0.- Transparent

Cualquiera

Cualquiera

Label2 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Medical Doctor's offices

0.- Transparent

Cualquiera

Cualquiera

Label3 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

User

0.- Transparent

Cualquiera

Cualquiera

Label4 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Password

0.- Transparent

Cualquiera

Cualquiera

XPFrame201 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco1

2.- CiaRight

Blanco

Information Operator of the System

Ruta de un icono

Cualquiera

Cualquiera

XPFrame202 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco2

2.- CiaRight

Blanco

Buttons

Ruta de un icono

Cualquiera

Cualquiera

XPComboBox201 Name

Alignment

Font

ForeColor

Style

Text

cboUser

1.- cboCenterAlign

Cualquiera

Cualquiera

1.-cboDropDownList

Vacio

Page 20: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

XPText201 Name

Alignment

ButtonCaptionVAlignment

Font

ForeColor

MaxLength

Passwordchar

RequiredField

Text

TextPosition

txtPass

2.- Align Center

1.- btnMiddle

Cualquiera

Cualquiera

5

*

True

Vacio

1.- Align Middle

XPButton201 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdAceptar

Cualquiera

&Aceptar

Cualquiera

Cualquiera

False

XPButton202 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdNuevo

Cualquiera

&Nuevo

Cualquiera

Cualquiera

False

XPButton203 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdSalir

Cualquiera

&Salir

Cualquiera

Cualquiera

False

Image1

Name

Picture

Stretch

imgFigura

Cualquiera

True

Page 21: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Abrimos la base de datos creada y agregamos una nueva tabla llamada Seguridad

Nombre de la Tabla: tbSeguridad

Nombre del Campo Tipo de Datos Tamaño Formato Mascara Titulo / Descripción

Requ

erido

Perm

itir L

ongitu

d d

e C

ero

Ind

exado

(IU,

ICD,I

SD)

Clave

Princ

ipal

Clave

For

áne

a

IdPassw Texto 5 - Contraseña Contraseña X No IU X

Nom Texto 25 - - Nombre X No ICD

Ape Texto 25 - - Apellido X No ICD

Adm Sí/No - - - Administrador N/A No ICD

Ope Sí/No - - - Operador N/A No ICD

Page 22: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Después de haber realizado la modificación cerramos la base de datos y procedemos a

realizar lo siguiente:

Activación DNS del Sistema

Page 23: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Activación de la librería ADO y Módulo para conexión de base de datos

Activamos la casilla Microsoft Activex Data

Control 2,5 ó 2,6 ó 2.7 ó 2.8; buscamos la

versión más actualizada

Page 24: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación Fase I Pantalla Seguridad

Private Sub cmdAceptar_Click()

On Error GoTo Depurar

Conectar_BD

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM TbSeguridad"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

Bu = MyRec!Nom

Bu2 = MyRec!idPassw

Bu3 = MyRec!Ope

Bu4 = MyRec!Adm

If Me.cboUser.Text = Bu And Me.txtPass.Text = Bu2 And Bu3 = True Then

MsgBox " Bienvenido al Sistema Señor(a) " & Bu & " Su Status dentro del sistema es de Usuario"

FrmMenu.Show

Status = "OPE"

Unload Me

Exit Sub

Else

If Me.cboUser.Text = Bu And Me.txtPass.Text = Bu2 And Bu4 = True Then

MsgBox " Bienvenido al Sistema Señor(a) " & Bu & " Su Status dentro del sistema es de Administrador"

FrmMenu.Show

Status = "ADM"

Unload Me

Exit Sub

End If

End If

MyRec.MoveNext

If MyRec.EOF = True Then

conterror = conterror + 1

MsgBox "Contraseña Invalida", vbCritical, "Valores de Entrada Incorrectos"

MsgBox "Te quedan " & " " & (3 - conterror) & " Intentos "

If conterror = 3 Then

End

End If

Exit Sub

End If

Loop

MyRec.Close

Desconectar_BD

Exit Sub

Depurar:

MsgBox "La información del sistema no está disponible en este momento", vbCritical

End Sub

Page 25: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Private Sub cmdCerrar_Click()

frmLogin.Width = 8760

fraMarco3.Visible = False

End Sub

Private Sub cmdNuevo_Click()

frmLogin.Width = 15360

fraMarco3.Visible = True

End Sub

Private Sub Form_Load()

frmLogin.Width = 8760

On Error GoTo solucion

Conectar_BD

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM TbSeguridad"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

Bu = MyRec!Nom

Me.cboUser.AddItem (Bu)

MyRec.MoveNext

If MyRec.EOF = True Then

Exit Sub

End If

Loop

MyRec.Close

Desconectar_BD

Exit Sub

solucion:

MsgBox "No hay registros de usuarios activos. Por favor agregue nuevos usuarios ", vbExclamation

Exit Sub

End Sub

Page 26: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

XPFrame203

XPFrame204

XPFrame205

XPFrame206 XPComboBox202

XPText202

Label5

Label6

Image 2

Label7

Label8

Label9

Label10

XPText203

XPText204

XPText205

XPText206

XPOption201 XPOption202

XPButton204

XPButton205

XPButton206

Page 27: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Label5 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

User

0.- Transparent

Cualquiera

Cualquiera

Label6 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Password

0.- Transparent

Cualquiera

Cualquiera

Label7 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Nombre

0.- Transparent

Cualquiera

Cualquiera

Label8 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Apellido

0.- Transparent

Cualquiera

Cualquiera

Label9 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Password

0.- Transparent

Cualquiera

Cualquiera

Label10 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Repetir Password

0.- Transparent

Cualquiera

Cualquiera

Page 28: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

XPFrame203 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco3

2.- CiaRight

Blanco

New User

Ruta de un icono

Cualquiera

Cualquiera

XPFrame204 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco4

2.- CiaRight

Blanco

Information Operator of the System

Ruta de un icono

Cualquiera

Cualquiera

XPFrame205 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

Visible

fraMarco5

2.- CiaRight

Blanco

Datos Nuevo Usuario

Ruta de un icono

Cualquiera

Cualquiera

False

XPFrame206 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

Visible

fraMarco6

2.- CiaRight

Blanco

Buttons

Ruta de un icono

Cualquiera

Cualquiera

False

XPComboBox202 Name

Alignment

Font

ForeColor

Style

Text

cboUsuario

1.- cboCenterAlign

Cualquiera

Cualquiera

1.-cboDropDownList

Vacio

XPText202 Name

Alignment

ButtonCaptionVAlignment

Font

ForeColor

MaxLength

Passwordchar

RequiredField

Text

TextPosition

txtClave

2.- Align Center

1.- btnMiddle

Cualquiera

Cualquiera

5

*

True

Vacio

1.- Align Middle

Page 29: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

XPText203 Name

Alignment

ButtonCaptionVAlignment

Font

ForeColor

MaxLength

RequiredField

Text

TextPosition

txtNom

2.- Align Center

1.- btnMiddle

Cualquiera

Cualquiera

25

True

Vacio

1.- Align Middle

XPText204 Name

Alignment

ButtonCaptionVAlignment

Font

ForeColor

MaxLength

RequiredField

Text

TextPosition

txtApe

2.- Align Center

1.- btnMiddle

Cualquiera

Cualquiera

25

True

Vacio

1.- Align Middle

XPText205 Name

Alignment

ButtonCaptionVAlignment

Font

ForeColor

MaxLength

Passwordchar

RequiredField

Text

TextPosition

txtAgr_Clave

2.- Align Center

1.- btnMiddle

Cualquiera

Cualquiera

5

*

True

Vacio

1.- Align Middle

XPText206 Name

Alignment

ButtonCaptionVAlignment

Font

ForeColor

MaxLength

Passwordchar

RequiredField

Text

TextPosition

txtRep_Clave

2.- Align Center

1.- btnMiddle

Cualquiera

Cualquiera

5

*

True

Vacio

1.- Align Middle

XPButton205 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdGuardar

Cualquiera

&Guardar

Cualquiera

Cualquiera

False

Page 30: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

XPButton206 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdLimpiar

Cualquiera

&Limpiar

Cualquiera

Cualquiera

False

XPButton207 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdCerrar

Cualquiera

&Cerrar

Cualquiera

Cualquiera

False

Image2

Name

Picture

Stretch

imgClinica

Cualquiera

True

XPOption201 Name

Alignment

Caption

Style

optAdmin

0.- CiaLeftJustify

Administrador

1.- CiaTransparent

XPOption202

Name

Alignment

Caption

Stretch

optOpera

0.- CiaRightJustify

Operador

1.- CiaTransparent

Codificación Fase II Pantalla Seguridad

Código al cargar el formulario (Nota: solo añadimos a esa codificación lo que se encuentran en negrita)

Private Sub Form_Load()

frmLogin.Width = 8760

On Error GoTo solucion

Conectar_BD

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM TbSeguridad"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

bu = MyRec!Nom

Me.cboUser.AddItem (bu)

Me.cboUsuario.AddItem (bu)

MyRec.MoveNext

If MyRec.EOF = True Then

Exit Sub

End If

Loop

MyRec.Close

Desconectar_BD

Page 31: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Exit Sub

solucion:

MsgBox "No hay registros de usuarios activos. Por favor agregue nuevos usuarios ", vbExclamation

cmdNuevo_Click

frmLogin.shwCargar.Visible = False

frmLogin.fraMarco4.Enabled = False

frmLogin.fraMarco5.Visible = True

frmLogin.fraMarco6.Visible = True

frmLogin.txtApe.Enabled = False

frmLogin.optAdmin.Enabled = False

frmLogin.optOpera.Enabled = False

frmLogin.txtAgr_Clave.Enabled = False

frmLogin.txtRep_Clave.Enabled = False

Exit Sub

End Sub

Codificación al hacer un cambio en la casilla txtclave

Private Sub txtClave_Click()

Me.shwCargar.Playing = True

Me.shwCargar.Movie = App.Path & "\carga.swf"

End Sub

Validando la casilla nombre y focalizando el cursor en la próxima casilla

Private Sub txtNom_KeyPress(KeyAscii As Integer)

Dim Enter As String

Dim strValido As String

Enter = KeyAscii

strValido = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ´ "

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii > 26 Then

If InStr(strValido, Chr(KeyAscii)) = 0 Then

KeyAscii = 0

End If

End If

If Enter = 13 Then

If Me.txtNom.Text = "" Then

Me.txtNom.SetFocus

Me.txtApe.Enabled = False

Me.optAdmin.Enabled = False

Me.optOpera.Enabled = False

Me.txtAgr_Clave.Enabled = False

Me.txtRep_Clave.Enabled = False

Exit Sub

Else

Me.txtApe.Enabled = True

Me.txtApe.SetFocus

End If

End If

End Sub

Page 32: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Validando la casilla apellido y focalizando el cursor en la próxima casilla

Private Sub txtApe_KeyPress(KeyAscii As Integer)

Dim Enter As String

Dim strValido As String

Enter = KeyAscii

strValido = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ´ "

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii > 26 Then

If InStr(strValido, Chr(KeyAscii)) = 0 Then

KeyAscii = 0

End If

End If

If Enter = 13 Then

If Me.txtApe.Text = "" Then

Me.txtApe.SetFocus

Me.optAdmin.Enabled = False

Me.optOpera.Enabled = False

Me.txtAgr_Clave.Enabled = False

Me.txtRep_Clave.Enabled = False

Exit Sub

Else

Me.optAdmin.Enabled = True

Me.optOpera.Enabled = True

Me.optAdmin.SetFocus

End If

End If

End Sub

Validando opción administrador

Private Sub optAdmin_Click()

Me.optOpera.Value = False

End Sub

Validando opción operador

Private Sub optOpera_Click()

Me.optAdmin.Value = False

End Sub

Validando casilla txtAgr_Clave

Private Sub txtAgr_Clave_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.txtAgr_Clave.Text = "" Then

Me.txtAgr_Clave.SetFocus

Exit Sub

Else

Me.txtRep_Clave.Enabled = True

Me.txtRep_Clave.SetFocus

Page 33: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

End If

End If

End Sub

Validando casilla txtRep_Clave

Private Sub txtRep_Clave_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.txtRep_Clave.Text = "" Then

Me.txtRep_Clave.SetFocus

Exit Sub

Else

If Me.txtAgr_Clave.Text <> Me.txtRep_Clave.Text Then

MsgBox "No coinciden los password por favor vuelva a intentar", vbCritical, "Claves Incorrectas"

Me.txtAgr_Clave.Text = ""

Me.txtRep_Clave.Text = ""

Me.txtRep_Clave.Enabled = False

Me.txtAgr_Clave.SetFocus

Exit Sub

Else

Me.fraMarco6.Visible = True

Me.cmdGuardar.SetFocus

End If

End If

End If

End Sub

Codificación botón Guardar

Private Sub cmdGuardar_Click()

On Error GoTo Verificar

Conectar_BD

VAR1 = Me.txtNom.Text

VAR2 = Me.txtApe.Text

VAR3 = Me.optAdmin.Value

VAR4 = Me.optOpera.Value

VAR5 = Me.txtAgr_Clave.Text

Dim micom As ADODB.Command

Set micom = New ADODB.Command

micom.CommandType = adCmdText

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM TbSeguridad"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

bu = MyRec!Nom

bu1 = MyRec!Ape

Bu2 = MyRec!idPassw

If Me.txtNom.Text = bu And Me.txtApe.Text = bu1 And Me.txtAgr_Clave.Text = Bu2 Then

MsgBox "Este usuario ya se encuentra registrado en el sistema", vbCritical, "Error de Redundancia de datos"

Limpiar

Page 34: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Me.txtApe.Enabled = False

Me.optAdmin.Enabled = False

Me.optOpera.Enabled = False

Me.txtAgr_Clave.Enabled = False

Me.txtRep_Clave.Enabled = False

Me.txtNom.SetFocus

Exit Sub

End If

MyRec.MoveNext

If MyRec.EOF = True Then

1 If VAR3 = "Falso" Then

2 VAR3 = 0

3 Else

4 VAR3 = 1

5 End If

6 If VAR4 = "Verdadero" Then

7 VAR4 = 1

8 Else

9 VAR4 = 0

10 End If

11 micom.CommandText = "Insert into tbseguridad (nom,ape,adm,ope,idPassw) values ('" & VAR1 & "', '" & VAR2 &

"', '" & VAR3 & "', '" & VAR4 & "', '" & VAR5 & "')"

12 micom.ActiveConnection = MiConex

13 micom.Execute

14 Set micom = Nothing

15 MsgBox "Usuario guardado correctamente", vbInformation, "Datos agregados a la base de datos"

16 Limpiar

17 Me.txtApe.Enabled = False

18 Me.optAdmin.Enabled = False

19 Me.optOpera.Enabled = False

20 Me.txtAgr_Clave.Enabled = False

21 Me.txtRep_Clave.Enabled = False

22 Me.txtNom.SetFocus

23 Exit Sub

24 End If

Loop

MyRec.Close

Desconectar_BD

Exit Sub

Verificar:

If Error = "El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro

actual." Then

GoTo 1

Exit Sub

Else

MsgBox "Imposible realizar accion por favor consulte manual del sistema"

Exit Sub

End If

End Sub

Page 35: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación Botón Limpiar

Private Sub cmdLimpiar_Click()

Limpiar

End Sub

Codificación Botón Cerrar

Private Sub cmdCerrar_Click()

frmLogin.Width = 8760

fraMarco3.Visible = False

fraMarco5.Visible = False

fraMarco6.Visible = False

Me.fraMarco4.Enabled = True

Me.shwCargar.Visible = True

Limpiar

Me.cboUser.Clear

Me.cboUsuario.Clear

Form_Load

End Sub

Subturina Limpiar

Sub Limpiar()

Me.txtApe.Text = ""

Me.txtNom.Text = ""

Me.optAdmin.Value = False

Me.optOpera.Value = False

Me.txtAgr_Clave.Text = ""

Me.txtRep_Clave.Text = ""

Me.txtClave.Text = ""

End Sub

Page 36: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Pantalla #03.- Pantalla Menú Principal

XPFrame201

XPButton201

Image1

XPButton203

Image4

Image2

XPButton204

Image3

XPButton205

Image5

XPButton202

Page 37: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Form Name

BackColor

BorderStyle

Caption

Icon

Moveable

Picture

StarUpPosition

WindowsState

frmMenu

Blanco

1.- Fixed Single

Pantalla Menú Principal

Ruta de un icono

False

Ruta de Imagen

2.- Center Screen

0.- Normal

XPFrame201 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco6

2.- CiaRight

Blanco

Buttons

Ruta de un icono

Cualquiera

Cualquiera

XPButton201 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdCitas

Cualquiera

&Citas

Cualquiera

Cualquiera

False

XPButton202 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdReportes

Cualquiera

&Reportes

Cualquiera

Cualquiera

False

XPButton203 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdHistorial

Cualquiera

&Historial

Cualquiera

Cualquiera

False

XPButton204 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdSalir

Cualquiera

&Salir

Cualquiera

Cualquiera

False

XPButton206 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdPacientes

Cualquiera

&Pacientes

Cualquiera

Cualquiera

False

Image1

Name

Picture

Stretch

imgFigura

Cualquiera

True

Page 38: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Image2

Name

Picture

Stretch

imgFigura

Cualquiera

True

Image3

Name

Picture

Stretch

imgFigura

Cualquiera

True

Image4

Name

Picture

Stretch

imgFigura

Cualquiera

True

Image5

Name

Picture

Stretch

imgFigura

Cualquiera

True

Codificación Botón Citas

Private Sub cmdCitas_Click()

frmCitas.Show

Unload Me

End Sub

Codificación Botón Reportes

Private Sub cmdReportes_Click()

frmReportes.Show

Unload Me

End Sub

Codificación Botón Historial

Private Sub cmdHistorial_Click()

frmHisto.Show

Unload Me

End Sub

Codificación Botón Pacientes

Private Sub cmdPacientes_Click()

frmPacientes.Show

Unload Me

End Sub

Codificación Botón Salir

Private Sub cmdSalir_Click()

End

End Sub

Page 39: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Pantalla #04.- Pantalla Pacientes

Image1

Label1

Label2

Label3

Label4

XPOption201

Label5

Label6 Label7

XPOption202

XPMaskEdit203

XPText204

XPText203

XPText202

XPMaskEdit202

XPText201

XPMaskEdit201

XPFrame201

XPButton204

XPButton201

XPButton202

XPButton206

XPButton205

XPButton203

XPFrame202

Page 40: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Form Name

BackColor

BorderStyle

Caption

Icon

Moveable

Picture

StarUpPosition

WindowsState

frmPacientes

Blanco

1.- Fixed Single

Pantalla de pacientes

Ruta de un icono

False

Ruta de Imagen

2.- Center Screen

0.- Normal

Label1 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

N° de historia

0.- Transparent

Cualquiera

Cualquiera

Label2 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Nombres y Apellidos

0.- Transparent

Cualquiera

Cualquiera

Label3 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Fecha de Nacimiento

0.- Transparent

Cualquiera

Cualquiera

Label4 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Edad

0.- Transparent

Cualquiera

Cualquiera

Label5 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Ocupación

0.- Transparent

Cualquiera

Cualquiera

Page 41: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Label6 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Dirección

0.- Transparent

Cualquiera

Cualquiera

Label7 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Teléfono

0.- Transparent

Cualquiera

Cualquiera

XPFrame201 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco6

2.- CiaRight

Blanco

Buttons

Ruta de un icono

Cualquiera

Cualquiera

XPFrame202 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco5

2.- CiaRight

Blanco

Datos del Paciente

Ruta de un icono

Cualquiera

Cualquiera

XPText201 Name

Alignment

ButtonCaptionVAlignment

Enabled

Font

ForeColor

MaxLength

RequiredField

Text

TextPosition

txtNom

2.- Align Center

1.- btnMiddle

False

Cualquiera

Cualquiera

60

True

Vacio

1.- Align Middle

XPText202 Name

Alignment

ButtonCaptionVAlignment

Enabled

Font

ForeColor

MaxLength

RequiredField

Text

TextPosition

txtEdad

2.- Align Center

1.- btnMiddle

False

Cualquiera

Cualquiera

3

True

Vacio

1.- Align Middle

Page 42: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

XPText203 Name

Alignment

ButtonCaptionVAlignment

Enabled

Font

ForeColor

MaxLength

RequiredField

Text

TextPosition

txtOcup

2.- Align Center

1.- btnMiddle

False

Cualquiera

Cualquiera

70

True

Vacio

1.- Align Middle

XPText204 Name

Alignment

ButtonCaptionVAlignment

Enabled

Font

ForeColor

MaxLength

RequiredField

Text

TextPosition

txtDir

2.- Align Center

1.- btnMiddle

False

Cualquiera

Cualquiera

0

True

Vacio

1.- Align Middle

XPButton201 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdAgregar

Cualquiera

&Agregar

False

Cualquiera

Cualquiera

False

XPButton202 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdModificar

Cualquiera

&Modificar

False

Cualquiera

Cualquiera

False

XPButton203 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdEliminar

Cualquiera

&Eliminar

False

Cualquiera

Cualquiera

False

XPButton204 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdBuscar

Cualquiera

&Buscar

Cualquiera

Cualquiera

False

Page 43: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

XPButton205 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdRegresar

Cualquiera

&Regresar

Cualquiera

Cualquiera

False

XPButton206 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdLimpiar

Cualquiera

&Limpiar

Cualquiera

Cualquiera

False

XPMaskEdit201 Name

Enabled

Mask

msk_Historia

True

>?-9999

XPMaskEdit202 Name

Enabled

Mask

mskFN

False

99/99/9999

XPMaskEdit203 Name

Enabled

Mask

mskTlf

False

(9999)-999-99-99

Image1

Name

Picture

Stretch

imgFigura

Cualquiera

True

XPOption201 Name

Alignment

Caption

Style

optM

0.- CiaLeftJustify

Masculino

1.- CiaTransparent

XPOption202

Name

Alignment

Caption

Stretch

optF

0.- CiaRightJustify

Femenino

1.- CiaTransparent

Codificación de la casilla msk_Historia

Private Sub msk_Historia_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.msk_Historia.Text = "_-____" Then

Me.msk_Historia.SetFocus

Me.txtNom.Enabled = False

Me.mskFN.Enabled = False

Me.optF.Enabled = False

Me.optM.Enabled = False

Me.txtOcup.Enabled = False

Me.txtDir.Enabled = False

Me.mskTlf.Enabled = False

Exit Sub

Else

Me.txtNom.Enabled = True

Page 44: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Me.txtNom.SetFocus

End If

End If

End Sub

Codificación de la casilla txtNom

Private Sub txtNom_KeyPress(KeyAscii As Integer)

Dim Enter As String

Dim strValido As String

Enter = KeyAscii

strValido = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ´ "

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii > 26 Then

If InStr(strValido, Chr(KeyAscii)) = 0 Then

KeyAscii = 0

End If

End If

If Enter = 13 Then

If Me.txtNom.Text = "" Then

Me.txtNom.SetFocus

Me.mskFN.Enabled = False

Me.optF.Enabled = False

Me.optM.Enabled = False

Me.txtOcup.Enabled = False

Me.txtDir.Enabled = False

Me.mskTlf.Enabled = False

Exit Sub

Else

Me.mskFN.Enabled = True

Me.mskFN.SetFocus

End If

End If

End Sub

Codificación de la casilla mskFN

Private Sub mskFN_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.mskFN.Text = "__/__/____" Then

Me.mskFN.SetFocus

Exit Sub

Else

If Not IsDate(Me.mskFN.Text) Then

MsgBox " Fecha Invalida...", vbCritical, "Error..."

Me.mskFN.Text = "__/__/____"

Me.mskFN.SetFocus

Me.optF.Enabled = False

Me.optM.Enabled = False

Me.txtOcup.Enabled = False

Me.txtDir.Enabled = False

Page 45: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Me.mskTlf.Enabled = False

Exit Sub

Else

Me.txtEdad.Text = Val(CalculaEdad(Me.mskFN.Text))

Me.optF.Enabled = True

Me.optM.Enabled = True

Me.optM.SetFocus

End If

End If

End If

End Sub

Codificación optM

Private Sub optM_Click()

Me.optF.Value = False

End Sub

Private Sub optM_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.optM.Value = False And Me.optF.Value = False Then

Me.optM.SetFocus

Exit Sub

Else

Me.txtOcup.Enabled = True

Me.txtOcup.SetFocus

End If

End If

End Sub

Codificación optF

Private Sub optF_Click()

Me.optM.Value = False

End Sub

Private Sub optF_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.optM.Value = False And Me.optF.Value = False Then

Me.optM.SetFocus

Exit Sub

Else

Me.txtOcup.Enabled = True

Me.txtOcup.SetFocus

End If

End If

End Sub

Page 46: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación txtOcup

Private Sub txtOcup_KeyPress(KeyAscii As Integer)

Dim Enter As String

Dim strValido As String

Enter = KeyAscii

strValido = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ´ "

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii > 26 Then

If InStr(strValido, Chr(KeyAscii)) = 0 Then

KeyAscii = 0

End If

End If

If Enter = 13 Then

If Me.txtOcup.Text = "" Then

Me.txtOcup.SetFocus

Me.txtDir.Enabled = False

Me.mskTlf.Enabled = False

Exit Sub

Else

Me.txtDir.Enabled = True

Me.txtDir.SetFocus

End If

End If

End Sub

Codificación txtDir

Private Sub txtDir_KeyPress(KeyAscii As Integer)

Dim Enter As String

Dim strValido As String

Enter = KeyAscii

strValido = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ´ "

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii > 26 Then

If InStr(strValido, Chr(KeyAscii)) = 0 Then

KeyAscii = 0

End If

End If

If Enter = 13 Then

If Me.txtDir.Text = "" Then

Me.txtDir.SetFocus

Me.mskTlf.Enabled = False

Exit Sub

Else

Me.mskTlf.Enabled = True

Me.mskTlf.SetFocus

End If

End If

End Sub

Page 47: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación mskTlf

Private Sub mskTlf_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.mskTlf.Text = "(____)-___-__-__" Then

Me.mskTlf.SetFocus

Me.cmdAgregar.Enabled = False

Exit Sub

Else

If Me.msk_Historia.Enabled = False Then

Me.cmdModificar.SetFocus

Else

Me.cmdAgregar.Enabled = True

Me.cmdAgregar.SetFocus

End If

End If

End If

End Sub

Codificación Botón Agregar

Private Sub cmdAgregar_Click()

On Error GoTo Verificar

Conectar_BD

VAR1 = Me.msk_Historia.Text

VAR2 = Me.txtNom.Text

VAR3 = Me.mskFN.Text

VAR4 = Me.txtEdad.Text

VAR5 = Me.optF.Value

VAR6 = Me.optM.Value

VAR7 = Me.txtOcup.Text

VAR8 = Me.txtDir.Text

VAR9 = Me.mskTlf.Text

Dim micom As ADODB.Command

Set micom = New ADODB.Command

micom.CommandType = adCmdText

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM TbPaciente"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

bu = MyRec!N_Hist

If Me.msk_Historia.Text = bu Then

MsgBox "Este paciente ya se encuentra registrado en el sistema", vbCritical, "Error de Redundancia de datos"

Limpiar

Me.txtNom.Enabled = False

Me.mskFN.Enabled = False

Me.optF.Enabled = False

Me.optM.Enabled = False

Me.txtOcup.Enabled = False

Page 48: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Me.txtDir.Enabled = False

Me.mskTlf.Enabled = False

Me.cmdAgregar.Enabled = False

Me.msk_Historia.SetFocus

Exit Sub

End If

MyRec.MoveNext

If MyRec.EOF = True Then

1 If VAR5 = "Falso" Then

2 VAR5 = 0

3 Else

4 VAR5 = 1

5 End If

6 If VAR6 = "Verdadero" Then

7 VAR6 = 1

8 Else

9 VAR6 = 0

10 End If

11 micom.CommandText = "Insert into tbpaciente (N_Hist, Nom_Ape, Fec_Nac, Edad, Sexo_Fem, Sexo_Mas,

Ocup, Dire, Telf) values ('" & VAR1 & "', '" & VAR2 & "', '" & VAR3 & "', " & VAR4 & ", '" & VAR5 & "', " & VAR6 & ", '" &

VAR7 & "', '" & VAR8 & "', '" & VAR9 & "')"

12 micom.ActiveConnection = MiConex

13 micom.Execute

14 Set micom = Nothing

15 MsgBox "Paciente guardado con exito", vbInformation, "Datos agregados a la base de datos"

16 Limpiar

17 Me.txtNom.Enabled = False

18 Me.mskFN.Enabled = False

19 Me.optF.Enabled = False

20 Me.optM.Enabled = False

21 Me.txtOcup.Enabled = False

22 Me.txtDir.Enabled = False

23 Me.mskTlf.Enabled = False

24 Me.cmdAgregar.Enabled = False

25 Me.msk_Historia.SetFocus

26 Exit Sub

27 End If

Loop

MyRec.Close

Desconectar_BD

Exit Sub

Verificar:

If Error = "El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro

actual." Then

GoTo 1

Exit Sub

Else

MsgBox "Imposible realizar accion por favor consulte manual del sistema"

Exit Sub

End If

End Sub

Page 49: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación Botón Modificar

Private Sub cmdModificar_Click()

Conectar_BD

PREG$ = MsgBox("Deseas modificar este registro", vbYesNo, "Advertencia")

If PREG$ = vbYes Then

VAR1 = Me.msk_Historia.Text

VAR2 = Me.txtNom.Text

VAR3 = Me.mskFN.Text

VAR4 = Me.txtEdad.Text

VAR5 = Me.optF.Value

VAR6 = Me.optM.Value

VAR7 = Me.txtOcup.Text

VAR8 = Me.txtDir.Text

VAR9 = Me.mskTlf.Text

Dim micom As ADODB.Command

Set micom = New ADODB.Command

micom.CommandType = adCmdText

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM TbPaciente"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

1 If VAR5 = "Falso" Then

2 VAR5 = 0

3 Else

4 VAR5 = 1

5 End If

6 If VAR6 = "Verdadero" Then

7 VAR6 = 1

8 Else

9 VAR6 = 0

10 End If

11 micom.CommandText = "Update tbpaciente Set N_Hist='" & VAR1 & "', Nom_Ape='" & VAR2 & "', Fec_Nac='" &

VAR3 & "', Edad=" & VAR4 & ", Sexo_Fem='" & VAR5 & "', Sexo_Mas=" & VAR6 & ", Ocup='" & VAR7 & "', Dire='" &

VAR8 & "', Telf='" & VAR9 & "' Where N_Hist='" & VAR1 & "'"

12 micom.ActiveConnection = MiConex

13 micom.Execute

14 Set micom = Nothing

15 MsgBox "Registro modificado con exito", vbInformation, "Datos agregados a la base de datos"

16 Limpiar

17 Me.txtNom.Enabled = False

18 Me.mskFN.Enabled = False

19 Me.optF.Enabled = False

20 Me.optM.Enabled = False

21 Me.txtOcup.Enabled = False

22 Me.txtDir.Enabled = False

23 Me.mskTlf.Enabled = False

24 Me.cmdEliminar.Enabled = False

25 Me.cmdModificar.Enabled = False

26 Me.msk_Historia.SetFocus

27 Exit Sub

MyRec.Close

Page 50: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Desconectar_BD

Exit Sub

Else

MsgBox "PROCESO CANCELADO", vbCritical, "DATOS DE ORIGEN SIN CAMBIOS"

cmdLimpiar_Click

Exit Sub

End If

End Sub

Codificación Botón Eliminar

Private Sub cmdEliminar_Click()

Conectar_BD

PREG$ = MsgBox("¿Estas seguro de querer eliminar este registro?", vbYesNo, "Pregunta")

If PREG$ = vbYes Then

VAR1 = Me.msk_Historia.Text

Dim micom As ADODB.Command

Set micom = New ADODB.Command

micom.CommandType = adCmdText

micom.CommandText = "Delete from tbPaciente Where N_Hist = '" & VAR1 & "'"

micom.ActiveConnection = MiConex

micom.Execute

Set micom = Nothing

MsgBox ("Registro eliminado de la Base de Datos"), vbInformation, "Informacion"

Me.txtNom.Enabled = False

Me.mskFN.Enabled = False

Me.optF.Enabled = False

Me.optM.Enabled = False

Me.txtOcup.Enabled = False

Me.txtDir.Enabled = False

Me.mskTlf.Enabled = False

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Me.msk_Historia.SetFocus

Limpiar

Desconectar_BD

Else

MsgBox "PROCESO CANCELADO", vbCritical, "DATOS DE ORIGEN SIN CAMBIOS"

cmdLimpiar_Click

Exit Sub

End If

End Sub

Codificación Botón Buscar

Private Sub cmdBuscar_Click()

Conectar_BD

Dim MiReg As ADODB.Recordset

Set MiReg = New ADODB.Recordset

Buscar$ = InputBox("Ingrese el número de historia del paciente a consultar")

If Buscar$ = "" Then

Page 51: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

MsgBox "Debes llenar un número de historia para poder procesar esos datos", vbInformation, "Entrada Invalida"

Me.msk_Historia.Enabled = True

Exit Sub

End If

MySql = "SELECT * From tbPaciente WHERE (((tbPaciente.N_Hist)='" & Buscar & "'));"

MiReg.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

If MiReg.EOF() Then

MsgBox "No se encuentra este paciente", vbInformation, "Resultado de Busqueda"

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Me.msk_Historia.Enabled = True

Me.msk_Historia.SetFocus

Limpiar

Else

Me.msk_Historia.Enabled = False

Me.txtNom.Enabled = True

Me.mskFN.Enabled = True

Me.optF.Enabled = True

Me.optM.Enabled = True

Me.txtOcup.Enabled = True

Me.txtDir.Enabled = True

Me.mskTlf.Enabled = True

Me.msk_Historia.Text = MiReg.Fields("N_Hist")

Me.txtNom.Text = MiReg.Fields("Nom_Ape")

Me.mskFN.Text = MiReg.Fields("Fec_Nac")

Me.txtEdad.Text = MiReg.Fields("Edad")

Me.optF.Value = MiReg.Fields("Sexo_Fem")

Me.optM.Value = MiReg.Fields("Sexo_Mas")

Me.txtOcup.Text = MiReg.Fields("Ocup")

Me.txtDir.Text = MiReg.Fields("Dire")

Me.mskTlf = MiReg.Fields("Telf")

Me.cmdEliminar.Enabled = True

Me.cmdModificar.Enabled = True

End If

MiReg.Close

Desconectar_BD

End Sub

Codificación Botón Regresar

Private Sub cmdRegresar_Click()

frmMenu.Show

Unload Me

End Sub

Codificación Botón Limpiar

Private Sub cmdLimpiar_Click()

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Me.msk_Historia.Enabled = True

Page 52: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Me.txtNom.Enabled = False

Me.mskFN.Enabled = False

Me.optF.Enabled = False

Me.optM.Enabled = False

Me.txtOcup.Enabled = False

Me.txtDir.Enabled = False

Me.mskTlf.Enabled = False

Me.cmdAgregar.Enabled = False

Me.msk_Historia.SetFocus

Limpiar

End Sub

Subrutina Limpiar

Sub Limpiar()

Me.msk_Historia.Text = "_-____"

Me.txtNom.Text = ""

Me.mskFN.Text = "__/__/____"

Me.txtEdad.Text = ""

Me.optF.Value = False

Me.optM.Value = False

Me.txtOcup.Text = ""

Me.txtDir.Text = ""

Me.mskTlf.Text = "(____)-___-__-__"

End Sub

Función calculo de edad

Public Function CalculaEdad(Nacio As Date) As String

Dim MesesPasados As Integer

Dim Anios As Integer

Dim Meses As Integer

Dim dias As Integer

If Nacio > Now Then

'CalculaEdad = "Fecha de Nacimiento Invalida"

MsgBox "Fecha Invalida"

Me.txtEdad.Text = ""

Me.mskFN.Text = "__/__/____"

Me.mskFN.SetFocus

Exit Function

End If

MesesPasados = DateDiff("m", Nacio, Now)

Anios = Int(MesesPasados / 12)

Meses = MesesPasados Mod 12

If Day(Now) >= Day(Nacio) Then

dias = Day(Now) - Day(Nacio)

Else

Select Case Month(Now)

Case 1, 2, 4, 6, 8, 9, 11: dias = 31 - Day(Nacio) + Day(Now)

Case 5, 7, 30, 12: dias = 30 - Day(Nacio) + Day(Now)

Case 3: dias = Bisiento(Year(Now)) - Day(Nacio) + Day(Now)

Page 53: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

End Select

Meses = Meses - 1

If Meses = -1 Then

Meses = 11

Anios = Anios - 1

End If

End If

If Anios = 1 Then

CalculaEdad = Anios & " año "

Else

CalculaEdad = Anios & " años "

End If

If Meses = 1 Then

CalculaEdad = CalculaEdad & Meses & " mes y "

Else

CalculaEdad = CalculaEdad & Meses & " meses y "

End If

If dias = 1 Then

CalculaEdad = CalculaEdad & dias & " dia"

Else

CalculaEdad = CalculaEdad & dias & " dias"

End If

End Function

Función biciesto

Private Function Bisiento(Anio As Integer) As Integer

If (Anio Mod 4) = 0 Then

Bisiento = 29

Else

Bisiento = 28

End If

End Function

Page 54: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Pantalla #05.- Pantalla Citas Pacientes

Image1

XPFrame201

XPButton204

XPButton201

XPButton202

XPButton206

XPButton205

XPButton203

Label1

Label2

Label3

XPMaskEdit202

XPMaskEdit201

XPFrame202

XPComboMultiCol201

Page 55: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Form Name

BackColor

BorderStyle

Caption

Icon

Moveable

Picture

StarUpPosition

WindowsState

frmCitas

Blanco

1.- Fixed Single

Pantalla de citas

Ruta de un icono

False

Ruta de Imagen

2.- Center Screen

0.- Normal

Label1 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

N° de historia

0.- Transparent

Cualquiera

Cualquiera

Label2 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Fecha de cita

0.- Transparent

Cualquiera

Cualquiera

Label3 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Hora de cita

0.- Transparent

Cualquiera

Cualquiera

XPButton201 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdAgregar

Cualquiera

&Agregar

False

Cualquiera

Cualquiera

False

XPButton202 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdModificar

Cualquiera

&Modificar

False

Cualquiera

Cualquiera

False

Page 56: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

XPButton203 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdEliminar

Cualquiera

&Eliminar

False

Cualquiera

Cualquiera

False

XPButton204 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdBuscar

Cualquiera

&Buscar

Cualquiera

Cualquiera

False

XPButton205 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdRegresar

Cualquiera

&Regresar

Cualquiera

Cualquiera

False

XPButton206 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdLimpiar

Cualquiera

&Limpiar

Cualquiera

Cualquiera

False

XPMaskEdit201 Name

Enabled

Mask

mskFC

False

99/99/9999

XPMaskEdit202 Name

Enabled

Mask

mskHora

False

99:99 ??

Image1

Name

Picture

Stretch

imgFigura

Cualquiera

True

XPComboMultiCol201 Name cbomHisto

XPFrame201 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco6

2.- CiaRight

Blanco

Buttons

Ruta de un icono

Cualquiera

Cualquiera

XPFrame202 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco5

2.- CiaRight

Blanco

Datos del Paciente

Ruta de un icono

Cualquiera

Cualquiera

Page 57: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación al cargar el formulario

Private Sub Form_Load()

On Error Resume Next

Me.cbomHisto.ClearAll

Conectar_BD

Dim MyRec As ADODB.Recordset

Set MyRec = New ADODB.Recordset

MySql = "Select * from tbPaciente"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

bu = MyRec!N_Hist

bu1 = MyRec!Nom_Ape

Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2

With Me.cbomHisto

.BeginUpdate

.Columns = 2

.ColumnHeaderCaption(1) = "N° de Historia"

.ColumnHeaderAlignment(1) = cpAlignCenter

.ColumnHeaderMinWidth(1) = 25

.ColumnHeaderCaption(2) = "Nombres y Apellidos"

.ColumnHeaderAlignment(2) = cpAlignCenter

.ColumnHeaderMinWidth(2) = 150

.AddItem Array(bu, bu1)

.EndUpdate

.ListIndex = 0

MyRec.MoveNext

If MyRec.EOF = True Then

Exit Sub

End If

End With

Loop

MyRec.Close

Desconectar_BD

End Sub

Codificación al presionar una tecla en el combo cbomHisto

Private Sub cbomHisto_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.cbomHisto.Text = "" Then

Me.cbomHisto.SetFocus

Exit Sub

Else

Me.mskFC.Enabled = True

Me.mskFC.SetFocus

End If

End If

End Sub

Page 58: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación de la casilla mskFC

Private Sub mskFC_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.mskFC.Text = "__/__/____" Then

Me.mskFC.SetFocus

Exit Sub

Else

If Not IsDate(Me.mskFC.Text) Then

MsgBox " Fecha Invalida...", vbCritical, "Error..."

Me.mskFC.Text = "__/__/____"

Me.mskFC.SetFocus

Me.mskHora.Enabled = False

Exit Sub

Else

Me.mskHora.Enabled = True

Me.mskHora.Enabled = True

Me.mskHora.SetFocus

End If

End If

End If

End Sub

Codificación de la casilla mskHora

Private Sub mskHora_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.mskHora.Text = "__:__ __" Then

Me.mskHora.SetFocus

Me.cmdAgregar.Enabled = False

Exit Sub

Else

If Me.cbomHisto.Enabled = False Then

Me.cmdModificar.SetFocus

Else

Me.cmdAgregar.Enabled = True

Me.cmdAgregar.SetFocus

End If

End If

End If

End Sub

Codificación botón agregar

Private Sub cmdAgregar_Click()

On Error GoTo Verificar

Conectar_BD

VAR1 = Me.cbomHisto.Text

VAR2 = Me.mskFC.Text

VAR3 = Me.mskHora.Text

Dim micom As ADODB.Command

Page 59: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Set micom = New ADODB.Command

micom.CommandType = adCmdText

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM TbCitas"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

micom.CommandText = "insert into tbCitas (N_Hist_Fora, Fec_Cita, Hor_Cita) values ('" & VAR1 & "',#" & VAR2 & "#,

#" & VAR3 & "#)"

micom.ActiveConnection = MiConex

micom.Execute

Set micom = Nothing

MsgBox "Cita guardada con exito", vbInformation, "Datos agregados a la base de datos"

Limpiar

Me.mskFC.Enabled = False

Me.mskHora.Enabled = False

Me.cmdAgregar.Enabled = False

MyRec.Close

Desconectar_BD

Exit Sub

Verificar:

MsgBox Error

End Sub

Codificación botón modificar

Private Sub cmdModificar_Click()

Conectar_BD

PREG$ = MsgBox("Deseas modificar este registro", vbYesNo, "Advertencia")

If PREG$ = vbYes Then

VAR1 = Me.cbomHisto.Text

VAR2 = Me.mskFC.Text

VAR3 = Me.mskHora.Text

Dim micom As ADODB.Command

Set micom = New ADODB.Command

micom.CommandType = adCmdText

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM TbCitas"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

micom.CommandText = "update tbCitas Set N_Hist_Fora='" & VAR1 & "', Fec_Cita=#" & VAR2 & "#, Hor_Cita=#" &

VAR3 & "# Where tbCitas.N_Hist_Fora='" & VAR1 & "'"

micom.ActiveConnection = MiConex

micom.Execute

Set micom = Nothing

MsgBox "Cita modificada con exito", vbInformation, "Datos agregados a la base de datos"

Limpiar

Me.mskFC.Enabled = False

Me.mskHora.Enabled = False

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Exit Sub

Page 60: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

MyRec.Close

Desconectar_BD

Exit Sub

Else

MsgBox "PROCESO CANCELADO", vbCritical, "DATOS DE ORIGEN SIN CAMBIOS"

cmdLimpiar_Click

Exit Sub

End If

End Sub

Codificación botón eliminar

Private Sub cmdEliminar_Click()

Conectar_BD

PREG$ = MsgBox("¿Estas seguro de querer eliminar este registro?", vbYesNo, "Pregunta")

If PREG$ = vbYes Then

VAR1 = Me.cbomHisto.Text

VAR2 = Me.mskFC.Text

Dim micom As ADODB.Command

Set micom = New ADODB.Command

micom.CommandType = adCmdText

micom.CommandText = "Delete from tbCitas Where tbCitas.N_Hist_Fora='" & VAR1 & "'"

micom.ActiveConnection = MiConex

micom.Execute

Set micom = Nothing

MsgBox ("Registro eliminado de la Base de Datos"), vbInformation, "Informacion"

Me.mskFC.Enabled = False

Me.mskHora.Enabled = False

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Limpiar

Desconectar_BD

Else

MsgBox "PROCESO CANCELADO", vbCritical, "DATOS DE ORIGEN SIN CAMBIOS"

cmdLimpiar_Click

Exit Sub

End If

End Sub

Codificación botón buscar

Private Sub cmdBuscar_Click()

On Error GoTo Respuesta

Conectar_BD

Dim MiReg As ADODB.Recordset

Set MiReg = New ADODB.Recordset

Buscar$ = InputBox("Ingrese el número de historia del paciente a consultar")

If Buscar$ = "" Then

MsgBox "Debes llenar un número de historia para poder procesar esos datos", vbInformation, "Entrada Invalida"

Me.cbomHisto.Enabled = True

Page 61: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Exit Sub

End If

MySql = "SELECT * From tbCitas WHERE (((tbCitas.N_Hist_fora)='" & Buscar & "'));"

MiReg.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MiReg.MoveFirst

Do While MiReg.EOF = False

If MiReg.EOF() Then

MsgBox "No hay citas registradas para este paciente", vbInformation, "Resultado de Busqueda"

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Me.cbomHisto.Enabled = True

Me.cbomHisto.SetFocus

Limpiar

Else

Me.cbomHisto.Enabled = False

Me.mskFC.Enabled = True

Me.mskHora.Enabled = True

Me.cbomHisto.Text = MiReg.Fields("N_Hist_Fora")

Me.mskFC.Text = MiReg.Fields("Fec_Cita")

Me.mskHora.Text = Format(MiReg.Fields("Hor_Cita"), "hh:mm AM/PM")

Me.cmdEliminar.Enabled = True

Me.cmdModificar.Enabled = True

End If

MiReg.MoveNext

Loop

MiReg.Close

Desconectar_BD

Exit Sub

Respuesta:

MsgBox "No hay citas registradas para este paciente", vbInformation, "Resultado de Busqueda"

End Sub

Codificación botón Regresar

Private Sub cmdRegresar_Click()

frmMenu.Show

Unload Me

End Sub

Codificación botón limpiar

Private Sub cmdLimpiar_Click()

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Me.cbomHisto.Enabled = True

Me.mskFC.Enabled = False

Me.mskHora.Enabled = False

Me.cmdAgregar.Enabled = False

Me.cbomHisto.SetFocus

Page 62: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Limpiar

End Sub

Subrutina limpiar

Sub Limpiar()

Me.mskFC.Text = "__/__/____"

Me.mskHora.Text = "__:__ __"

End Sub

Page 63: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Pantalla #06.- Pantalla Historial

Image1

XPFrame201

XPButton204

XPButton201

XPButton202

XPButton206

XPButton205

XPButton203

Label1

Label2

Label3

Textbox1

XPMaskEdit201

XPFrame202

XPComboMultiCol201

Page 64: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Form Name

BackColor

BorderStyle

Caption

Icon

Moveable

Picture

StarUpPosition

WindowsState

frmHisto

Blanco

1.- Fixed Single

Pantalla Historial

Ruta de un icono

False

Ruta de Imagen

2.- Center Screen

0.- Normal

Label1 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

N° de historia

0.- Transparent

Cualquiera

Cualquiera

Label2 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Fecha de atención

0.- Transparent

Cualquiera

Cualquiera

Label3 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

Indicaciones

0.- Transparent

Cualquiera

Cualquiera

XPButton201 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdAgregar

Cualquiera

&Agregar

False

Cualquiera

Cualquiera

False

XPButton202 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdModificar

Cualquiera

&Modificar

False

Cualquiera

Cualquiera

False

Page 65: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

XPButton203 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdEliminar

Cualquiera

&Eliminar

False

Cualquiera

Cualquiera

False

XPButton204 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdBuscar

Cualquiera

&Buscar

Cualquiera

Cualquiera

False

XPButton205 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdRegresar

Cualquiera

&Regresar

Cualquiera

Cualquiera

False

XPButton206 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdLimpiar

Cualquiera

&Limpiar

Cualquiera

Cualquiera

False

XPMaskEdit201 Name

Enabled

Mask

mskFA

False

99/99/9999

TextBox1 Name

Enabled

Multiline

Scrollbars

Text

txtIndica

False

True

2.- Vertical

Vacio

Image1

Name

Picture

Stretch

imgFigura

Cualquiera

True

XPComboMultiCol201 Name cbomHisto

XPFrame201 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco6

2.- CiaRight

Blanco

Buttons

Ruta de un icono

Cualquiera

Cualquiera

XPFrame202 Name

Alignment

BackColor

Caption

CaptionPicture

Font / ForeColor

fraMarco5

2.- CiaRight

Blanco

Datos del Paciente

Ruta de un icono

Cualquiera

Page 66: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación al cargar el formulario

Private Sub Form_Load()

On Error Resume Next

Me.cbomHisto.ClearAll

Conectar_BD

Dim MyRec As ADODB.Recordset

Set MyRec = New ADODB.Recordset

MySql = "Select * from tbPaciente"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

bu = MyRec!N_Hist

bu1 = MyRec!Nom_Ape

Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2

With Me.cbomHisto

.BeginUpdate

.Columns = 2

.ColumnHeaderCaption(1) = "N° de Historia"

.ColumnHeaderAlignment(1) = cpAlignCenter

.ColumnHeaderMinWidth(1) = 25

.ColumnHeaderCaption(2) = "Nombres y Apellidos"

.ColumnHeaderAlignment(2) = cpAlignCenter

.ColumnHeaderMinWidth(2) = 150

.AddItem Array(bu, bu1)

.EndUpdate

.ListIndex = 0

MyRec.MoveNext

If MyRec.EOF = True Then

Exit Sub

End If

End With

Loop

MyRec.Close

Desconectar_BD

End Sub

Codificación al presionar una tecla en el combo cbomHisto

Private Sub cbomHisto_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.cbomHisto.Text = "" Then

Me.cbomHisto.SetFocus

Exit Sub

Else

Me.mskFA.Enabled = True

Me.mskFA.SetFocus

End If

End If

End Sub

Page 67: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación de la casilla mskFA

Private Sub mskFA_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.mskFA.Text = "__/__/____" Then

Me.mskFA.SetFocus

Exit Sub

Else

If Not IsDate(Me.mskFA.Text) Then

MsgBox " Fecha Invalida...", vbCritical, "Error..."

Me.mskFA.Text = "__/__/____"

Me.mskFA.SetFocus

Me.txtIndica.Enabled = False

Exit Sub

Else

Me.txtIndica.Enabled = True

Me.txtIndica.Enabled = True

Me.txtIndica.SetFocus

End If

End If

End If

End Sub

Codificación casilla txtIndica

Private Sub txtIndica_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Me.txtIndica.Text = "" Then

Me.txtIndica.SetFocus

Me.cmdAgregar.Enabled = False

Exit Sub

Else

If Me.cbomHisto.Enabled = False Then

Me.cmdModificar.SetFocus

Else

Me.cmdAgregar.Enabled = True

End If

End If

End If

End Sub

Codificación botón agregar

Private Sub cmdAgregar_Click()

On Error GoTo Verificar

Conectar_BD

VAR1 = Me.cbomHisto.Text

VAR2 = Me.mskFA.Text

VAR3 = Me.txtIndica.Text

Dim micom As ADODB.Command

Page 68: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Set micom = New ADODB.Command

micom.CommandType = adCmdText

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM TbCitas"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

micom.CommandText = "insert into tbHistoria_Clinica (N_Hist_Fora, Fec_At, Indicac) values ('" & VAR1 & "',#" &

VAR2 & "#, '" & VAR3 & "')"

micom.ActiveConnection = MiConex

micom.Execute

Set micom = Nothing

MsgBox "Diagnosis guardada con exito", vbInformation, "Datos agregados a la base de datos"

Limpiar

Me.mskFA.Enabled = False

Me.txtIndica.Enabled = False

Me.cmdAgregar.Enabled = False

MyRec.Close

Desconectar_BD

Exit Sub

Verificar:

MsgBox Error

End Sub

Codificación botón modificar

Private Sub cmdModificar_Click()

Conectar_BD

PREG$ = MsgBox("Deseas modificar este registro", vbYesNo, "Advertencia")

If PREG$ = vbYes Then

VAR1 = Me.cbomHisto.Text

VAR2 = Me.mskFA.Text

VAR3 = Me.txtIndica.Text

Dim micom As ADODB.Command

Set micom = New ADODB.Command

micom.CommandType = adCmdText

Set MyRec = New ADODB.Recordset

MySql = "SELECT * FROM tbHistoria_Clinica"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

micom.CommandText = "update tbHistoria_Clinica Set N_Hist_Fora='" & VAR1 & "', Fec_At=#" & VAR2 & "#,

Indicac='" & VAR3 & "' Where tbHistoria_Clinica.N_Hist_Fora='" & VAR1 & "'"

micom.ActiveConnection = MiConex

micom.Execute

Set micom = Nothing

MsgBox "Diagnosis modificada con exito", vbInformation, "Datos agregados a la base de datos"

Limpiar

Me.mskFA.Enabled = False

Me.txtIndica.Enabled = False

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Exit Sub

MyRec.Close

Desconectar_BD

Page 69: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Exit Sub

Else

MsgBox "PROCESO CANCELADO", vbCritical, "DATOS DE ORIGEN SIN CAMBIOS"

cmdLimpiar_Click

Exit Sub

End If

End Sub

Codificación botón eliminar

Private Sub cmdEliminar_Click()

Conectar_BD

PREG$ = MsgBox("¿Estas seguro de querer eliminar este registro?", vbYesNo, "Pregunta")

If PREG$ = vbYes Then

VAR1 = Me.cbomHisto.Text

Dim micom As ADODB.Command

Set micom = New ADODB.Command

micom.CommandType = adCmdText

micom.CommandText = "Delete from tbHistoria_Clinica Where tbHistoria_Clinica.N_Hist_Fora='" & VAR1 & "'"

micom.ActiveConnection = MiConex

micom.Execute

Set micom = Nothing

MsgBox ("Registro eliminado de la Base de Datos"), vbInformation, "Informacion"

Me.mskFA.Enabled = False

Me.txtIndica.Enabled = False

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Limpiar

Desconectar_BD

Else

MsgBox "PROCESO CANCELADO", vbCritical, "DATOS DE ORIGEN SIN CAMBIOS"

cmdLimpiar_Click

Exit Sub

End If

End Sub

Codificación botón buscar

Private Sub cmdBuscar_Click()

On Error GoTo Respuesta

Conectar_BD

Dim MiReg As ADODB.Recordset

Set MiReg = New ADODB.Recordset

Buscar$ = InputBox("Ingrese el número de historia del paciente a consultar")

If Buscar$ = "" Then

MsgBox "Debes llenar un número de historia para poder procesar esos datos", vbInformation, "Entrada Invalida"

Me.cbomHisto.Enabled = True

Exit Sub

Page 70: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

End If

MySql = "SELECT * From tbHistoria_Clinica WHERE (((tbHistoria_Clinica.N_Hist_fora)='" & Buscar & "'));"

MiReg.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MiReg.MoveFirst

Do While MiReg.EOF = False

If MiReg.EOF() Then

MsgBox "No hay diagnosis registradas para este paciente", vbInformation, "Resultado de Busqueda"

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Me.cbomHisto.Enabled = True

Me.cbomHisto.SetFocus

Limpiar

Else

Me.cbomHisto.Enabled = False

Me.mskFA.Enabled = True

Me.txtIndica.Enabled = True

Me.cbomHisto.Text = MiReg.Fields("N_Hist_Fora")

Me.mskFA.Text = MiReg.Fields("Fec_At")

Me.txtIndica.Text = MiReg.Fields("Indicac")

Me.cmdEliminar.Enabled = True

Me.cmdModificar.Enabled = True

End If

MiReg.MoveNext

Loop

MiReg.Close

Desconectar_BD

Exit Sub

Respuesta:

MsgBox "No hay diagnosis registradas para este paciente", vbInformation, "Resultado de Busqueda"

End Sub

Codificación botón regresar

Private Sub cmdRegresar_Click()

frmMenu.Show

Unload Me

End Sub

Codificación botón limpiar

Private Sub cmdLimpiar_Click()

Me.cmdEliminar.Enabled = False

Me.cmdModificar.Enabled = False

Me.cbomHisto.Enabled = True

Me.mskFA.Enabled = False

Me.txtIndica.Enabled = False

Me.cmdAgregar.Enabled = False

Me.cbomHisto.SetFocus

Page 71: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Limpiar

End Sub

Subrutina limpiar

Sub Limpiar()

Me.txtIndica.Text = ""

Me.mskFA.Text = "__/__/____"

End Sub

Page 72: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Pantalla #07.- Pantalla Reportes

Image1

XPFrame201

XPButton202

XPButton201

XPButton204

XPButton203

Label1

XPFrame202

XPListView201

XPComboMultiCol201

Page 73: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Objeto Propiedad Valor

Form Name

BackColor

BorderStyle

Caption

Icon

Moveable

Picture

StarUpPosition

WindowsState

frmReportes

Blanco

1.- Fixed Single

Pantalla Reportes

Ruta de un icono

False

Ruta de Imagen

2.- Center Screen

0.- Normal

Label1 Name

Alignment

AutoSize

Caption

BackStyle

Font

ForeColor

lblInfo

2.- Center

True

N° de historia

0.- Transparent

Cualquiera

Cualquiera

XPButton201 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdImprimir

Cualquiera

&Imprimir

Cualquiera

Cualquiera

False

XPButton202 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdBuscar

Cualquiera

&Buscar Todos

False

Cualquiera

Cualquiera

False

XPButton203 Name

BackColor

Caption

Font

ForeColor

XPDefaultColors

cmdRegresar

Cualquiera

&Regresar

Cualquiera

Cualquiera

False

XPButton204 Name

BackColor

Caption

Enabled

Font

ForeColor

XPDefaultColors

cmdLimpiar

Cualquiera

&Limpiar

False

Cualquiera

Cualquiera

False

XPFrame201 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco6

2.- CiaRight

Blanco

Buttons

Ruta de un icono

Cualquiera

Cualquiera

Page 74: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

XPFrame202 Name

Alignment

BackColor

Caption

CaptionPicture

Font

ForeColor

fraMarco5

2.- CiaRight

Blanco

Datos del Paciente

Ruta de un icono

Cualquiera

Cualquiera

XPComboMultiCol201 Name cbomHisto

XPListView201 Name lvReporte

Image1

Name

Picture

Stretch

imgFigura

Cualquiera

True

Codificación al cargar el formulario

Private Sub Form_Load()

On Error Resume Next

Dim encab As cColumn

With Me.lvReporte

Set encab = .Columns.Add("N° Historia")

encab.MinWidth = 50

Set encab = .Columns.Add("Nombres y Apellidos")

encab.Width = 350

Set encab = .Columns.Add("Fecha de Cita")

encab.MinWidth = 50

Set encab = .Columns.Add("Hora de Cita")

encab.MinWidth = 50

.FullRowSelect = True

.MultiSelect = True

.View = LVViewReport

End With

Me.cbomHisto.ClearAll

Conectar_BD

Dim MyRec As ADODB.Recordset

Set MyRec = New ADODB.Recordset

MySql = "Select * from tbPaciente"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

bu = MyRec!N_Hist

bu1 = MyRec!Nom_Ape

Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2

With Me.cbomHisto

.BeginUpdate

.Columns = 2

.ColumnHeaderCaption(1) = "N° de Historia"

.ColumnHeaderAlignment(1) = cpAlignCenter

.ColumnHeaderMinWidth(1) = 25

.ColumnHeaderCaption(2) = "Nombres y Apellidos"

Page 75: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

.ColumnHeaderAlignment(2) = cpAlignCenter

.ColumnHeaderMinWidth(2) = 150

.AddItem Array(bu, bu1)

.EndUpdate

.ListIndex = 0

MyRec.MoveNext

If MyRec.EOF = True Then

Exit Sub

End If

End With

Loop

MyRec.Close

Desconectar_BD

End Sub

Codificación al presionar una tecla en el combo cbomHisto

Private Sub cbomHisto_KeyPress(KeyAscii As Integer)

On Error Resume Next

Me.lvReporte.ClearItems

If KeyAscii = 13 Then

If Me.cbomHisto.Text = "" Then

Me.cbomHisto.SetFocus

Exit Sub

Else

Dim subencab As cListItem

With Me.lvReporte

Conectar_BD

Dim MyRec As ADODB.Recordset

Set MyRec = New ADODB.Recordset

MySql = "SELECT tbPaciente.N_Hist, tbPaciente.Nom_Ape, tbCitas.Fec_Cita, tbCitas.Hor_Cita FROM tbPaciente

INNER JOIN tbCitas ON tbPaciente.N_Hist = tbCitas.N_Hist_Fora WHERE (((tbPaciente.N_Hist)='" &

Me.cbomHisto.Text & "'));"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

Set subencab = .ListItems.Add(MyRec!N_Hist)

subencab.SubItems(1).Text = MyRec!Nom_Ape

subencab.SubItems(2).Text = MyRec!Fec_Cita

subencab.SubItems(3).Text = MyRec!Hor_Cita

MyRec.MoveNext

If MyRec.EOF = True Then

Exit Sub

End If

Loop

End With

MyRec.Close

Desconectar_BD

End If

End If

End Sub

Page 76: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Codificación botón buscar

Private Sub cmdBuscar_Click()

On Error Resume Next

Me.lvReporte.ClearItems

Dim subencab As cListItem

With Me.lvReporte

Conectar_BD

Dim MyRec As ADODB.Recordset

Set MyRec = New ADODB.Recordset

MySql = "SELECT tbPaciente.N_Hist, tbPaciente.Nom_Ape, tbCitas.Fec_Cita, tbCitas.Hor_Cita FROM tbPaciente

INNER JOIN tbCitas ON tbPaciente.N_Hist = tbCitas.N_Hist_Fora;"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

Set subencab = .ListItems.Add(MyRec!N_Hist)

subencab.SubItems(1).Text = MyRec!Nom_Ape

subencab.SubItems(2).Text = MyRec!Fec_Cita

subencab.SubItems(3).Text = MyRec!Hor_Cita

MyRec.MoveNext

If MyRec.EOF = True Then

Exit Sub

End If

Loop

End With

MyRec.Close

Desconectar_BD

End Sub

Codificación botón Limpiar

Private Sub cmdLimpiar_Click()

Me.lvReporte.ClearItems

End Sub

Codificación botón Regresar

Private Sub cmdRegresar_Click()

frmMenu.Show

Unload Me

End Sub

Page 77: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Pasos para finalizar la codificación Imprimir

1.- Estando en el menú proyecto/referencias/ agregamos la librería Microsoft Word 10.0 ó 11.0 ó 12.0 object library

dependiendo de la versión de office que tenga instalada en su computadora

Page 78: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

2.- Abrimos la aplicación de Microsoft Word

3.- Como en este caso solo queremos es imprimir los siguientes campos (N° de historia, Nombre y Apellidos, Fecha de la

Cita y Hora de la Cita) creamos etiquetas de enlaces con visual identificándolos para hacer la referencia

correspondiente.

3.1- Primero diseñamos como queremos que quede el aspecto del informe

Page 79: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Como se puede apreciar en la figura anterior tenemos un encabezado y luego una tabla de 4 columnas * 2 filas

4.- Guardamos los cambios en la carpeta de trabajo con el nombre de reporte_Citas y finalizamos la aplicación de Word

Codificación del botón imprimir

Private Sub cmdImprimir_Click()

Dim Co As Integer

Dim Encontrar As String

Encontrar = App.Path & "\Reporte_Citas.docx"

Dim MSWord As New Word.Application

Dim Documento As Word.Document

Set Documento = _

MSWord.Documents.Open(Encontrar)

Co = 2

Conectar_BD

Dim MyRec As ADODB.Recordset

Set MyRec = New ADODB.Recordset

MySql = "SELECT tbPaciente.N_Hist, tbPaciente.Nom_Ape, tbCitas.Fec_Cita, tbCitas.Hor_Cita FROM tbPaciente

INNER JOIN tbCitas ON tbPaciente.[N_Hist] = tbCitas.[N_Hist_Fora];"

MyRec.Open MySql, MiConex, adOpenDynamic, adLockOptimistic

MyRec.MoveFirst

Do While MyRec.EOF = False

Documento.Tables(1).Cell(Co, 1).Range.Text = MyRec!N_Hist

Documento.Tables(1).Cell(Co, 2).Range.Text = MyRec!Nom_Ape

Documento.Tables(1).Cell(Co, 3).Range.Text = MyRec!Fec_Cita

Page 80: Manual Práctico VB6 ADO

Prof. Jean Carlos Blanco B.

Documento.Tables(1).Cell(Co, 4).Range.Text = MyRec!Hor_Cita

Documento.Tables(1).Rows.Add

Co = Co + 1

MyRec.MoveNext

If MyRec.EOF = True Then

Co = 0

Exit Sub

End If

Loop

MSWord.Visible = True

MyRec.Close

Desconectar_BD

End Sub