Documente Academic
Documente Profesional
Documente Cultură
Objetivo: Utilizar los conocimientos adquiridos para la realización de una base de datos
mediante el uso del macros y formularios aprendidos en la catedra de Computación Aplicada
Pasos
Para empezar este Macro primero realizamos lo aprendido en el macro de cálculos hidráulicos
y grabaremos un macro para poner nuestro titulo
nob = InputBox("Ingresar 1 si desea solo buscar en la base de datos actual " & Chr(13) & _
"Ingresar 2 si desea solo modificar en la base de datos actual" & Chr(13) & _
"Ingresar ENTER si desea crear una nueva base de datos " & Chr(13), "Computación Aplicada
")
Range("a1:q1").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("a1:G1").Select
With Selection.Font
.Name = "Calibri"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.Color = -16776961
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Selection.Font.Bold = True
Range("B4").Select
columna1 = 2
columna2 = 3
columna3 = 4
columna4 = 5
columna5 = 6
columna6 = 7
columna7 = 8
columna8 = 9
columna9 = 10
columna10 = 11
columna11 = 12
columna12 = 13
columna13 = 14
columna14 = 15
columna15 = 16
columna16 = 17
columna17 = 18
columna18 = 19
columna19 = 20
Para lo cual tendremos antes un ingreso por pantalla el número de estudiantes que deseamos
ingresar
Así tendremos un numero para comparar hasta el final del bucle tendremos que considerar
siempre eso ; ahora necesitamos contadores para concluir uno para cada caso que se iniciara
en 0 y el otro para poner el numero ; el 0 se dara como inicio a lo nuestro ahora podreceremos
con el código Cell para poder iniciar
apellido1 = apellido11
Se aplicara la misma lógica usada para para el ingreso del resto en cada punto con la inclusión
en cada parte de su respectiva modificación
'INGRESO DE GÉNERO
Do
genero = InputBox("Para ingresar el género masculino ingrese 1" & Chr(13) & _
"Para ingresar género femenino ingrese 2 " & Chr(13), "Computación Aplicada ")
genero = Val(genero)
If genero = 1 Then
genero1 = "MASCULINO"
MsgBox "El genero ingresado es : " & genero1, , "Computación Aplicada "
genero1 = "FEMENINO"
MsgBox "El genero ingresado es : " & genero1, , "Computación Aplicada "
End If
Ahora para ingresar tanto la provincia y la región lo dividiremos por región para poder tener
una mejor configuración y pondremos un código similar donde englobaremos 3 If consecutivos
uno tendrá la región otro tendrá la provincia y otro tendrá el cantón por lo tanto nuestro
código tendrá el siguiente formato
Do
region = InputBox("Si pertenece a la región costa ingrese 1 " & Chr(13) & _
"Si pertenece a la región insular ingrese 4" & Chr(13), "Computación Aplicada ")
Loop Until region = "1" Or region = "2" Or region = "3" Or region = "4"
If region = 1 Then
Do
provincia = InputBox("Si usted es originario de El Oro pulse 1 " & Chr(13) & _
"Si usted es originario de Los Rios pulse 4" & Chr(13) & _
"Si usted es originario de Santa Elena pulse 6" & Chr(13), "Computación Aplicada ")
Loop Until provincia = "1" Or provincia = "2" Or provincia = "3" Or provincia = "4" Or provincia
= "5" Or provincia = "6"
'ESMERALDAS
If provincia = 2 Then
provincia1 = "ESMERALDAS"
MsgBox "La provincia ingresada es : " & provincia1, , "Computación Aplicada "
Do
canton = InputBox("Si usted es originario del canton Esmeraldas pulse 1 " & Chr(13) & _
"Si usted es originario del cantón Atacames pulse 2" & Chr(13) & _
"Si usted es originario del cantón Eloy Alfaro pulse 3" & Chr(13) & _
"Si usted es originario del cantón Muisne pulse 4" & Chr(13) & _
"Si usted es originario del cantón Quinindé pulse 5" & Chr(13) & _
"Si usted es originario del cantón Rio Verde pulse 6" & Chr(13) & _
"Si usted es originario del cantón San Lorenzo pulse 7" & Chr(13), "Computación Aplicada ")
Loop Until canton = "1" Or canton = "2" Or canton = "3" Or canton = "4" Or canton = "5" Or
canton = "6" Or canton = "7"
If canton = 1 Then
canton1 = "ESMERALDAS"
MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "
canton1 = "ATACAMES"
MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "
MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "
canton1 = "MUISNE"
canton1 = "QUININDÉ"
MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "
MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "
MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "
End If
End If
Luego aplicaremos la misma lógica para cada una de las provincias y cantones del Ecuador para
este ejemplo se ha tomado el dato de región sierra , provincia de Pichincha y cantón Quito
Ahora para el ingreso de la edad será muy similar a lo hecho con anterioridad lo cual se
diferenciara del ingreso del mes además de esto el ingreso del día de nacimiento y para sacar
la edad completa daremos una formula del el hoy y se restara ; si los días salen negativos
restaremos a los meses , si los meses salen negativos al año para así no tener incongruencias
en nuestro macro además de esto discriminaremos si los meses son de 31 días o 30 eh
incluiremos el inicio mes con 28 días
Do
mes = InputBox("Si usted nacio en enero ingrese 1 " & Chr(13) & _
"Si usted nacio en diciembre ingrese 12 " & Chr(13), "Computación Aplicada ")
Loop Until mes = "1" Or mes = "2" Or mes = "3" Or mes = "4" Or mes = "5" Or mes = "6" Or mes
= "7" Or mes = "8" Or mes = "9" Or mes = "10" Or mes = "11" Or mes = "12"
If mes = 1 Then
mes1 = 1
mes1 = 2
mes1 = 3
mes1 = 5
mes1 = 6
mes1 = 7
mes1 = 8
mes1 = 9
mes1 = 10
mes1 = 11
mes1 = 12
End If
'Hoy
a = Now
diaa = Day(a)
mess = Month(a)
añoo = Year(a)
mess = mess - 1
Else
End If
añoo = añoo - 1
Else
End If
aaño = añoo - año
ww = ww + 1
i=i+1
j=j+1
En el ingreso de nuevo será nuestro código igual sin cambios ya que debido a el código borra
las celdas se queda igual y se correrá desde 0
Para la parte de modificar usaremos el GoTo ya que es una herramienta muy adecuada para
saltar líneas o regresar dependiendo como lo usemos por lo tanto bastara con un GoTo para
que el macro no se borre y con algunas modificaciones a nuestro código principal podremos
realizar desde el número anterior del estudiante
Ahora para el código de búsqueda es básicamente nuestro bucle anteriormente de ingreso de
datos y lo hacemos independiente ahora se ingresara un rango de búsqueda básicamente es
un código comparativo por cada fila ; debido a que en una base de datos puede haber muchos
se tomara en cuenta todo el nombre
Para el uso del formulario
Tendremos de esta manera pero es solo uso de lo aprendido en las Clases de computación
Aplicada
DEBIDO A LO APRENDIDO ANTERIORMENTE SE TIENE EN CUENTA QUE EL UNICO PROBLEMA
ES LA CREACIÓN DE UN BUCLE PARA LA ENTRADA DE DATOS POR LO TANTO SE ESTABLECIO
OTRA SOLUCIÓN CON EL USO DEL GOTO DONDE TENDREMOS UN IF Y SI NO SE CUMPLE SE
VOLVERA HASTA QUE VUELVA AL INICIO
i=0
j=1
40
If i = a Then
GoTo 50
Else
nom = InputBox("Ingrese el apellido del estudiante " & Chr(13), "Computación Aplicada ")
Cells(4 + i, 1).Value = j
i=i+1
j=j+1
GoTo 40
End If
50
End Sub
Conclusiones
Recomendación
En muchas ocaciones se debe copiar por facilidad y tiempo los codigos previos que se han
hecho y la modificacion de aquellos se llevar con mucha precaución.
Bibliografía
Charte, F. (2010). Microsoft Excel 2010 (Guía práctica). Madrid: Anaya. Dodge, M. & Stinson, C.
(2010). Excel 2010. Madrid: Anaya.
Aspel de México, S.A. de C.V., Manual de COI. Sistema de Contabilidad Integral, México. Mark,
Davis, Fundamentos de dirección de operaciones, España, Mc Graw Hill, 2001.
INICIO BASE DE DATOS DE ESTUDIANTES DE LA CARRERA DE PETRÓLEOS
N° Primer apellido Segundo apellido Primer nombre Segundo nombre Género Provincia Cantón Año de Nacimiento Mes de Nacimiento Día de Nacimiento Año Actual Mes Actual Día Actual Edad en dias actual Edad en meses actual Edad en años actual
1 ACUÑA JARAMILLO ALEXANDER JOSE MASCULINO PICHINCHA QUITO 1996 1 0 2019 1 15 15 0 23
2 ACUÑA JARAMILLO RICARDO PATRICIO MASCULINO MORONA SANTIAGO TIWINTZA 1993 5 18 2019 1 15 27 7 25
3 ACUÑA COBOS BOLIVAR PATRICIO MASCULINO PICHINCHA QUITO 1963 11 17 2019 1 15 28 1 55
4 CAÑAREJO BORJA MATEO DAVID MASCULINO PAZTAZA ARAJUNO 2000 10 11 2019 1 15 4 3 18
5 DASILVA GARCIA OSWALDO JOSE MASCULINO ZAMORA CHINCHIPE YACUAMBI 2008 10 9 2019 1 15 6 3 10
6 HEREDIA JATIVA PILAR ESTEFANIA FEMENINO MANABÍ MANTA 2001 10 18 2019 1 15 27 2 17
7 JACOME JATIVA ERICK ANDRES MASCULINO GALÁPAGOS Santa Cruz 1998 12 5 2019 1 15 10 1 20
8 JARAMILLO NARANJO MARGOTH MARICELLY FEMENINO BOLÍVAR GUARANDA 1968 1 15 2019 1 15 30 11 50
9 JIMENEZ CASTRO MARCO GABRIEL MASCULINO TUNGURAHUA SANTIAGO DE PÍLLARO 1999 5 11 2019 1 15 4 8 19
10 LOPEZ MENDEZ MARIA ISABEL FEMENINO SANTA ELENA SALINAS 1992 12 1 2019 1 15 14 1 26
11 RICAURTE VILLANUEVA DIEGO DAVID MASCULINO SANT0 DOMINGO DE LOS TSÁCHILAS LA CONCORDIA 1999 12 2 2019 1 15 13 1 19
12 ROSERO ARTEAGA BRIGITH MARISOL FEMENINO AZUAY PUCARÁ 1997 8 4 2019 1 15 11 5 21
13 TORRES ANDRADE KEVIL ISMAL MASCULINO ZAMORA CHINCHIPE YANTZAZA 1996 11 1 2019 1 15 14 2 22
BÚSQUEDA
PRIMER APELLIDO ACUÑA
SEGUNDO APELLIDOJARAMILLO
PRIMER NOMBRE ALEXANDER
SEGUNDO NOMBRE JOSE
SEXO MASCULINO
PROVINCIA PICHINCHA
CANTÓN QUITO
AÑO 1996
MES 1
DÍA 0
EDAD ACTUAL 23