Bienvenido, invitado ( Identificarse | Registrarse )
![]() ![]() |
Apr 2 2009, 06:59 PM
Publicado:
#1
|
|
|
Lobo Alfa ![]() Grupo: Admin Mensajes: 14606 Registrado: 17-November 05 Desde: Mexico Miembro nº: 1 |
Antes de proseguir, voy a pedir a los que no han leído los correos anteriores, que vean las páginas
Tipo de Acceso: DAO Ventajas:
Ventajas:
Técnicamente es posible hacer un programa DAO estructurado de tal manera que podamos hacerlo ADO sin esfuerzo. Lo veremos ya que programaremos en DAO, y finalmente haremos ajustes que realicen el cambio. Esto es característico de los buenos programadores. No Necesito decir nombres, pero todos conocemos a programadores que se tardan semanas, a veces meses y años, en cambiar sus sistemas en metodologías de acceso, simplemente porque no están bien estructurados. En otro correo hablábamos de los programas ABC, es decir, los procesos de altas, bajas y cambios de todos los módulos de un proceso determinado. En el correo 06, vimos que era posible accesar a los datos a través de un recordset, o conjunto de resultados, que se transformaban, ordenaban y modificaban en base a una sola cadena SQL. Aunque más adelante veremos con mas detalle SQL, vamos a ver muy rápidamente lo que es la sintaxis de la apertura de recordsets. 1. Debe usarse en DAO un openrecordset. 2. Toda consulta de registros empieza con un "select", seguido por el nombre del campo o campos a consultar, terminando con una orden from que va a decir de donde es la tabla a usar. El orden de los campos en la declaración, será el orden en los resultados. Puede sustiuirse el nombre de los campos por un asterisco, pero esto llama todos los campos, no solo los solicitados.
Una vez que sabemos que consultar, tenemos que saber como revisar si hay o no resultados a nuestra pregunta. ADO y DAO nos ofrecen dos métodos, uno usando la palabra clave nomatch que no entra en el espíritu de SQL, y la orden según SQL. Vamos a suponer que pedimos los alumnos mayores a 18 años en una escuela primaria. Casi seguramente no hay resultados, no? Un ejemplo de código sería: CODE Dim db as DAO.database Dim rs as DAO.Recordset Set db= OpenDatabase("alumnos.mdb") ' esto abre la base de datos en Access Set RS= db.openrecordset("Select * from ALUMNOS where EDAD <18 order by EDAD") ‘ abre With rs If .eof and .bof then Msgbox "No hay alumnos de esta edad!",vbexclamation Else ‘ si hay alumnos endif End with Esto se basa en el principio siguiente: Si está al mismo tiempo en inicio y fin, entonces no hay nada. Como dijimos en el correo tres, no se vale empezar a programar antes de tener las pantallas, así que haremos un poco mas de taller. Taller: Nota:Leer todo el taller antes de hacerlo. Abrimos el proyecto que creamos en el correo anterior, y en el tab de tipos de movimientos, vamos a poner un frame con seis botones command button, que serán altas, bajas, cambios,reportes cancelar cambios y guardar cambios, así como un list box con la propiedad sorted en true, cuatro etiquetas, y cuatro textboxes todo dentro del frame. Lo importante es que para usar modularidad, pondremos nombres claros a los botones, serán cmdtiposMov, con index de 1 a 5, y el listbox será lsttiposmov, los textbox serán txttiposmov de 0 a 3 en index. A los controles textbox les vamos a poner un maxlength de 3,30,60 y 1, correspondientes a la estructura de la tabla de l correo anterior. Para simplificar, vamos a decirle en el form que lo queremos fixed single ( en border style ), y MUY importante, como dije en el correo tres, vamos a entrar en el menú opciones del proyecto, y vamos a revisar que las casillas siguientes estén checadas: En inglés
Hagan Todos los pasos anteriores. A estas alturas debemos tener una pantalla como esta, si no la tienen, les envío en el siguiente correo el archivo conc01.zip, donde viene el proyecto en Visual 5. SP3. Si no ven la pantalla, está en images/conc01.gif Pantalla del sistema de conciliaciones Próximo: Manejo de altas y cambios en esta tabla, y porqué es mejor usar SQL que los accesos normales. Mensaje modificado por Nagual el Apr 9 2009, 07:55 AM -------------------- __________________________
Por la ley y para siempre For the Rule and forever |
|
|
|
![]() ![]() |
| Versión Lo-Fi | Fecha y Hora actual: 31st July 2010 - 11:44 PM |