Access - Calendario para insertar fechas

 
Vista:
sin imagen de perfil

Calendario para insertar fechas

Publicado por Juan Manuel (4 intervenciones) el 29/08/2017 18:13:58
He creado un programa en Access 2002-2003 en el que algunos formularios contienen un calendario para insertar fechas. El calendario es Calendar Control 7 (pero puede ser Calendar Control 11.0 u otros) y me funciona perfectamente. Ahora he pensado distribuirlo, pero me he dado cuenta que al instalar el programa en otro ordenador, este calendario no funciona. He comprobado que en alguna versiones de Windows no incorporan un archivo llamado mscal.ocx, que parece necesario para el funcionamiento de este tipo de calendarios. Se puede copiar y pegar este archivo, y ademas hay que registrarlo y entonces si funciona. Mi problema es que al distribuir el programa y entregarlo en un CD, no sabes si el ordenador en que se instala tiene o no el archivo mscal.ocx, esto se podría solucionar pegándolo con código vb, pero como también hay que registrarlo y esto se hace en Inicio escribiendo cmd, no se como solucionarlo. Hay otros calendarios, pero este me gusta porque puedes cambiar el mes y el año, en otros para pasar de un año a otro tienes que pasarlo mes a mes y esto es muy lento.
Gracias a quien sepa alguna solución o conozca algún calendario que funcione en todos los Sistemas Operativos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Oscar Pérez
Val: 196
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Calendario para insertar fechas

Publicado por Oscar Pérez (80 intervenciones) el 29/08/2017 18:45:11
Buenas!

Lo que tienes que hacer es abrir el proyecto de VBA y mirar qué referencias estás utilizando en tu equipo que sí funciona. Yo lo que hice fue generar por código una tabla con las referencias necesarias para hacerlo funcionar y después, al iniciar el proyecto, verificar una por una que esté correcta y no esté rota, y si así fuera puedes registrarla en tiempo de ejecución.

Te estoy escribiendo desde casa, y aquí no tengo la BBDD en donde tengo el código que utilizo. Mañana te lo paso, a ver si lo puedes utilizar. Es una manera de automatizar todo el proceso.

Saludos!
Óscar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calendario para insertar fechas

Publicado por Juan Manuel (4 intervenciones) el 29/08/2017 18:53:21
Gracias Óscar.
Si tienes la amabilidad, me envias el código.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio
Val: 391
Plata
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Calendario para insertar fechas

Publicado por Antonio (148 intervenciones) el 29/08/2017 19:26:53
Hola.

Asi es tienes que instalarlo en cada equipo para que funcione el calendario dtpicker.

Lo que te aconsejo que hagas un ejecutable que haga ese proceso de instalar el dll en cada computador que instales tu aplicacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calendario para insertar fechas

Publicado por Juan Manuel (4 intervenciones) el 31/08/2017 12:34:21
Gracias Antonio, lo intentare.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Calendario para insertar fechas

Publicado por Anonimo (1974 intervenciones) el 29/08/2017 22:11:52
Yo crearía un calendario basado en un formulario (que podría utilizar como subformulario llegado el caso) de los cuales hay muchos ejemplos (y si no los hay son sencillos de emular).

Así estaría todo hecho en Access, soportaría el cambio a cualquier otra versión tanto hacia adelante como hacia atrás (como cualquier otro objeto natural de Access) y evitaría el posible problema que suele darse a la hora de instalar 'extras' en maquinas ajenas, como por ejemplo la falta de permisos en entornos de trabajo serio (no lo suelen permitir los entornos de dominio correctamente administrados).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Oscar Pérez
Val: 196
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Calendario para insertar fechas

Publicado por Oscar Pérez (80 intervenciones) el 30/08/2017 08:51:35
Buenas!

Te paso una subrutina que tengo hecha para estos casos...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub ComprobarReferencias()
 
For i = 1 To Application.VBE.VBProjects("Tu Proyecto VBA").References.Count
    With Application.VBE.VBProjects("Tu Proyecto VBA").References(i)
    If .IsBroken = False Then
        Mensaje ("Referencia compobada ok: " & .Description)
        DoCmd.RunSQL ("INSERT INTO ref_ACCESS & " (Descripcion, NombreReferencia, GuidWin, FullPath, Version, Dll) VALUES " _
            & "('" & .Description & "','" & .Name & "','" & .Guid & "','" & .FullPath & "','" & .Major & "." & .Minor & "','" & _
            UCase(ExtraerNombreReferencia(.FullPath)) & "')")
        'guardamos cada referencia encontrada en la tabla ref_ACCESS para este proyecto, imagina si tienes varios
        'Podrías crear campos adicionales en la tabla para almacenar el proyecto, el equipo donde se verifica, el estado (boleano) y la fecha actual.
    Else
         'Aquí vendría el código para volver a registrar la referencia pues estaba rota XD Que ahora no lo tengo a mano... 
    End If
    End With
Next i
 
End Sub
 
Function ExtraerNombreReferencia(stPath As String) As String
Dim i As Integer
For i = Len(stPath) To 1 Step -1
If Mid(stPath, i, 1) = "\" Then Exit For
ExtraerNombreReferencia = Mid(stPath, i, 1) & ExtraerNombreReferencia
Next i
End Function

Saludos!
Óscar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calendario para insertar fechas

Publicado por Juan Manuel (4 intervenciones) el 31/08/2017 12:40:19
Muchas gracias Óscar.
El código que me has enviado es muy útil. Sólo me atrevo a decirte que hay que quitar &" que va
después de ("INSERT INTO ref_ACCESS

Un afectuoso saludo.
Juan Manuel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Oscar Pérez
Val: 196
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Calendario para insertar fechas

Publicado por Oscar Pérez (80 intervenciones) el 07/09/2017 09:41:26
Buenas!

Ainsssssss... que atrevimiento!!! XDDDDDDDDDDDD Pero cierto, tienes toda la razón, se me escapó... Cosas del directo jajaja

Saludos!
Oscar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar