Jump to content
vic91am

Principiante en access (pasar una bd de excel a access)

Recommended Posts

Buenas tardes a todos, 

Lo primero de todo gracias por esta gran herramienta que nos ayuda a los novatos avanzar en nuestro aprendizaje.

Os comento brevemente.

Tengo una base de datos en excel en el cual voy introduciendo datos pero el otro día se ve vino a la mente el utilizar access para depurar la BD y ser mas accesible. Después de ver muchos videos, leer manuales, foros ... Me vinieron las primeras preguntas y dudas: ¿Cómo creo las tablas? ¿Estarán bien relacionadas para lo que necesito? ¿Qué clave pongo como principal?

Mi base de datos recogen las personas que hacen cursos. Esas personas pueden ser instructores, directores o personas que lo hacen. También recogen celebraciones de las personas para felicitarles por sus cumpleaños, aniversarios, ... En otro lado tendríamos los datos del curso, fecha que se hacen, lugar, quien imparte ese curso... Y finalmente si esas personas una vez finalizadas ese curso si continúan recibiendo una formación, asisten a reuniones y en que parte de municipio, si se forman por internet,.....

 

A continuación os pongo las tablas y los campos que creo que deberían llevar:

DATOS_PERSONALES (recogidos los datos de todas las personas que están inscritas)

                                       Nombre, apellido, dirección, telefono, correo ... (y unos cuantos campos mas que creo que dan información de la persona pero que no son relevantes para relacionarlos)

CURSILLO (cuando se hacen esos curos)

                                      Nº de cursillo, fechas,  localidad

OTROS DATOS DEL CURSILLO (información detallada del curso y de la persona)

                                     Grupo dentro del cursillo, Función que tiene la persona en el curso (instructor, director, hace el curso..)

SI PARTICIPA DESPUÉS DEL CURSO

                                      Forman en otras sedes, participa en reuniones externas, ....

 

Espero haberme explicado bien y me podais ayudar en esta aventura que me adentrado del access.

Cualquier aclaración o cosa, estaré a vuestra disposición para lograr tal fin.

Muchas gracias,

Un saludo

        Víctor

Share this post


Link to post
Share on other sites

Busca información sobre SISTEMA DE GESTION DE BASE DE DATOS RELACIONALES, Asi de pronto no encontre una adecuada pero esta información te ayudara, enfocate más en las tablas muestra.

https://es.wikipedia.org/wiki/Sistema_de_gestión_de_bases_de_datos_relacionales#Regla_4:_diccionario_dinámico_en_línea_basado_en_el_modelo_relacional

https://www.ibm.com/developerworks/ssa/data/library/tipos_bases_de_datos/index.html

La mitad del trabajo es organizar tus tablas y relacionarlas entre si. Algo importante es mejor tener varias tablas Únicas y que por medio de un campo se relaciones con otra u otras tablas.

Saludos.

 

Sin título.png

Share this post


Link to post
Share on other sites

Una cosas que yo agregaría es: Olvídate de Excel; es decir, imagínate que estás en algo realmente nuevo, no "pienses" en factor Excel o cosas como "si e Excel se hace así, en Access entonces...", deja eso de lado, y ya verás, para bases de datos (gestor), Access es sin duda superior a Excel.

Abraham Valencia

Share this post


Link to post
Share on other sites

Buenos días,

He realizado las tablas y sus posibles campos. Tengo varias preguntas, la clave principal es un campo único que no se puede repetir ¿es correcto?

En el caso de la tabla Persona-Cursillo, he puesto dos claves principales, ¿se puede hacer? En el caso negativo, ¿Qué posible campo puedo poner como clave principal?

A la hora de hacer las relaciones, no tengo ni idea… me lía mucho el tema de 1:1 o 1:n …. Con las tablas que tengo y las líneas (que creo que serán las relaciones) ¿cómo lo puedo hacer?

 

Muchas gracias por vuestra ayuda,

Un saludo

Posibles tablas.png

Share this post


Link to post
Share on other sites
Hace 6 horas, vic91am dijo:

He realizado las tablas y sus posibles campos. Tengo varias preguntas, la clave principal es un campo único que no se puede repetir ¿es correcto?

Es correcto.

Hace 6 horas, vic91am dijo:

En el caso de la tabla Persona-Cursillo, he puesto dos claves principales, ¿se puede hacer? En el caso negativo, ¿Qué posible campo puedo poner como clave principal?

No puede existir 2 Claves Principales. En Persona-Cursillo puede ser el ID que sea simplemente consecutivo, ya que aquí hay una relación muchos a muchos, ya que:

  1. La persona puede haber cursado varios cursos, osea vas a controlar por persona.
  2. Los Cursillos esta compuesto de Varias Personas. 

Esto lo controlas con diferentes indices, en la misma tabla. Y lo que queda después son generar las consultas.

Aquí es hacer una tabla que vaya registrando un Curso en cuestión y los participantes, con los demás datos que creas conveniente.

NOTA: En Cursillo falta el nombre del curso y Descripción si así lo deseas.

NOTA: Es bueno hacer las tablas con ejemplos de sus campos, para que veas que tipo de ID va a llevar y el tipo de dato de los campos, si es Numérico, Texto, Fecha, Lógico...etc.

Share this post


Link to post
Share on other sites
Hace 15 horas, Leopoldo Blancas dijo:

Es correcto.

No puede existir 2 Claves Principales. En Persona-Cursillo puede ser el ID que sea simplemente consecutivo, ya que aquí hay una relación muchos a muchos, ya que:

  1. La persona puede haber cursado varios cursos, osea vas a controlar por persona.
  2. Los Cursillos esta compuesto de Varias Personas. 

Esto lo controlas con diferentes indices, en la misma tabla. Y lo que queda después son generar las consultas.

Aquí es hacer una tabla que vaya registrando un Curso en cuestión y los participantes, con los demás datos que creas conveniente.

NOTA: En Cursillo falta el nombre del curso y Descripción si así lo deseas.

NOTA: Es bueno hacer las tablas con ejemplos de sus campos, para que veas que tipo de ID va a llevar y el tipo de dato de los campos, si es Numérico, Texto, Fecha, Lógico...etc.

Muchas gracias Leopoldo,

Adjunto un enlace para poder descargar el fichero para ver que tal pinta tiene

https://www.dropbox.com/s/89xag4p8pxbml7j/BD-Cur.accdb?dl=0 

Me cuentas que te parece si puedes,

Muchas gracias nuevamente

Share this post


Link to post
Share on other sites

Bien, vas avanzando, pero fíjate en el tipo de dato que va a guardar cada campo, por ejemplo... en teléfono lo pones numérico y no debe de ser numérico, ya que no vas a sumar o restar por el campo Teléfono, ya que en el número telefónico puede haber espacios u algún carácter de separación, un numero telefónico con puros dígitos juntos es difícil de leer.

Y en Cursillo Falta Nombre del Curso por lo menos.

Investiga al respecto..

Saludos.

NOTA: AL PARECER TE FALTA O FALTA REDISEÑAR EL CURSO, POR EJEMPLO... ESTA PROGRAMADO UN CURSO Y EN ESE CURSO VAN A ASISTIR PERSONAS, ENTONCES HACE FALTA UNA TABLA QUE TENGA EL CURSO COMO CLAVE PRINCIPAL Y LAS PERSONAS COMO UN CAMPO MAS. YA DESPUÉS EN CONSULTAS PUEDES FILTRAR POR PERSONAS LOS CURSOS QUE HAYA TOMADO.

Share this post


Link to post
Share on other sites
Hace 18 horas, Leopoldo Blancas dijo:

Bien, vas avanzando, pero fíjate en el tipo de dato que va a guardar cada campo, por ejemplo... en teléfono lo pones numérico y no debe de ser numérico, ya que no vas a sumar o restar por el campo Teléfono, ya que en el número telefónico puede haber espacios u algún carácter de separación, un numero telefónico con puros dígitos juntos es difícil de leer.

Y en Cursillo Falta Nombre del Curso por lo menos.

Investiga al respecto..

Saludos.

NOTA: AL PARECER TE FALTA O FALTA REDISEÑAR EL CURSO, POR EJEMPLO... ESTA PROGRAMADO UN CURSO Y EN ESE CURSO VAN A ASISTIR PERSONAS, ENTONCES HACE FALTA UNA TABLA QUE TENGA EL CURSO COMO CLAVE PRINCIPAL Y LAS PERSONAS COMO UN CAMPO MAS. YA DESPUÉS EN CONSULTAS PUEDES FILTRAR POR PERSONAS LOS CURSOS QUE HAYA TOMADO.

Gracias Nuevamente!!!

Los tipos de datos de cada campo lo tengo que revisar, lo hice rápido sin fijarme. Lo tendré en cuenta!!!

En Cursillo lo identifico por  Nº_Cursillo que es la clave principal. Cada Curso tiene un nº y no un nombre. 

A lo último que me comentas tengo una tabla intermedia que es Persona-Cursillo que lo tengo relacioanado con Cursillo y Datos Personales. No sé si es a eso a lo que te refieres.

De todas formas dejo de nuevo el fichero. 

https://www.dropbox.com/s/89xag4p8pxbml7j/BD-Cur.accdb?dl=0

image.thumb.png.9b58f8e27052ccb62d1949f29eaaf40f.png

 

GRACIAS nuevamente!!

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




  • Posts

    • Buenos días!   Amigos del foro quisiera solicitarles el apoyo para resolver el siguiente problema, necesito una macro que me permita copiar de una hoja a otra si se cumplen los siguientes criterios: Si el valor en la columna G de la hoja Diario es mayor que cero, se copien los datos de Diario(hasta la ultima celda con datos) a la hoja BD pegando los datos en la ultima celda vacía de BD. Al copiar aquellos valores mayores a cero en la hoja BD quitarlos de la hoja Diario, solamente dejando los datos que contengan cero o se encuentren vacios en la columna G de la hoja Diario. Lo estuve intentando de la siguiente manera: Sub copiar2() Set J1 = Sheets("Diario") Set J2 = Sheets("BD") j = J2.Range("A" & Rows.Count).End(xlUp).Row + 1 For i = 3 To 79 If J1.Cells(i, "G") > 0 Then J2.Cells(i, "A") = J1.Cells(i, "A") J2.Cells(i, "B") = J1.Cells(i, "B") J2.Cells(i, "C") = J1.Cells(i, "C") J2.Cells(i, "D") = J1.Cells(i, "D") J2.Cells(i, "E") = J1.Cells(i, "E") J2.Cells(i, "F") = J1.Cells(i, "F") J2.Cells(i, "G") = J1.Cells(i, "G") J2.Cells(i, "H") = J1.Cells(i, "H") J2.Cells(i, "I") = J1.Cells(i, "I") J2.Cells(i, "J") = J1.Cells(i, "J") J2.Cells(i, "K") = J1.Cells(i, "K") J2.Cells(i, "L") = J1.Cells(i, "L") J2.Cells(i, "M") = J1.Cells(i, "M") J2.Cells(i, "N") = J1.Cells(i, "N") End If Next MsgBox "Valores copiados" End Sub Saludos JB Consulta copiado.xlsm
    • Hola! También puedes poner =Valor(A2), luego copiar y pegar valores
    • Cielos no se que decir, siempre me sorprenden; ambos casos son buenos. Aun no termino de analizar el código bien, pero en cuanto termine les haré saber de antemano muchas gracias.
    • Si te vas al explorador del proyecto VBA, en el árbol de módulos, puedes ver la hoja "aux"  Te adjunto otro método, trabajando con una matriz y como te lo comenté al inicio, trasladando los registros visibles   Saludos! Importar datos de otro libro.zip
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy