Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Base de Datos en Access 2003

Estas en el tema de Base de Datos en Access 2003 en el foro de Bases de Datos General en Foros del Web. Hola! Llevo poco tiempo trabajando con la Base de Datos de Access por lo que aun estoi un poco verde... Este es el tema: Tengo ...
  #1 (permalink)  
Antiguo 25/05/2011, 12:17
 
Fecha de Ingreso: mayo-2011
Ubicación: España
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Base de Datos en Access 2003

Hola! Llevo poco tiempo trabajando con la Base de Datos de Access por lo que aun estoi un poco verde...

Este es el tema:

Tengo una tabla con campos como Id, nombre, apellidos, edad, foto, localidad, etc...

Y luego para visualizar esa tabla e creado un formulario.

Pues bien, lo que yo queria hacer es, cada vez que veo a una persona en el formulario, queria que hubiera un contador que me dijera, cuantas veces e visto el registro de esa persona... es decir, yo abro el formulario, y obviamente me sale el primer registro, pues ese registro deberia sumar una visita, y si yo visito otro registro de otra persona, que esa persona se le sume una visita mas...

No se si me e explicado bien... eso es todo, no se si sera posible poder hacerlo.



Gracias.
  #2 (permalink)  
Antiguo 26/05/2011, 01:06
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Base de Datos en Access 2003

Si quieres hacerlo en cada sesion, es decir, que cada vez que se abra la BD empiece a contar desde 0, bastaria con unas variables globales a nivel de modulo, para ir contando, pero en funcion del nuemro de regitros igual serian demasiadas, por loq ue podrias usar un array.

Si quieres que el "contador" no se inicialice cada vez que se abre la BD, puedes crear una tabla donde guardes ese contador, y actualizarlo en el evnto current (al activar registri) del formulario.

En funcion de tu respuesta, continuamos.

un saludo
  #3 (permalink)  
Antiguo 26/05/2011, 04:59
 
Fecha de Ingreso: mayo-2011
Ubicación: España
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Base de Datos en Access 2003

Yo tenia pensado crear un campo llamado Número de Visitas y que cada "persona" en el formulario le saliera el campo Número de Visitas, con el numero de visitas que obviamente tiene cada uno, nose cual es la opcion mas eficaz de las que as mencionado, asique como tu quieras...



Un saludo y gracias por contextar.
  #4 (permalink)  
Antiguo 26/05/2011, 05:58
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Base de Datos en Access 2003

Eficaces son las dos, la diferencia es si quieres tener un historico o quieres que se inicie cada vez que abres la bd.

Optemos por la segunda opcion.
Supongo que cada registro de persona, tendra un identificador. Llamemosle Idpersona.

Crea una tabla nueva con dos campos: IdPersona, NumVisitas. Llamemos a la tabla TblContadorVisitas.

El fomrulario, tiene un evento llamado al activar registro (current), pues en ese evento, has de poner algo asi, para que se incremente en 1 cada vez que se active (se visite) ese registro.

Private Sub Form_Current()
Dim rstContador As DAO.Recordset

If Not Me.NewRecord Then 'no se trata d eun nuevo regitro
Set rstContador = CurrentDb.OpenRecordset("SELECT IdPersona,NumVisitas from TblContadorVisitas WHERE IdPersona=" & Me.Id_empleado)

If rstContador.RecordCount = 0 Then 'No esta introducido el regitro: Añadimos
rstContador.AddNew
rstContador("IdPersona") = Me.Id_empleado
rstContador("NumVisitas") = 1
rstContador.Update
Me.NumVisitas = 1
Else ''YA esta introducido el regitro: editamos
rstContador.Edit
rstContador("NumVisitas") = Nz(rstContador("NumVisitas"), 0) + 1
rstContador.Update
Me.NumVisitas = rstContador("NumVisitas")
End If

rstContador.Close
Set rstContador = Nothing
Else
Me.NumVisitas = 0
End If

End Sub

NumVisitas es un cuadro de texto, independiente, para mostrar el nuemro de visitas.
Tienes que activar la referencia Microsoft Dao x.xx object library

Vete probando, tendras errores, adaptalo a los nombres de tus campos y tablas.

Un saludo
  #5 (permalink)  
Antiguo 26/05/2011, 06:07
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Base de Datos en Access 2003

Igual me he liado demasiado, tambien puedes incluir en en el origen de registro del formualrio la nueva tabla, uniendola con un inner join (o con el asitente de access, uniendo los dos ampos claves), e incrementar directamente en el evento current el campo:

If Not Me.NewRecord Then
Me.NumVisitas = Nz(Me.NumVisitas, 0) + 1
End If

En este caso, el cuadro de texto NumVisitas tendra que tener como origen de control el campo NumVisitas de la tabla TblContadorVisitas

un saludo
  #6 (permalink)  
Antiguo 26/05/2011, 07:48
 
Fecha de Ingreso: mayo-2011
Ubicación: España
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Base de Datos en Access 2003

Muchas gracias, despues de un rato depurando el codigo ya me funciona justo como queria.

Asique muchas gracias de nuevo!!

Un saludo!

Etiquetas: 2003, access, bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:04.