Professional Documents
Culture Documents
FASE #01
- Crear carpeta de trabajo en una ruta especifica
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.
hechos se corresponden con los campos (columnas) de la base de datos y los temas a los
que pertenecen los hechos son las tablas.
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:
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.
Prof. Jean Carlos Blanco B.
A la hora de decidir a qué tabla pertenece cada campo, tenga presentes estos principios
de diseño:
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.).
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
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.
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:
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.)).
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.).
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.
Prof. Jean Carlos Blanco B.
Paso 1.- Desarrollamos la siguiente plantilla:
Diccionario de Datos
Clave Principal
Clave Foránea
Requerido
Nombre del Campo Tipo de Datos Tamaño Formato Mascara Titulo / Descripción
Clave Principal
Clave Foránea
Requerido
Nombre del Campo Tipo de Datos Tamaño Formato Mascara Titulo / Descripción
Clave Principal
Clave Foránea
Requerido
Nombre del Campo Tipo de Datos Tamaño Formato Mascara Titulo / Descripción
DS02 TbHistoria_Clinica
Indica
Fech_Act
Se
Asigna N_Hist (Clave Foránea)
DS01 TbPacientes
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.
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:
Después de haber creado todas las tablas procedemos a crear las relaciones entre las
tablas. Veamos las ilustraciones para crearla:
- 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:
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
Prof. Jean Carlos Blanco B.
Label2
Label1
Timer1
ProgressBar 20
Cambiamos el evento
Cargar (Load) por Descargar (Unload)
Unload me
Label1
Image1
Label2
XPComboBox201
XPText201
XPFrame201
XPFrame202
Label3
XPButton202
Clave Principal
Clave Foránea
Requerido
Nombre del Campo Tipo de Datos Tamaño Formato Mascara Titulo / Descripción
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
Prof. Jean Carlos Blanco B.
Image 2
XPFrame203
XPFrame205
Label7 XPText203
Label8 XPText204
Label9 XPText205
Label10 XPText206
XPOption201 XPOption202
Label5
XPText202
XPButton204 XPButton206
XPButton205
Prof. Jean Carlos Blanco B.
Código al cargar el formulario (Nota: solo añadimos a esa codificación lo que se encuentran en negrita)
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
End If
End If
End Sub
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
Prof. Jean Carlos Blanco B.
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
Prof. Jean Carlos Blanco B.
XPFrame201
XPButton201 XPButton202
Image1 Image2
Image3
XPButton203
XPButton204
Image5
Image4
XPButton205
Prof. Jean Carlos Blanco B.
XPButton203
XPButton202 XPButton205
XPButton204
Image1
XPFrame202
XPMaskEdit201
Label1
XPText201
Label2 XPMaskEdit202
Label3 XPText202
Label4 XPOption202
XPOption201
Label5
Label6
Label7 XPMaskEdit203 XPText204 XPText203
Prof. Jean Carlos Blanco B.
Me.txtNom.SetFocus
End If
End If
End Sub
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
Codificación optF
Codificación txtOcup
Codificación txtDir
Codificación mskTlf
End Sub
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
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
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
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
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
XPButton203
XPButton202 XPButton205
XPButton204
Image1
XPFrame202
Label1
Label2 XPComboMultiCol201
Label3
XPMaskEdit201
XPMaskEdit202
Prof. Jean Carlos Blanco B.
End Sub
Exit Sub
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
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
Limpiar
End Sub
Subrutina limpiar
Sub Limpiar()
Me.mskFC.Text = "__/__/____"
Me.mskHora.Text = "__:__ __"
End Sub
Prof. Jean Carlos Blanco B.
XPButton203
XPButton202 XPButton205
XPButton204
Image1
XPFrame202
Label1
Label2 XPComboMultiCol201
Label3
XPMaskEdit201
Textbox1
Prof. Jean Carlos Blanco B.
End Sub
Exit Sub
Else
MsgBox "PROCESO CANCELADO", vbCritical, "DATOS DE ORIGEN SIN CAMBIOS"
cmdLimpiar_Click
Exit Sub
End If
End Sub
End Sub
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
Limpiar
End Sub
Subrutina limpiar
Sub Limpiar()
Me.txtIndica.Text = ""
Me.mskFA.Text = "__/__/____"
End Sub
Prof. Jean Carlos Blanco B.
XPButton201 XPButton203
XPFrame201
XPButton202
Image1
XPFrame202
XPButton204
Label1
XPComboMultiCol201
XPListView201
Prof. Jean Carlos Blanco B.
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"
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
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
Prof. Jean Carlos Blanco B.
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
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