Casa abierta al tiempo
UNIVERSIDAD AUTóNOMA METROPOLITANA
UNIDAD: IZTAPALAPA
DIVISIóN: CIENCIAS BASCAS E INGENIERíA
CARRERA: COMPUTACIóN
MATERIA: PROYECTO DE INVESTIGACIóN II
TíTULO:
“CONSULTAS PARA EL SISTEMA MULTIPLE DE INFORMACIóN SOCIO-CULTURAL Y RELIGIOSA”
FECHA: MARZO DE 2002
NOMBRE DEL ALUMNO: JOSÉ JORGE GARCíA RODRíGUEZ
MATRíCULA: 93220256
ASESOR: LIC. LUIS E. RODRiGUEZ OJEDA
iNDlCE
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Desarrollo de las Consultas para el Sistema Múltiple de Información Socio-cultural y Religiosa ............................................... 4
Consultas para el Sistema Múltiple de Información Socio-cultural y Religiosa . Manual de Usuario .................................. 5
Pantalla de Inicio del Sistema ........................................................... 5
Pantalla de entrada a las Consultas para el SMISC ......................... 6
Pantalla para Mantenimiento de Archivos Hemerográficos .............. 8
Pantallas de Catálogos ..................................................................... 10
Pantalla General para Consultas Hemerográficas ............................ 17
Ventana para Actualizar la Clave de Entrada ................................... 21
Consultas para el Sistema Múltiple de Información Socio-cultural y Religiosa . Manual Técnico ...................................... 23
Descripción General del Sistema SMISC .......................................... 23
Descripción de la Base de Datos ....................................................... 24
Descripción y Estructura de los Campos de la Base de Datos de Fichas Hemerográficas ................................ 25
Esquema de la Base de Datos de Fichas Hemerográficas Modelo de Entidad-relación ..................................... 27
Código Fuente de las Consultas para el Sistema Múltiple de Información Socio-cultural y Religiosa (SMISC) .............. 28
En la actualidad el desarrollo de sistemas para el análisis y la investigación en las diversas áreas, ha cobrado una importancia tal que, tanto en el ámbito académico como en el laboral, sea público o privado es necesario contar con herramientas que permitan la simplificación y la evolución tecnológica.
Uno de tantos factores que intervinieron en la revolución tecnológica fue la gran explosión demográfica mundial, la cual ha llevado al crecimiento acelerado del conocimiento y este, a su vez, a la explosión de la información, la cual ha representado cambios profundos en las modalidades de operar de la misma ciencia, propiciando el nacimiento de nuevas disciplinas.
La necesidad de independencia ha llevado al hombre a crear herramientas que le permitan localizar, seleccionar, coleccionar o analizar, la información que requiere para sus distintas actividades, ya sean científicas, de investigación, académicas o cotidianas, para lo cual ha utilizado herramientas, como son las computadoras, las telecomunicaciones y demás instrumentos, que han revolucionado la vida del hombre en todos sus aspectos.
Es innegable que cada día son más las universidades, empresas, oficinas y comercios que utilizan la PC como una eficiente herramienta para ahorrar tiempo y dinero en sus procesos de investigación, producción y administración. Es por esto, que los profesionales de distintas áreas solicitan a las personas especializadas en computación el desarrollo de sistemas y programas que logren eficientar y optimizar la organización de la información y la simplificación del trabajo en cualquiera que sea su rama.
También es importante señalar que a la hora de diseñar sistemas o tomar decisiones tecnológicas, no sólo se deben analizar aspectos meramente técnicos, sino su utilidad real y las implicaciones o consecuencias futuras, siendo éstas mayormente positivas porque todo trabajo es perfectible y con el surgimiento de herramientas cada vez más modernas y eficaces, los trabajos realizados en uno u otro programa tienen la posibilidad de ser mejorados en el futuro.
AI producir software, diseñar aplicaciones computacionales y reorganizar el trabajo de las personas con tecnología computacional, estamos contribuyendo directa o indirectamente a modificar y eficientar el mundo en el que vivimos y trabajamos. Consciente de lo anterior es que la actitud de los profesionales del área debe ser protagónica y cooperativa con las diversas disciplinas.
La concepción que se tenía de la información, ya ha cambiado y no es más algo aburrido y árido, sino por el contrario, se ha vuelto un mundo fascinante en donde casi podemos tocar el resultado de la evolución de todo aquello que estudiamos y,
por consiguiente, de nosotros mismos. Por lo tanto, la información tiene una importancia trascendental, ya que ésta representa la producción científica del mundo, la cual interviene directamente en el desarrollo de un país.
A partir del uso generalizado de las microcomputadoras, a mediados de la década de los ochenta la elaboración de bases de datos en nuestro país, deja de ser un trabajo inalcanzable para una gran cantidad de centros de investigación, ya que conocían las ventajas de acumular y cruzar la información sobre un tema con otro tema, de un país en especial o de un periodo determinado. Además, en ese mismo tiempo en las bibliotecas se visualizan las posibilidades que les brinda la computación y generan infinidad de bases de datos referenciales, que guardan un alto grado de homogeneidad debido a las normas y criterios creados con anterioridad para la clasificación de todo tipo de documentos.
Asimismo, los especialistas en computación se hicieron conscientes de que no bastaba el simple uso de las computadoras y las telecomunicaciones para organizar la información se requería además, programas que permitieran estructurar la información para acceder a la misma en forma fácil, rápida y confiable. Fue para resolver este problema que se crearon las bases de datos y sus manejadores con el propósito de manejar e intercambiar la información.
Teniendo en cuenta todo este proceso de evolución tecnológica y la necesidad de crear herramientas que faciliten el manejo de la cuantiosa información que es producida por las distintas áreas de investigación de la Universidad Autónoma Metropolitana, fue desarrollado para el área de Estado y Movimientos Sociales adscrita al Departamento de Sociología de la División de Ciencias Sociales y Humanidades, el “Sistema Múltiple de Información Socio-cultural y Religiosa V. l .O bajo la dirección del Profesor Luis E. Rodriguez Ojeda con la finalidad de sistematizar gran cantidad de información recopilada a lo largo de muchos años en bases de datos.
Partiendo de este trabajo previo, se plateó la posibilidad de desarrollar un sistema de consultas que permitiera realizar un análisis cuantitativo de la información contenida en dichas bases de datos, para los diferentes trabajos de investigación que se desarrollan con la información ya almacenada. Este sistema de consultas constituye la materia del presente trabajo.
Para elaborar este trabajo denominado “Consultas para el Sistema Múltiple de Información Socio-cultural y Religiosa” (SMISC) se actualizó a la versión del compilador de Visual Basic 6.0 con el objeto de contar con unas herramientas más actuales en relación con el sistema antecesor desarrollado en la versión 5.0 del mismo compilador; La decisión de utilizar esta herramienta de programación se basó en sus características de tal suerte que no sólo permitiera el desarrollo más eficaz del sistema, sino también una interfaz de salida más amigable y clara para el usuario, facilitando así el manejo del sistema. Otro punto a favor de la utilización de esta herramienta fue la de obtener conocimientos y experiencia en sistemas de cómputo actuales y con un amplio mercado de utilidad en el sector productivo.
3
DESARROLLO DE LAS CONSULTAS PARA EL SISTEMA MULTIPLE DE INFORMACIóN SOCIO-CULTURAL Y RELIGIOSA
En el análisis del sistema SMISC se observó que se requería de una gran versatilidad en las ventanas para las consultas ya que se pretendía poder filtrar la información capturada en las bases de datos utilizando desde uno o más campos, hasta poder realizar consultas restringiendo todos los campos con que cuentan las tablas de las bases; de tal forma que se optó por desarrollar una sola pantalla general para las consultas que fuera capaz de permitir toda la amplia gama de opciones para efectuar cualquier consulta.
Uno de los primeros pasos fue integrar las distintas bases de datos capturadas por separado en una sola, para de esta forma tener todo el concentrado de la información y así poder continuar con los pasos subsecuentes.
El desarrollo del sistema, desde su fase de análisis, programación e implementación se efectuó en un periodo de ocho meses concluyendo con la fase de pruebas. El acceso a la base de datos fue de dos tipos, el primero utilizando los objetos integrados en Visual Basic y el segundo mediante objetos de acceso a datos ADO (ActiveX Data Oblects). Las bases de datos que utiliza este sistema se encuentran desarrolladas en Access ’97 el cual les proporciona la extensión “mbd”.
La fase de pruebas se realizó con un respaldo de la Base de Datos original llamada Iglesia.mdb contiene hasta este momento 26000 registros aproximadamente y fue concluida con éxito, sin embargo, queda abierta la posibilidad de migrar en un futuro esta y las otras bases a otro motor de manejo de Bases de Datos, con el fin de brindar entre otras ventajas una mayor velocidad en cuanto al acceso a los registros.
El equipo que se utilizó para el desarrollo completo del SMISC fue el adquirido por el asesor del proyecto ya que para el buen funcionamiento de esta herramienta era necesario un equipo moderno capaz de correr aplicaciones de 32 bits, las características de dicho equipo son: 8 Gb de disco duro y un procesador Pentium II a 400 MHz con 192 Mb de RAM y 512 Kb de cache, pues la enorme cantidad de información que se manejó hizo necesaria una gran capacidad de almacenamiento así como una buena velocid.ad.
El sistema SMISC fue terminado con todos los módulos que incluye el mismo, los cuales serán explicados de manera más amplia en el “Manual de Usuario”. Sin embargo queda abierta la opción de integrar más módulos para satisfacer las futuras necesidades de los usuarios de este.
En este texto se encuentra toda la información referente al desarrollo del sistema SMlSC incluyendo diagramas, tablas, pantallas, código fuente y demás datos que se consideran necesarios así como el manual de usuario y el manual técnico.
4
CONSULTAS PARA EL SISTEMA MULTIPLE DE INFORMACI~N SOCIO- CULTURAL Y RELIGIOSA.
MANUAL DE USUARIO
Pantalla de inicio del Sistema (SMISC). Esta es la pantalla de inicio donde se muestra una caja de texto para ingresar la clave de acceso al sistema (la clave para el sistema de consultas “SMISC” es la misma que la clave para el Sistema de Información Socio-cultural y Religiosa ”MISC”) la cual es indispensable para poder trabajar en él.
Como parte de la seguridad del sistema, esta pantalla quedará desactivada al tercer intento erróneo; la clave de acceso al sistema será proporcionada por el administrador del mismo.
AI ingresar la clave correcta, se tiene un acceso total al sistema, pudiendo así utilizar los módulos sin ninguna restricción. Es altamente recomendable ser cuidadoso con las acciones que se realicen en el sistema pues su mal uso puede afectar la integridad de la información.
5
Pantalla de entrada a las consultas para el SMISC. En esta pantalla se muestran las opciones con que cuenta el sistema; cuenta con un módulo de mantenimiento de archivos bibliográficos, fotográficos y hemerográficos; un módulo de catálogos hemerográficos el cual se subdivide en: catálogo de actitudes, estamentos, géneros, medios periodísticos, secciones y tipos de medio; un módulo de consultas bibliográficas, fotográficas y hemerográficas; un módulo de funciones y un módulo de salida del sistema. Más adelante se describirá detalladamente cada uno de estos módulos.
Para tener acceso a cada módulo sólo se debe presionar el nombre del mismo en el menú de opciones, y con esto se activa el formulario correspondiente.
6
AI entrar al módulo de mantenimiento de registros se tienen tres opciones: Bibliográfico, Fotográfico y Hemerográfico.
La opción de Hemerográfico es la que nos permitirá hacer cualquier tipo de movimiento con los registros de la base de datos Iglesia.mdb.
7
Pantalla para mantenimiento de archivos hemerográficos. Aquí encontramos las opciones que nos permitirán: “Alta” dar de alta un nuevo registro, “Baja” dar de baja, y “Cambio” para hacer cambios en el registro seleccionado; “Actualizar” hace permanentes los cambios efectuados por las opciones: “Grabar y “Cancelar”, también cuenta con los botones para desplazamiento entre los registros “Primero” para moverse al primer registro de la tabla, “Anterior” y “Siguiente” para desplazarse ya sea un registro hacia delante o un registro hacia atrás y “Ultimo” para moverse al ultimo registro de la tabla.
Además en la barra de menú de arriba se presentan un similar para cada botón antes mencionado para hacer más cómodo su manejo además del botón de “Salir” con el cual regresamos al menú principal del sistema.
En el momento de borrar un registro se debe confirmar la acción, ya que en caso de eliminar un registro equivocadamente ya no será posible recuperarlo.
8
Cuando se entra en el módulo de Catálogos para Fichas Hemerográficas, podemos ver las diferentes opciones de catálogo con que cuenta el sistema, entre los cuales podemos ver el catálogo de Actitudes, el catálogo de Estamentos, el catálogo de géneros, el catálogo de Medios Periodísticos, el catálogo de Secciones y el catálogo de Tipos de Medio; cada uno de ellos trabaja de manera independiente en el formulario General de Consultas Hemerográficas.
Para tener acceso a cada catálogo sólo basta con presionar el nombre del catálogo que se desea ingresar.
9
En la opción de Catálogo de Actitudes se muestra una lista combinada de las actitudes que ya están registradas en la Base de Datos, precedidas por sus números de ID los cuales se usan para relacionar las opciones de este catálogo con los registros grabados.
Como ya se mencionó antes estos catálogos trabajan de manera conjunta con el formulario General de Consultas Hemerográficas; de tal manera que no tienen otro objeto que el de proporcionar la información que contienen.
Es importante aclarar que para la ejecución correcta de las consultas la información que se utiliza para formar la cadena de consulta es la de los números de ID ya que esta clave es la que se encuentra grabada en la tabla que contiene la información de los registros capturados en la Base de Datos. Por lo tanto si se selecciona un nombre en lugar de su ID provocará que la consulta realizada devuelva un valor erróneo.
En la opción de Catálogo de Estamentos se muestra una lista combinada de los estamentos que ya están registrados en la Base de Datos, precedidos por sus números de ID los cuales se usan para relacionar las opciones de este catálogo con los registros grabados.
Como ya se mencionó antes estos catálogos trabajan de manera conjunta con el formulario General de Consultas Hemerográficas; de tal manera que no tienen otro objeto que el de proporcionar la información que contienen.
Es importante aclarar que para la ejecución correcta de las consultas la información que se utiliza para formar la cadena de consulta es la de los números de ID ya que esta clave es la que se encuentra grabada en la tabla que contiene la información de los registros capturados en la Base de Datos. Por lo tanto si se selecciona un nombre en lugar de su ID provocará que la consulta realizada devuelva un valor erróneo.
11
En la opción de Catálogo de Géneros se muestra una lista combinada de los géneros que ya están registrados en la Base de Datos, precedidos por sus números de ID los cuales se usan para relacionar las opciones de este catálogo con los registros grabados.
Como ya se mencionó antes estos catálogos trabajan de manera conjunta con el formulario General de Consultas Hemerográficas; de tal manera que no tienen otro objeto que el de proporcionar la información que contienen.
Es importante aclarar que para la ejecución correcta de las consultas la información que se utiliza para formar la cadena de consulta es la de los números de ID ya que esta clave es la que se encuentra grabada en la tabla que contiene la información de los registros capturados en la Base de Datos. Por lo tanto si se selecciona un nombre en lugar de su ID provocará que la consulta realizada devuelva un valor erróneo.
En la opción de Catálogo de Medios Periodísticos se muestra una lista combinada de los medios periodísticos que ya están registrados en la Base de Datos, precedidos por sus números de ID los cuales se usan para relacionar las opciones de este catálogo con los registros grabados.
Como ya se mencionó antes estos catálogos trabajan de manera conjunta con el formulario General de Consultas Hemerográficas; de tal manera que no tienen otro objeto que el de proporcionar la información que contienen.
Es importante aclarar que para la ejecución correcta de las consultas la información que se utiliza para formar la cadena de consulta es la de los números de ID ya que esta clave es la que se encuentra grabada en la tabla que contiene la información de los registros capturados en la Base de Datos. Por lo tanto si se selecciona un nombre en lugar de su ID provocará que la consulta realizada devuelva un valor erróneo.
13
En la opción de Catálogo de Secciones se muestra una lista combinada de las secciones que ya están registradas en la Base de Datos, precedidas por sus números de ID los cuales se usan para relacionar las opciones de este catálogo con los registros grabados.
Como ya se mencionó antes estos catálogos trabajan de manera conjunta con el formulario General de Consultas Hemerográficas; de tal manera que no tienen otro objeto que el de proporcionar la información que contienen.
Es importante aclarar que para la ejecución correcta de las consultas la información que se utiliza para formar la cadena de consulta es la de los números de ID ya que esta clave es la que se encuentra grabada en la tabla que contiene la información de los registros capturados en la Base de Datos. Por lo tanto si se selecciona un nombre en lugar de su ID provocará que la consulta realizada devuelva un valor erróneo.
14
En la opción de Catálogo de Tipos de Medio se muestra una lista combinada de los tipos de medio que ya están registrados en la Base de Datos, precedidos por sus números de ID los cuales se usan para relacionar las opciones de este catálogo con los registros grabados.
Como ya se mencionó antes estos catálogos trabajan de manera conjunta con el formulario General de Consultas Hemerográficas; de tal manera que no tienen otro objeto que el de proporcionar la información que contienen.
Es importante aclarar que para la ejecución correcta de las consultas la información que se utiliza para formar la cadena de consulta es la de los números de ID ya que esta clave es la que se encuentra grabada en la tabla que contiene la información de los registros capturados en la Base de Datos. Por lo tanto si se selecciona un nombre en lugar de su ID provocará que la consulta realizada devuelva un valor erróneo.
15
Cuando de entra al módulo de consultas se presentan los tres tipos de archivos sobre los cuales se pueden realizar sus respectivas consultas, que son: Bibliográfico, Fotográfico y Hemerográfico.
Por cuestiones que quedaron fuera del alcance de mis manos, en el presente trabajo solo se desarrollo la pantalla de consultas para los archivos de tipo hemerográfico, por lo cual las otras dos opciones se encuentran desabilitadas, sin embargo se desarrollo el trabajo de tal manera queda abierta la posibilidad de agregarle todos los módulos que se vayan requiriendo conforme surjan nuevas necesidades para los usuarios del mismo.
16
AI presionar en el tipo de consultas hemerográficas se muestra la presente pantalla llamada “Pantalla General para Consultas Hemerográficas” en la cual se muestran todos los campos con que cuenta la tabla que tiene los registros capturados, de tal manera que se pueden condicionar cada uno de ellos para hacer nuestra consulta tan especifica como se desee.
Como se puede observar los campos están divididos en grupos, esta división se basa en la manera de cómo deben ser utilizados para realizar las consultas; el primer grupo de campos condicionables cuenta con nueve cajas de texto en las cuales se introducen manualmente las “palabras clave” que se desea encontrar dentro de cada campo o si se desea y se tiene conocimiento de tal, se puede ingresar exactamente el texto buscado.
17
El segundo grupo cuenta con seis cajas de texto; es para estas opciones para la que se utilizan los diferentes catálogos explicados anteriormente, de tal forma que estando en esta pantalla se selecciona el o los catálogos que se desee y se muestra su respectiva pantalla.
Una vez que se selecciona y se “Acepta” el ID que se desea, simultaneamente se registra en las casillas correspondientes tanto de la pantalla del catálogo cono en la pantalla general de consultas, para de allí se tomada para formas la cadena de búsqueda.
El tercer grupo de opciones ordena el resultado de cada búsqueda realizada con dos posibles criterios, ya sea en orden alfabético basándose para ello en el campo que contiene a los Autores, o en orden cronológico tomando como base el campo con el nombre de Fecha.
Una vez que se ha diseñado la búsqueda que se desea, tiene dos opciones en el menú de herramientas: una que elimina todos los criterios de selección y la otra para que lleve a cabo la consulta indicada.
El resultado obtenido se muestra en la mitad inferior de la pantalla, la cual cuenta con las respectivas barras de desplazamiento para poder visualizar toda la información que resulta del proceso de búsqueda, al cual incluye un contador que totaliza el número de noticias encontradas con dichos parámetros.
Para realizar otra consulta solo se presiona el botón que elimina los criterios de la búsqueda anterior y se procede a llenar nuevamente las casillas que se requieren para la nueva consulta.
19
Para mantener un mejor control en el acceso al sistema se cuenta también con un módulo de Funciones dentro del cual encuentra la función para cambiar la clave de acceso al sistema.
Cabe mencionar que en todas las ventanas del SMISC se tiene la opción de salida, la cual dependiendo de la ventana que se encuentre activa se podrá regresar a la ventana anterior o salir del sistema en forma definitiva.
Esta ventana es la que se usa para actualizar la clave de entrada (nótese que la clave de este sistema es la misma que la del MISC, de tal forma que al cambiar la clave del SMISC, cambia automáticamente la del MISC). Si se quiere cambiar la clave de entrada actual el sistema pide que se ingrese primero la clave actual, a continuación se debe presionar el botón “verificar”.
Si no es correcto, aparece un mensaje indicándolo y tiene un máximo de tres intentos para accesar la clave correcta.
Si es correcto aparece un mensaje indicando que puede continuar con el cambio de clave.
21
Una vez aceptado el mensaje anterior aparece esta ventana de captura para la nueva clave en la cual tenemos dos opciones: cambiar la clave o mantener la clave actual.
En la primera opción se teclea la nueva clave y se le da "aceptar".
En la segunda opción tenemos tres casos: al no teclear ninguna nueva clave y presionar "aceptar" el sistema mantendrá la clave actual, lo mismo sucederá si tecleamos una nueva clave y se le da "cancelar" o si no tecleamos ninguna clave nueva y se le da "cancelar".
NOTA: Es importante resaltar que debido a que tanto el sistema SMISC v 1 .I como el sistema MlSC v 1.0 tienen la misma clave de acceso toda vez que se cambie la clave en alguno de los dos sistemas automáticamente, cambiará la clave en las dos aplicaciones.
22
CONSULTAS PARA EL SISTEMA MULTIPLE DE INFORMACIóN SOCIO- CULTURAL Y RELIGIOSA.
MANUAL TÉCNICO
DESCRIPCIóN GENERAL DEL SISTEMA SMlSC
El sistema SMISC V 1 . I , fue diseñado para poder analizar, manejar y controlar la información generada en los ámbitos social, cultural y religioso en nuestro país; la cual ha sido recopilada por el Departamento de Sociología de la División de Ciencias Sociales y Humanidades de la Universidad Autónoma Metropolitana Unidad Iztapalapa.
El sistema SMISC fue diseñado para manipular la información periodística, de acervo bibliográfico y de imágenes con los siguientes módulos: módulo de mantenimiento de archivos bibliográficos, fotográficos y hemerográficos; módulo de catálogos hemerográficos el cual se subdivide en: catálogo de actitudes, estamentos, géneros, medios periodísticos, secciones y tipos de medio; módulo de consultas bibliográficas, fotográficas y hemerográficas; módulo de funciones y su módulo de salida del sistema.
En esta versión del sistema SMISC quedó desarrollada la sección referente al manejo de la información periodística sin embargo, gracias a su diseño a esta versión del sistema se le pueden agregar los otros módulos para el manejo tanto del acervo bibliográfico como de la colección de imágenes.
La descripción de su funcionamiento y operación se encuentran documentadas en el Manual de Usuario, anexo en la primera parte de este documento.
El sistema SMlSC para su funcionamiento interactúa, hasta este momento con la Base de Datos de Fichas Hemerográficas, dicha Base es de tipo Access y en ella se encuentra toda la información generada por el sistema antecesor MISC.
23
DESCRIPCIóN DE LA BASE DE DATOS
La Base de Datos de Fichas Hemerográficas contiene la información periodística de las noticias recopiladas, esta base tiene el siguiente diseño; está formada por ocho tablas descritas a continuación: 0 La tabla de NOTICIA. Esta tabla contiene toda la información obtenida de cada
reportaje o noticia (información periodística). 0 La tabla de CLASIFICACIÓN. Esta tabla es un catálogo de clasificación de
estamentos de las noticias. 0 La tabla de GÉNERO. Esta tabla es un catálogo de los diferentes tipos de
géneros de noticias. 0 La tabla de NOMBRE-PERIODICO-O-REVISTA. En esta tabla se encuentran
los nombres de cada uno de los tabloides de los cuales se ha capturado al menos una noticia.
0 La tabla de SECCIóN. Aquí se encuentra la lista de las secciones dentro del periódico donde fue localizada la noticia.
0 La tabla de TENDENCIA. Este es un catálogo que muestra las posibles actitudes tomadas por los autores del reportaje.
0 La tabla de TIPO-MEDIO. En esta tabla tenemos el catálogo de los diferentes tipos de medio informativos como lo es la radio, televisión, periódico, etc.
0 La tabla de SEGURIDAD. En esta tabla se encuentra registrada la palabra clave de acceso tanto al sistema MlSC como al sistema SMISC.
DESCRIPCIóN Y ESTRUCTURA DE LOS CAMPOS DE LA BASE DE DATOS DE FICHAS HEMEROGFtÁFICAS
TAMAÑO DEL
DESCRIPCION FORMATO DE DATOS
NOMBRE DEL TABLA CAMPO
CAMPO Entero Llave de la tabla
NOTICIA. Fecha de la noticia.
ID-NOTICIA NOTICIA Autonuméric
Fecha O Largo
Fecha Larga 50
FECHA NOTICIA
AUTOR I Texto Nombre del autor de la noticia. Título de la noticia. TITULO I NOTICIA Texto 80
TEMA NOTICIA SUBTEMAS NOTICIA 1 O0
1 O0 Tema que trata la noticia Subtemas que trata la noticia.
Texto Texto
SENTIDO I Si/No Si/No Sentido positivo o neaativo de la noticia
Numérico Entero Largo
NUMERO-FICHA NOTICIA Numeración personalizada de la ficha. Personaje principal de la noticia. Personaie secundario.
ACTOR
NOTICIA DECLARACIONES NOTICIA HECHOS
NOTICIA FUENTE NOTICIA COACTOR
NOTICIA Texto 50
Texto 50 Texto 70 Puesto o lugar de trabajo
del Drotagonista. "" Memo
Memo Hechos de la noticia. Declaraciones de la noticia.
""
t COMENTARIOS NOTICIA
ESCENAS-Y-ESCEN NOTICIA ARIOS
Memo "" Comentarios de la noticia. Escenas o escenarios de la noticia. Número de la página.
Memo ""
PAGl NA I Numérico Entero Largo Entero Largo Entero Largo Entero Largo Entero Largo Entero Largo
Numérico Número de la columna. COLUMNA
NOTICIA TIPO-MEDIO
NOTICIA
NOTICIA MEDIO-PERIODISTI co
Numérico Tipo de medio del que se obtuvo la noticia. Nombre del medio periodístico. Sección donde se ubica la noticia. Estamento de la noticia.
Numérico
Numérico
Numérico
4CTITUD
4MBITO-GEOGRAFI co ID-CLASlFlCAClON
ESTAMENTO
ID-GENERO
GENERO-PERIODIS TIC0 ID-MEDIO-PERIOD1 STICO
MEDIO-PERIODISTI co
ID-SECCION
SECCION
ID-TENDENCIA
ACTITUD ID-TIPO-MEDIO
TIPO-MEDIO
ID-NIVEL
PASSWORD
NOTICIA ~
NOTICIA
CLASlFlCACl ON CLASlFlCACl ON GENERO
GENERO
NOMBRE-PE RlODlCO O-
NOMBRE-PE REVISTA-
RIODICO-O- REVISTA- SECCION
SECCION
TENDENCIA
TENDENCIA TIPO-MEDIO
TIPO-MEDIO
SEGURIDAD
SEGURIDAD
I
Numérico ,
Texto
Autonuméric
Texto O
Autonuméric
Texto O
Autonuméric O
Texto
Autonuméric O
Texto
Autonuméric O
Texto Autonuméric
Texto O
Numérico
Texto
Entero Largo 30
Entero Largo 15
Entero Largo 15
Entero Largo
30
Entero Largo 20
Entero Largo 20 Entero Largo 20
Entero
50
Actitud expresada en la noticia Lugar donde se desarrollo la noticia Llave de la tabla CLASIFICACION. Tipo de estamento.
Llave de la tabla GENERO. Tipo de género periodisico. Llave de la tabla NOMBRE-PERIODICO- O-REVISTA. Nombre del medio periodístico.
Llave de la tabla SECCION. Nombre de la sección del periódico. Llave de la tabla TENDENCIA. Tendencia de la noticia. Llave de la tabla TIPO MEDIO. Nombre del medio noticioso. Llave de la tabla SEGURIDAD. Palabra clave de acceso al sistema.
26
ESQUEMA DE LA BASE DE DATOS DE FICHA HEMEROGRÁFICA MODELO DE ENTIDAD - RELACIóN
27
CóDIGO FUENTE DE LAS CONSULTAS PARA EL SISTEMA MULTIPLE DE INFORMACIóN SOCIO-CULTURAL Y RELIGIOSA (SMISC)
CóDIGO DE ACCESO AL SISTEMA Option Explicit
Private Sub cmdAceptar-Click() Dim Clave As String * 1 O 'Variable para almacenar el password Dim Clv As String Dim Password As String 'Variable para comparar el contenido del campo
Static Intentos As Integer 'Variable para almacenar los intentos password
Clave = UCase(txtPassword.Text) 'Covertimos a mayusculas el texto Clv = LTrim(RTrim(C1ave)) Password = UCase(txtData) '* asignamos el contenido del campo password de
la tabla seguridad '* y lo convierte a mayusculas
If Clv = Password Then mdiMISC.Show
Else MsgBox "El Password no es correcto ! ! !", 16, "E R R O R ! ! !'I
Intentos = Intentos + 1 If Intentos = 3 Then End txtPassword.Text = "" txtPassword.SetFocus
End If End Sub
Private Sub Form-Load() ' Centramos la ventana en la pantalla
frmAcceso.Left = (Screen.Width - frmAcceso.Width) / 2 frmAcceso.Top = (Screen.Height - frmAcceso.Height) / 2
End Sub
Private Sub txtpassword-KeyPress(KeyAscii As Integer)
End Sub If KeyAscii = 13 Then cmdAceptar-Click
'* Salimos de la aplicacion Private Sub cmdcancelar-Click()
Unload frmAcceso End
End Sub
28
CóDIGO DEL MENÚ PRINCIPAL DEL SISTEMA SMISC
Option Explicit
I* cambio de Password Private Sub mnuCambioPassword-Click()
End Sub frmCambioPassword.Show
I* Catalogo de Actitudes Private Sub mnuCatActidudes-Click()
End Sub frmActitud.Show
'* Catalogo de Estamentos Private Sub mnuCatEstamentos-Click()
End Sub frmEstamento.Show
I* Catalogo de Generos Private Sub mnuCatGeneros-Click()
End Sub frmGenero. Show
I* Catalogo de Periodicos Private Sub mnuCatPeriodicos-Click()
End Sub frmMedioP.Show
'* Catalogo de Secciones Private Sub mnuCatSecciones-Click()
End Sub frmSeccion.Show
'* Catalogo de Tipos de Medio Private Sub mnuCatTipoMedio-Click()
End Sub frmTipoMedio.Show
'* consultas de noticias (hemerograficas) Private Sub mnuConHemerografico-Click()
End Sub frmConsultaHem.Show
'* entrada al menu hemerografico Private Sub mnuHemerografico-Click() '* modulo de mantenimiento de Fichas Hemerograficas
29
frmHemerografico.Show End Sub
I* salimos del sistema SMISC Private Sub mnuSalir-Click()
Unload Me End
End Sub
CÓDIGO PARA MANTENIMIENTO DE REGISTROS HEMEROGF~AFICOS
Option Explicit
Private Sub Form-Load() I* habilitamos el tool bar Sb-Habilita-Toolbar True, True, True, True, True, True, -
True, False, False, True, True, True
End Sub
I* evento click del Tool Bar Private Sub Toolbar-ButtonCIick(ByVa1 Button AS MSComctlLib.Button) On Error GoTo e-Toolbar-ButtonClick
Select Case Button.Index '* primero Case 1
Datal .Recordset.MoveFirst
'* anterior Case 2
Datal .Recordset.MovePrevious If Datal. Recordset. BOF Then
MsgBox "Ha sobrepasado el primer registro." '& - vbCr & "Pruebe otra vez."
Datal .Recordset.MoveFirst End If
I * siguiente Case 3 Datal .Recordset.MoveNext If Datal. Recordset. EOF Then
MsgBox "Ha sobrepasado el último registro." '& - vbCr & "Pruebe otra vez."
Datal. Recordset.MoveLast
End If
I* ultimo Case 4
Datal .Recordset.MoveLast
'* alta Case 6 HabilitarCajas InhabilitarBotones Sb-Habilita-Toolbar False, False, False, False, False, False, -
cmdGrabar. Enabled = True cmdcancelar. Enabled = True Datal .Recordset.AddNew txtNumero.SetFocus
False, False, False, True, True, False
I* baja Case 7
Dim r As Integer On Error GoTo RutinaDeError r = MsgBox("¿Desea borrar el dato actual?", vbYesNo, "i ATENCIóN !") If r <> vbYes Then Exit Sub
Datal. Recordset. Delete Datal .Recordset.MoveNext
If Datal .Recordset.EOF Then Datal .Recordset.MoveLast
End If Exit Sub
RutinaDeError: r = MsgBox(Error, vbOKOnly, se ha producido un error:") Datal .UpdateControls
I* cambio Case 8
HabilitarCajas InhabilitarBotones Sb-Habilita-Toolbar False, False, False, False, False, False, -
cmdGrabar.Enabled = True cmdcancelar. Enabled = True Datal. Recordset. Edit txtNumero.SetFocus
False, False, False, True, True, False
I * imprimir Case 10
I* procedimiento de impresion
I* buscar Case 11 '* procedimiento de busqueda
I * aceptar = grabar Case 13
Datal .Recordset.Update HabilitarBotones Sb-Habilita-Toolbar True, True, True, True, True, True, -
True, True, False, False, True, False cmdGrabar. Enabled = False InhabilitarCajas
I* cancelar Case 14
Datal. UpdateControls HabilitarBotones Sb-Habilita-Toolbar True, True, True, True, True, True, -
True, False, False, False, True, True cmdGrabar. Enabled = False InhabilitarCajas
'* salir Case 16 Unload frmHemerografico
End Select Exit Sub I* rutina para el manejo de errores e-Toolbar-ButtonCIick: MsgBox Err.Description, vbCritical, "Ma Exit Sub
End Sub
lntenimiento de Archivos H ,emerográfi COS"
I* Procedimiento para controlar los botones del toolbar Private Sub Sb-Habilita-Toolbar(bltem1 As Boolean, bltem2 As Boolean, bltem3 As Boolean, bltem4 As Boolean, - bltem5 As Boolean, bltem6 As Boolean, bltem7 As Boolean, bltem8 As Boolean, bltem9 As Boolean, blteml O As Boolean, - bltemll As Boolean, blteml2 As Boolean)
Toolbar.l3uttons.Item(l).Enabled = blteml ' primero Toolbar. Buttons.Item(2).Enabled = bltem2 I anterior Toolbar. Buttons. Item(3). Enabled = bltem3 ' siguiente Toolbar.Buttons.Item(4).Enabled = bltem4 ultimo Toolbar.Buttons.Item(6).Enabled = bltem5 alta TooIbar.Buttons.Item(7).Enabled = bltem6 baja
32
Toolbar.Buttons.Item(8).Enabled = bltem7 ' cambio Toolbar.Buttons.Item(lO).Enabled = bltem8 imprimir Toolbar.Buttons.Item(1 l).Enabled = bltem9 ' buscar Toolbar.Buttons.Item(l3).Enabled = blteml O ' aceptar Toolbar.Buttons.Item(l4).Enabled = bltemll I cancelar Toolbar.Buttons.Item(l6).Enabled = blteml2 ' salir
End Sub
Private Sub cmdActualizar-Click() Datal .Refresh HabilitarBotones Sb-Habilita-Toolbar True, True, True, True, True, True, -
cmdGrabar. Enabled = False True, False, False, False, True, True
End Sub
Private Sub cmdAlta-Click() Habilitarcajas InhabilitarBotones cmdGrabar.Enabled = True cmdCancelar.Enabled = True Datal .Recordset.AddNew txtNumero.SetFocus
End Sub
Private Sub cmdBaja-Click() Dim r As Integer On Error GoTo RutinaDeError r = MsgBox("¿Desea borrar el dato actual?', vbYesNo, "i ATENCIóN !'I)
If r <> vbYes Then Exit Sub Datal. Recordset. Delete Datal .Recordset.MoveNext
If Datal .Recordset.EOF Then Datal. Recordset. MoveLast
End If Exit Sub
r = MsgBox(Error, vbOKOnly, " se ha producido un error:") Datal .UpdateControls
RutinaDeError:
End Sub
Private Sub cmdCambio-Click()
33
Habilitarcajas InhabilitarBotones cmdGrabar.Enabled = True cmdcancelar. Enabled = True Datal. Recordset. Edit txtNumero.SetFocus
End Sub
Private Sub cmdCancelar-Click() Datal . UpdateControls HabilitarBotones cmdGrabar.Enabled = False InhabilitarCajas
End Sub
Public Sub HabilitarBotones() Dim n As Integer For n = O To Controls.Count - 1
Controls(n).Enabled = True If TypeOf Controls(n) Is CommandButton Then
End If Next n
End Sub
Public Sub HabilitarCajas() Dim n As integer For n = O To Controls.Count - 1
Controls(n).Enabled = True Sb-Habilita-Toolbar True, True, True, True, True, True, -
If TypeOf Controls(n) Is TextBox Then
False, False, False, True, True, True End If
Next n End Sub
Public Sub InhabilitarBotones() Dim n As Integer For n = O To Controls.Count - 1
If TypeOf Controls(n) Is CommandButton Then Controls(n).Enabled = False Sb-Habilita-Toolbar False, False, False, False, False, False, -
False, False, False, True, True, False End If
Next n
34
End Sub Public Sub InhabilitarCajas()
Dim n As Integer For n = O To Controls.Count - 1
If TypeOf Controls(n) Is TextBox Then
End If Controls(n).Enabled = False
Next n End Sub
Private Sub cmdGrabar-Click() Datal. Recordset. Update HabilitarBotones cmdGrabar. Enabled = False InhabilitarCajas
End Sub
Private Sub cmdAnterior-Click() Datal .Recordset.MovePrevious
If Datal . Recordset. BOF Then MsgBox "Ha sobrepasado el primer registro." '& -
vbCr & "Pruebe otra vez." Datal .Recordset.MoveFirst
End If End Sub
Private Sub cmdPrimero-Click() Datal .Recordset.MoveFirst
End Sub
Private Sub cmdsiguiente-Click()
If Datal. Recordset. EOF Then MsgBox "Ha sobrepasado el último registro." '& -
vbCr & "Pruebe otra vez." Datal .Recordset.MoveLast
Datal .Recordset.MoveNext
End If End Sub
Private Sub cmdUltimo-Click() Datal .Recordset.MoveLast
End Sub
CóDIGO DE LOS CATÁLOGOS HEMEROGRÁFICOS: ACTITUDES, ESTAMENTOS, GÉNEROS, MEDIOS PERIODíSTICOS, SECCIONES Y TIPOS DE MEDIO.
Option Explicit
Dim cadena As String Dim cadena1 As Integer
Private Sub cmdcancelar-Click() cmdAceptar.Enabled = True cmdCancelar. Enabled = False Textl .Text = "" frmConsultaHem.txtActitud = "" A = ""
End Sub
Private Sub Textl-KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 180 If KeyAscii = 13 And cmdAceptar. Enabled = True Then
cmdAceptar.SetFocus KeyAscii = O
End If End Sub
'* Salimos del catalogo de actitudes Private Sub cmdFinalizar-Click()
End Sub Unload frmActitud
Private Sub Form-Load() '* Centramos la ventana en el medio de la pantalla
frmActitud.Top = (Screen.Height - frmActitud.Height) / 2 frmActitud.Left = (Screen.Width - frmActitud.Width) / 2 I* Indicamos el Path y el nombre de la B. D.
Datal .DatabaseName = "c:\lnformacion Periodistica\VBProyect\lglesia.mdb" Datal .Recordsource = "TENDENCIA8 'Asignamos la tabla al RecordSource Datal .Refresh IntroducirDatos
End Sub
Public Sub cmdAceptar-Click() Textl .Enabled = False Text 1 .Text = L ist 1 .Text '*Asignamos la Actitud seleccionada al textbox correspondiente '* en el formulario general de Consultas
36
frmConsultaHem.txtActitud = Textl .Text S = Textl .Text cmdcancelar. Enabled = True cmdAceptar. Enabled = False
End Sub
Function IntroducirDatos() Datal .Recordset.MoveFirst Listl .Clear
Do While Not Datal. Recordset. EOF cadena = Datal. Recordset("ACT1TUD") cadenal = Datal .Recordset("ID-TENDENClA') If IsNull(LTrim(RTrim(cadena))) Then
End If Exit Do
Listl .Addltem cadenal Listl .Addhem cadena
Datal. Recordset.MoveNext Loop
Listl .Listlndex = O
End Function
rm******HmC*H**HH***CIH**************
*H******
Option Explicit
Dim cadena As String Dim cadenal As Integer
Private Sub cmdCancelar-Click() cmdAceptar. Enabled = True cmdCancelar.Enabled = False Text 1 .Text = I"'
frmConsultaHem.txtEstamento = I"'
E = End Sub
Private Sub Textl-KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 180 If KeyAscii = 13 And cmdAceptar.Enabled = True Then
cmdAceptar. SetFocus KeyAscii = O
37
End If End Sub
I* Salimos del catalogo de Estamentos Private Sub cmdfinalizar-Click()
End Sub Unload frmEstamento
Private Sub Form-Load() I* Centramos la ventana en el medio de la pantalla
frmEstamento.Top = (Screen.Height - frmEstamento.Height) / 2 frmEstamento.Left = (Screen.Width - frmEstamento.Width) / 2 '* Indicamos el Path y el nombre de la B. D.
Datal .DatabaseName = "c:\lnformacion Periodistica\VBProyect\lglesia.mdb' Datal .Recordsource = "CLASIFICACION" 'Asignamos la tabla al
Datal .Refresh IntroducirDatos
RecordSource
End Sub
Public Sub cmdAceptar-Click() Text1 .Enabled = False Text 1 .Text = List 1 .Text '*Asignamos el Estamento seleccionado al textbox correspondiente
I* en el formulario general de Consultas frmConsultaHem.txtEstamento = Textl .Text E = Textl .Text cmdCancelar. Enabled = True cmdAceptar. Enabled = False
End Sub
Function IntroducirDatos() Datal .Recordset.MoveFirst List 1 .Clear
Do While Not Datal .Recordset.EOF cadena = Datal. Recordset("ESTAMENT0") cadenal = Datal .Recordset("lD-CLASIFICACION") If IsNull(LTrim(RTrim(cadena))) Then
End If Exit Do
Listl .Addltem cadenal Listl .Addltem cadena
Datal .Recordset.MoveNext
38
Loop
List1 .Listlndex = O
End Function
Dim cadena As String Dim cadena1 As Integer
Private Sub cmdcancelar-Click() cmdAceptar. Enabled = True cmdcancelar. Enabled = False Text1 .Text = '"I
frmConsultaHem.txtGenero = "" G = ""
End Sub
Private Sub Textl-KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 180 If KeyAscii = 13 And cmdAceptar.Enabled = True Then
cmdAceptar.SetFocus KeyAscii = O
End If End Sub
'*Salimos del catalogo de generos Private Sub cmdfinalizar-Click()
End Sub Unload frmGenero
Private Sub Form-Load() '* Centramos la ventana en el medio de la pantalla
frmGenero.Top = (Screen.Height - frmGenero.Height) / 2 frmGenero.Left = (Screen.Width - frmGenero.Width) / 2 '* Indicamos el Path y el nombre de la B. D.
Datal .DatabaseName = "c:\lnformacion Periodistica\VBProyect\lglesia.mdb" Datal .RecordSource = "GENERO" 'Asignamos la tabla al RecordSource Datal. Refresh IntroducirDatos
End Sub
Public Sub cmdAceptar-Click()
Textl .Enabled = False Text1 .Text = Listl .Text '"Asignamos el Genero seleccionado al textbox correspondiente '* en el formulario general de Consultas frmConsultaHern.txtGenero = Textl .Text G = Text 1 .Text cmdCancelar. Enabled = True cmdAceptar.Enabled = False
End Sub
Function IntroducirDatos() Datal .Recordset.MoveFirst List 1 . Clear
Do While Not Datal. Recordset. EOF cadena = Datal .Recordset("GENERO~PERlODlSTlCO~~) cadenal = Datal .Recordset("lD-GENERO") If IsNull(LTrim(RTrim(cadena))) Then
End If Exit Do
Listl .Addltem cadenal Listl .Additem cadena
Datal .Recordset.MoveNext Loop
Listl .Listlndex = O
End Function
'Dim Modificando As Boolean 'Dim Textl Modificar As String Dim cadena As String Dim cadenal As Integer
Private Sub crndCancelar-Click() ' Modificando = False
cmdAceptar.Enabled = True cmdCancelar.Enabled = False Textl .Text = "" frmConsultaHem.txtMedioP = "I'
TM = ""
End Sub
'Private Sub Textl-Change() ' If Len(Text1 .Text) > O Then Guardar.Enabled = True 'End Sub
'Private Sub Textl-GotFocus() ' Textl .SelStart = O ' Textl .SelLength = Len(Text1 .Text) 'End Sub
Private Sub Textl-KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 180 If KeyAscii = 13 And cmdAceptar. Enabled = True Then
cmdAceptar.SetFocus KeyAscii = O
End If End Sub
I* Salimos del Catalogo de Medios periodisticos Private Sub cmdfinalizar-Click()
End Sub Unload frmMedioP
Private Sub Form-Load() I* Centramos la ventana en el medio de la pantalla
frmMedioP.Top = (Screen.Height - frmMedioP.Height) / 2 frmMedioP.Left = (Screenwidth - frmMedioP.Width) / 2
I* Indicamos el Path y el nombre de la B. D. Datal .DatabaseName = "c:\lnformacion Periodistica\VBProyect\lglesia.mdb" Datal .Recordsource = "NOMBRE-PERIODICO-O-REVISTAt 'Asignamos la
tabla al Recordsorse Datal .Refresh IntroducirDatos
' Modificando = False End Sub
Public Sub cmdAceptar-Click() ' Modificando = True Textl .Enabled = False Textl .Text = List1 .Text '*Asignamos el Medio seleccionado al textbox correspondiente '* en el formulario general de Consultas frmConsultaHem.txtMedioP = Textl .Text TM = Textl .Text
' Textl .SetFocus
cmdCancelar.Enabled = True cmdAceptar. Enabled = False
End Sub
Function IntroducirDatos() Datal .Recordset.MoveFirst Listl .Clear
Do While Not Datal .Recordset.EOF cadena = Datal .Recordset("MEDIO-PERIODISTICO") cadenal = Datal .Recordset("lD-MEDIO-PERIODISTICO") If IsNull(LTrim(RTrim(cadena))) Then
End If Exit Do
Listl .Addltem cadenal Listl .Addltem cadena
Datal .Recordset.MoveNext Loop
Listl .Listlndex = O
End Function
l*****HH***H******H~***H***HHHH**~H**H*~**H**H***HH**HH~**~H*****
********
Option Explicit
Dim cadena As String Dim cadenal As Integer
Private Sub cmdCancelar-Click() cmdAceptar. Enabled = True cmdcancelar. Enabled = False Text 1 .Text = "l'
frmConsultaHem.txtSeccion = S = 1111
End Sub
Private Sub Textl-KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 180 If KeyAscii = 13 And cmdAceptar. Enabled = True Then
cmdAceptar. SetFocus KeyAscii = O
End If End Sub
I* Salimos del Catalogo de Secciones Private Sub cmdfinalizar-Click()
End Sub Unload frmseccion
Private Sub Form-Load() '* Centramos la ventana en el medio de la pantalla
frmSeccion.Top = (Screen.Height - frmSeccion.Height) / 2 frmSeccion.Left = (Screen.Width - frmSeccion.Width) / 2
I * Indicamos el Path y el nombre de la B. D. Datal .DatabaseName = "c:\lnformacion Periodistica\VBProyect\lglesia.mdb" Datal .Recordsource = "SECCION" 'Asignamos la tabla al RecordSource Datal .Refresh IntroducirDatos
End Sub
Public Sub cmdAceptar-Click() Textl .Enabled = False Textl .Text = Listl .Text '*Asignamos la seccion seleccionada al textbox correspondiente '* en el formulario general de Consultas frmConsultaHem.txtSeccion = Text1 .Text S = Textl .Text cmdcancelar. Enabled = True cmdAceptar. Enabled = False
End Sub
Function IntroducirDatos() Datal .Recordset.MoveFirst Listl .Clear
Do While Not Datal .Recordset.EOF cadena = Datal. Recordset("SECCI0N") cadenal = Datal .Recordset("lD-SECCION") If IsNull(LTrim(RTrim(cdena))) Then
End If Exit Do
Listl .Addltem cadenal Listl .Addltem cadena
Datal. Recordset.MoveNext Loop
Listl .Listlndex = O
End Function
'***H*****lr*H**H-***H*********~****H**~**HH**~*****************H*****H**********
*********
Option Explicit
Dim cadena As String Dim cadena1 As Integer
Private Sub cmdcancelar-Click() cmdAceptar.Enabled = True cmdcancelar. Enabled = False Textl .Text = "" frmConsultaHem.txtTipoM = "" TM = ""
End Sub
Private Sub Textl-KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 180 If KeyAscii = 13 And cmdAceptar.Enabled = True Then
cmdAceptar. SetFocus KeyAscii = O
End If End Sub
I * Salimos del Catalogo de Tipos de medio Private Sub cmdfinalizar-Click()
End Sub Unload frmTipoMedio
Private Sub Form-Load() '* Centramos la ventana en el medio de la pantalla
frmTipoMedio.Top = (Screen.Height - frmTipoMedio.Height) / 2 frmTipoMedio.Left = (Screen.Width - frmTipoMedio.Width) / 2
'* Indicamos el Path y el nombre de la B. D. Datal .DatabaseName = "c:\lnformacion Periodistica\VBProyect\lglesia.mdb" Datal .RecordSource = "TIPO-MEDIO" 'Asignamos la tabla al RecordSource Datal .Refresh IntroducirDatos
End Sub
Public Sub cmdAceptar-Click() Textl .Enabled = False Textl .Text = List1 .Text '*Asignamos el Tipo de Medio seleccionado al textbox correspondiente '* en el formulario general de Consultas
frmConsultaHem.txtTipoM = Textl .Text TM = Textl .Text cmdCancelar.Enabled = True
cmdAceptar. Enabled = False
End Sub
Function IntroducirDatos() Datal .Recordset.MoveFirst Listl .Clear
Do While Not Datal .Recordset.EOF cadena = Datal .Recordset("TIPO-MEDIO") cadenal = Datal .Recordset("lDJIPO-MEDIO") If IsNull(LTrim(RTrim(cadena))) Then
End If Exit Do
Listl .Addltem cadenal Listl .Addltem cadena
Datal .Recordset.MoveNext Loop
Listl .Listlndex = O
End Function
CóDIGO DE LAS CONSULTAS HEMEROGFlÁFICAS
Option Explicit
'* objeto recordset para la consulta de noticias Dim rsNoticia As ADODB.Recordset
Private Sub Form-Load() ' mnuCatalogos = Enabled I* habilitamos el tool bar Sb-Habilita-Toolbar False, False, False, False, False, False, -
True, False, True, False, False, True TM = "" MP = 'I1'
S = 1111
A = "" E = G = 1111
End Sub
I* Funcion que construye la cadena de la consulta a la base de datos Private Function Fn-Construye-Consulta-old(strQuery As String) As String Dim strSelect As String Dim strWhere As String Dim strOrderBy As String
strSelect = strQuery strWhere = '''I strOrderBy = ""
If txtAutor <> "" Then If strWhere <> "" Then
End If strWhere = strWhere & "AUTOR LIKE I%" & txtAutor.Text & "%I 'I
strWhere = strWhere & "AND
End If
If txtTitulo <> "" Then If strWhere <> Then
End If strwhere = strWhere & "TITULO LIKE '%I' & txtTitulo.Text & "%'
strWhere = strWhere & "AND 'I
End If
If txtTema <> Then If strWhere <> '"' Then
End If strWhere = strWhere & "TEMA LIKE I%" & txtTema.Text & 'I%' 'I
strWhere = strWhere & "AND 'I
End If
If txtsubtema "" Then If strWhere <> "" Then
End If strWhere = strWhere & "SUBTEMA LIKE I%" & txtSubtema.Text & "%I "
strWhere = strWhere & "AND ' I
End If
If txtActor <> Then If strWhere <> '"' Then
End If strWhere = strWhere & "ACTOR LIKE I%" & txtActor.Text & "%' 'I
strWhere = strWhere & "AND 'I
End If
46
If txtCoactor <> Then If strWhere <> 'I1' Then
stwhere = strWhere & "AND End If strWhere = strWhere & "COACTOR LIKE I%" & txtCoactor.Text & 'I%' I'
End If
If txtFuente <> '"' Then If strWhere <> Then
End If strWhere = strWhere & "FUENTE LIKE '%" & txtFuente.Text & "%I 'I
strWhere = strWhere & "AND I'
End If
If txtComentarios <> "" Then If strWhere <> Then
End If strWhere = strWhere & "COMENTARIOS LIKE '%I' & txtComentarios.Text & 'I%' 'I
strWhere = strWhere & "AND
End If
If txtAmbitoG <> "'' Then I f strWhere <> ''I1 Then
strWhere = strWhere & "AND I '
End If strWhere = strWhere & "AMBITO-GEOGRAFICO LIKE '%" & txtAmbitoG.Text &
"0 1 11 /o End If
If txtTipoM <> '"' Then If strWhere <> '"' Then
End If strWhere = strWhere & "TIPO-MEDIO LIKE '%'I & txtTipoM.Text & "%I I '
strWhere = stwhere & "AND
End If
If txtMedioP <> 'I1' Then I f strWhere <> Then
End If strwhere = strwhere & "MEDIO-PERIODISTICO LIKE '%'I txtMedioP.Text
/o
strWhere = strWhere & "AND I'
110 1 I 1
End If
If txtseccion <> 'I1' Then If strWhere <> Then
strWhere = stwhere & "AND ' I
47
End If strWhere = strWhere & "SECCION LIKE '%'I & txtSeccion.Text & It%' 'I
End If
If txtActitud <> "" Then If strWhere <> "" Then
End If strWhere = strWhere & "ACTITUD LIKE '%'I & txtActitud.Text & "%' I'
strWhere = strWhere & "AND ' I
End If
If txtEstamento <> "'I Then If strWhere <> I"' Then
End If strWhere = strWhere & "ESTAMENTO LIKE '%'I & txtEstamento.Text & "%I "
strWhere = strWhere & "AND
End If
If txtGenero <> "" Then If strWhere <> '"' Then
End If strWhere = strWhere & "GENERO LIKE I%" & txtGenero.Text & 'I%' I'
strWhere = strWhere & "AND "
End If
If strWhere <> "" Then
End If strSelect = strSelect & ' I WHERE I' & strWhere
strSelect = strSelect & strOrderBy Fn-Construye-Consulta = strSelect
End Function
Private Function Fn-Construye-ConsuIta(ByVa1 strSelect As String, Optional ByVal strWhere As String, Optional ByVal strOrderBy As String, Optional ByVal strGroupBy As String) As String Dim strQuery As String
On Error GoTo e-Fn-Construye-Consulta
'* construimos la cadena de la consulta de acuerdo a los parametros strQuery = strSelect
I* si existe la clausula where
If strWhere <> ''I' Then
End If strQuery = strQuery & strWhere
I* si existe la opcion de agrupar If strGroupBy <> I"' Then
End If strQuery = strQuery & strGroupBy
I* si existe la clausula de ordenamiento If strOrderBy <> "I' Then
strQuery = strQuery & strOrderBy End If
Fn-Construye-Consulta = strQuery
Exit Function I* rutina para el manejo de errores e-Fn-Construye-Consulta:
MsgBox Err.Description, vbcritical, "Consulta" Fn-Construye-Consulta = ''I1
Exit Function
End Function
'* evento click del Tool Bar Private Sub Toolbar-ButtonClick(ByVa1 Button As MSComctlLib.Button) On Error GoTo e-Toolbar-ButtonCIick
Select Case Buttomlndex I * primero Case 1
'* anterior Case 2
'* siguiente Case 3
I* ultimo Case 4
'* alta Case 6
I* baja
49
Case 7
'* cambio = limpiar Case 8
txtAutor.Text = '"' txtTitulo.Text = "" txtTema.Text = "" txtSubtema.Text = "" txtActor.Text = "" txtCoactor.Text = "I'
txtFuenteText = '"' txtComentarios.Text = "" txtAmbitoG.Text = I"'
txtNoticias.Text = "'I
txtTipoM.Text = '"' TM = "" txtMedioP.Text = "" MP = "" txtSeccion.Text = "" S = txtActitud.Text = "" A = "I'
txtEstamento.Text = '"' E = "" txtGenero.Text = "" G = ""
'* imprimir Case 10
'* buscar Case 11 '* procedimiento de busqueda Sb-Buscar txtNoticias = rsNoticia. Recordcount
'* aceptar Case 13
I* cancelar Case 14 Set rsNoticia = Nothing Set dtgNoticias. Datasource = Nothing
I* salir Case 16 Unload frmConsultaHem
End Select
Exit Sub I* rutina para el manejo de errores e-Toolbar-ButtonClick: MsgBox Err.Description, vbCritical, "Consulta de Noticias" Exit Sub
End Sub
I* validamos la entrada en la caja de texto Private Sub txtActor-KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = O
Else KeyAscii = fnDatosAEspacio(KeyAscii)
End If End Sub
I* validamos la entrada en la caja de texto Private Sub txtAmbitoG-KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = O
Else KeyAscii = fnDatosAEspacio(KeyAscii)
End If End Sub
I* validamos la entrada en la caja de texto Private Sub txtAutor-KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = O
Else KeyAscii = fnDatosAEspacio( KeyAscii)
End If End Sub
I* validamos la entrada en la caja de texto Private Sub txtComentario-KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = O
Else KeyAscii = fnDatosAEspacio(KeyAscii)
End If End Sub
I * validamos la entrada en la caja de texto
51
Private Sub txtcoactor-KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then
KeyAscii = O Else
KeyAscii = fnDatosAEspacio(KeyAscii) End If
End Sub
I* validamos la entrada en la caja de texto Private Sub txtComentarios-KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = O
Else KeyAscii = fnDatosAEspacio(KeyAscii)
End If End Sub
I* validamos la entrada en la caja de texto Private Sub txtFuente-KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = O
Else KeyAscii = fnDatosAEspacio(KeyAscii)
End If End Sub
I* validamos la entrada en la caja de texto Private Sub txtsubtema-KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = O
Else KeyAscii = fnDatosAEspacio(KeyAscii)
End If End Sub I* validamos la entrada en la caja de texto Private Sub txtTema-KeyPress(KeyAscii As Int
If KeyAscii = 13 Then KeyAscii = O
Else KeyAscii = fnDatosAEspacio( KeyAscii)
End If End Sub
leg 'er)
I* validamos la entrada en la caja de texto Private Sub txtTitulo-KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = O
KeyAscii = fnDatosAEspacio(KeyAscii) Else
End If End Sub
'* funcion para el manejo de caracteres Private Function fnDatosAEspacio(KeyAscii As Integer) As Integer
KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii <> 8 And KeyAscii <> 13 Then
If (KeyAscii > 41 And KeyAscii c 43 Or KeyAscii > 57) And (KeyAscii < 65 Or KeyAscii > 90) And (KeyAscii <> 32) And (KeyAscii <> 209) And (KeyAscii <> 32) Then
KeyAscii = O End If
End If fnDatosAEspacio = KeyAscii
End Function
'* Procedimiento para controlar los botones del toolbar Private Sub Sb-Habilita-Toolbar(bltem1 As Boolean, bltem2 As Boolean, bltem3 As Boolean, bltem4 As Boolean, - bltem5 As Boolean, bltem6 As Boolean, bltem7 As Boolean, bltem8 As Boolean, bltem9 As Boolean, bltemlO As Boolean, - blteml 1 As Boolean, blteml2 As Boolean)
Toolbar.Buttons.Item(l).Enabled = blteml ' primero Toolbar.Buttons.Item(2).Enabled = bltem2 ' anterior Toolbar.Buttons.Item(3).Enabled = bltem3 ' siguiente Toolbar.Buttons.Item(4).Enabled = bltem4 ' ultimo Toolbar.Buttons.Item(G).Enabled = bltem5 ' alta Toolbar.Buttons.Item(7).Enabled = bltem6 ' baja Toolbar.Buttons.Item(8).Enabled = bltem7 ' cambio Toolbar.Buttons.Item( 1 O).Enabled = bltem8 ' imprimir Toolbar.Buttons.Item(1 l).Enabled = bltem9 ' buscar Toolbar.Buttons.Item(l3).Enabled = blteml O ' aceptar Toolbar.Buttons.Item(l4).Enabled = blteml 1 ' cancelar Toolbar.Buttons.Item(l6).Enabled = blteml2 ' salir
End Sub
'* procedimiento para la busqueda Private Sub Sb-Buscar() Dim sDSN As String Dim sSQL As String Dim &Select As String Dim strWhere As String
53
Dim strOrderBy As String Dim strGroupBy As String
If txtAutor = And txtTitulo = "" And txtTema = "" And txtsubtema = And txtActor - And txtcoactor = ''I1 And txtFuente = "" And txtComentarios = '"' And txtAmbitoG = I"' And txtTipoM = And txtMedioP = "" And txtSeccion = '''' And txtActitud = "" And txtEstamento = And txtGenero = I"' Then
Else
- 1111
MsgBox "Debe escribir algún parámetro para realizar la búsqueda''
I* cadena de conexion a la base de datos sDSN = "DATABASE=iglesia;UID=luis;PWD=luis;DSN=luis" ""sSQL = Fn-Construye-Consulta("Se1ect *From NOTICIA 'I) I * inicializamos las variables strSelect = 'I1'
strWhere = strOrderBy = '"' strGroupBy = "" I* comenzamos a construir la cadena para la consulta '* construimos el select strSelect = "Select "From NOTICIA I* construimos el where If txtAutor <> "" Then
If strWhere <> "" Then
End If strWhere = strWhere & "AUTOR LIKE '%I' & txtAutor.Text & "%' 'I
strWhere = strWhere & "AND I'
End If
If txtTitulo <> "" Then If strWhere <> '"' Then
End If strWhere = strWhere & "TITULO LIKE I%" & txtTitulo.Text & "%' 'I
strWhere = strWhere & "AND ' I
End If
If txtTema <> Then If strWhere <> ' I 1 ' Then
End If strWhere = strWhere & "TEMA LIKE '%" & txtTema.Text & "%I 'I
strWhere = strWhere & "AND 'I
End If
If txtsubtema <> '"' Then If strWhere <> Then
End If strWhere = strWhere & "SUBTEMAS LIKE '%'I & txtSubtema.Text & "%I
strWhere = strWhere & "AND ' I
End If
If txtActor <> "" Then If strWhere <> "" Then
End If strWhere = strWhere & "ACTOR LIKE '%'I & txtActor.Text & It%'
strWhere = strWhere & "AND 'I
End If
If txtcoactor <> ''" Then If strWhere <> 'I1' Then
End If strWhere = strWhere & "COACTOR LIKE '%I' & txtCoactor.Text & 'I%' 'I
strWhere = strWhere & "AND
End If
If txtFuente <> Then If strWhere <> "'' Then
End If strWhere = strWhere & "FUENTE LIKE '%I' & txtFuente.Text & It%' I'
strWhere = strWhere & "AND I'
End If
If txtComentarios <> Then If strWhere <> Then
End If strWhere = &Where & "COMENTARIOS LIKE '%" & txtComentarios.Text &
strWhere = strWhere & "AND 'I
"O I 11 /o End If
If txtAmbitoG <> "I1 Then If strWhere <> '''' Then
End If strWhere = strWhere & "AMBITO-GEOGRAFICO LIKE '%'I & txtAmbitoG.Text
strWhere = strWhere & "AND 'I
& 11
End If
If txtTipoM <> 'I1' Then If strWhere <> "" Then
End If strWhere = strWhere & "TIPO-MEDIO LIKE I%" & txtTipoM.Text & "%' 'I
strWhere = strWhere & "AND
End If
If txtMedioP <> Then
If strWhere <> Then
End If stwhere = strWhere & "MEDIO-PERIODISTICO LIKE '%" & txtMedioP.Text
strWhere = strWhere & "AND
"0 1 11 /o End If
If txtseccion <> "" Then If strWhere <> '"' Then
End If strWhere = strWhere & "SECCION LIKE '%" & txtSeccion.Text & "%' 'I
strWhere = strWhere & "AND I'
End If
If txtActitud <> '''' Then If strWhere <> Then
End If strWhere = strWhere & "ACTITUD LIKE '%'I & txtActitud.Text & 'I%'
strWhere = strWhere & "AND 'I
End If
If txtEstamento <> Then If strWhere <> Then
End If strWhere = strWhere & "ESTAMENTO LIKE I%" & txtEstamento.Text & "%' 'I
strWhere = strWhere & "AND 'I
End If
If txtGenero <> '"' Then If strWhere <> '"' Then
End If strWhere = strWhere & "GENERO LIKE I%" & txtGenero.Text & "%' ' I
strWhere = strWhere & "AND I '
End If
If strWhere <> 'I1' Then
End If strWhere = 'I WHERE 'I & strWhere
'* construimos el orderby If optAlfa.Value = True Then
End If If optCrono.Value = True Then
End If
strOrderBy = ORDER BY AUTOR 'I
strOrderBy = ORDER BY FECHA
56
I* construimos la cadena de consulta sSQL = Fn-Construye-Consulta(strSelect, strwhere, strOrderBy)
I * si la cadena de consulta es vacia If sSQL = Then
MsgBox "No fue posible realizar la cadena de consulta", vblnformation,
Exit Sub "Consulta . . . ."
End If
I* instanciamos un objeto recordset Set rsNoticia = New ADODB.Recordset I* establecemos los parametros del objeto recordset rsNoticia.ActiveConnection = sDSN rsNoticia.CursorLocation = aduseclient rsNoticia.CursorType = adOpenDynamic rsNoticia. LockType = adLockOptimistic rsNoticia.Open sSQL, sDSN
I * verificamos si existen registros bajo los criterios seleccionados If rsNoticia.RecordCount = O Then
MsgBox "No existen Noticias con los criterios seleccionados", vblnformation, Me.Caption
Set dtgNoticias.DataSource = Nothing Else Set dtgNoticias.DataSource = rsNoticia
End If
End If
End Sub
CóDIGO DE LA FUNCIóN CAMBIO DE PASSWORD
Option Explicit
I * Salimos de la funcion de Cambio de Password Private Sub cmdCancelar-Click()
Unload frmCambioPassword End Sub
I* Proceso para verificar que el password tecleado sea correcto Private Sub cmdverificar-Click()
DataPassword.Refresh DataPassword.Recordset.MoveFirst Dim Clave As String * 1 O 'Variable para almacenar el password
57
Dim Clavel As String Dim Passold As String
Static Intentos As Integer 'Variable para almacenar los intentos
Clave = UCase(txtPasswordActua1,Text) 'Covertimos a mayusculas el texto Clavel = LTrim(RTrim(C1ave)) Passold = UCase(txtData) I* asignamos el contenido del campo password de la
tabla seguridad '* y lo convierte a mayusculas
If Clavel = Passold Then
txtPasswordActua1.Enabled = False cmdVerificar.Enabled = False MsgBox 'I Password Correcto ! ! !, Continue con la Operación . . .I1,
frmCambioPassword2.Show '* Si es correcto muestra la ventana que permite Unload frmCambioPassword I* el cambio de pasword y cierra la pantalla de
vbExclamation, "Sistema Múltiple de Información Socio-Cultural y Religiosa"
verificacion Else
MsgBox "Password Incorrecto ! ! !, Intente de Nuevo . . .I1, vbCritica1, "Sistema
txtPasswordActuaI.Text = txtPasswordActual.SetFocus
If Intentos = 3 Then End I* Al tercer intento erroneo se cierra la ventana
Múltiple de Información Socio-Cultural y Religiosa"
Intentos = Intentos + 1
End If End Sub
Private Sub Form-Load() Centrar la ventana en la pantalla frmCambioPassword.Left = (Screen.Width - frmCambioPassword.Width) / 2 frmCambioPassword.Top = (Screen.Height - frmCambioPassword.Height) / 2
End Sub
l*H**HHHH***HHHrn**H**Hrn**HH**H**********H**H**H~**HHH**H**********H*
*********
Option Explicit
'* Proceso para aceptar el cambiode password Private Sub cmdAceptar-Click()
Datapassword. Recordset.Edit Datapassword. Recordset. Update MsgBox EL PASSWORD FUE CAMBIADO EXITOSAMENTE ! ! !'I,
vblnformation, "Sistema Múltiple de Información Socio-Cultural y Religiosa"
58
Unload frmCambioPassword2 End Sub
Private Sub cmdcancelar-Click()
! !'I, vbExclamation, "Sistema Múltiple de Información Socio-Cultural y Religiosa"
End Sub
MsgBox I ' El Password no fue cambiado, . . . permanecerá el Password anterior !
Unload frmCambioPassword2
Private Sub Form-Load() ' Centrar la ventana en la pantalla frmCambioPassword2.Left = (Screen.Width - frmCambioPassword2.Width) I 2 frmCambioPassword2.Top = (Screen.Height - frmCambioPassword2.Height) / 2
End Sub
Private Sub txtPasswordNuevo-Change() Show txtPasswordNuevo.SetFocus 'Asegurarnos que reciba el foco txtPasswordNuevo.Se1Star-t = Len(txtPasswordNuevo) 'La posición del caracter
inicial es la longitud del texto.. .
End Sub 'por tanto se posiciona al final
Private Sub txtPasswordNuevo-GotFocus() txtPasswordNuevo.Se1Star-t = O txtPasswordNuevo.Se1Length = Len(txtPasswordNuevo.Text)
End Sub
MóDULO DE VARIABLES GLOBALES
Public TM As Variant Public MP As Variant Public S As Variant Public A As Variant Public E As Variant Public G As Variant
59
Top Related