** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Access Runtime 365
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Access Runtime 365

 Responder Responder
Autor
Mensaje
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 649
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita maserrano Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Access Runtime 365
    Enviado: 20/Noviembre/2023 a las 13:30
Buenas tardes.
Una duda que no sé cómo resolver.
Cuando intento abrir una base con access runtime en la versión 365 desde una ubicación de red no me deja acceder al no reconocer ese lugar como de confianza . Claro, al ser runtime, no tengo forma de decirle que la ubicación es de confianza.
Yo, como administrador y con access pongo esa misma ruta como de confianza pero vuelve a pasar lo mismo al ejecutarlo con runtime, que no reconoce el lugar como de confianza.
No sé cómo abordarlo para que se pueda abrir.
Imagino que es una cuestión relacionado con que el archivo está en la red porque si ese mismo archivo (que no tiene tablas al estar separadas) lo llevo a disco local sí lo abre. Supongo que al no estar en red sí lo permite ??
Alguna idea o sugerencia?? 
A alguien le ha tenido que ocurrir también con esta nueva versión más restrictiva supongo ??
Gracias por adelantado.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6464
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita mounir Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 20/Noviembre/2023 a las 17:05
Un Saludo.
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4798
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 20/Noviembre/2023 a las 19:12
Buenas en casi todos mis programa utilizo esta rutina desde hace años y suele funcionar bastante bien ,....... OJO puede haber algun caso especial donde No funcione




Option Explicit

Rem Crear Zona de Confianza usando la referencia Referencias Windows Script Host Object Model
Rem ES MEJOR USAR ESTE METODO SI SE VA USUAR EL RUNTIME DE ACCESS

Const cPrefijo As String = "HKEY_CURRENT_USER\Software\Microsoft\Office\"
Const cSufijo As String = "\Access\Security\Trusted Locations\Location"
Rem Fin Constantes++++++




'Public Function funTest()
'
'      If funCrearZonaConfianza = True Then
'            MsgBox "Ok se ha creado una nueva zona de confianza", vbInformation, "Zona de Confianza"
'      Else
'            MsgBox "No es necesario crear la zona de confianza", vbExclamation, "Zona de Confianza"
'      End If
'
'End Function



Public Function funCrearZonaConfianza() As Boolean

'---------------------------------------------------------------------------------------
' Date      : 23/01/2010
' Author    : Javier Gomez (Javier.Mil)
' WEB       : https://www.accessdemo.info
' Procedure : funCrearZonaConfianza
' Purpose   : Crea Zona de Confianza para Access 2007 , 2010 , 2013 , 2017 , 2019 utilizando "LOCATION (n)"
'---------------------------------------------------------------------------------------
    On Error GoTo Err_Local

    Dim objWshShell As Object
    Dim intX As Integer
    Dim strVersionAccess As String




    Set objWshShell = CreateObject("Wscript.Shell")


    strVersionAccess = SysCmd(acSysCmdAccessVer)

 
   

    If strVersionAccess = "12.0" Or strVersionAccess = "14.0" Or strVersionAccess = "15.0" Or strVersionAccess = "16.0" Or strVersionAccess = "17.0" Then
        Rem Access 2007 , Access 2010 , Access 2013 , Access 2016 , Access 2019

        If funBuscarZonaConfianza <> CurrentProject.Path & "\" Then

            intX = funPrimerLocationVacio

            objWshShell.RegWrite cPrefijo & strVersionAccess & cSufijo & intX & "\AllowNetworkLocations", 1, "REG_DWORD"
            objWshShell.RegWrite cPrefijo & strVersionAccess & cSufijo & intX & "\AllowSubfolders", 1, "REG_DWORD"

            objWshShell.RegWrite cPrefijo & strVersionAccess & cSufijo & intX & "\Date", Format(Now(), "mm/dd/yyyy hh:mm")
            objWshShell.RegWrite cPrefijo & strVersionAccess & cSufijo & intX & "\Description", "Mi nueva zona de confianza"
            objWshShell.RegWrite cPrefijo & strVersionAccess & cSufijo & intX & "\Path", CurrentProject.Path & "\"

            funCrearZonaConfianza = True

        Else
            funCrearZonaConfianza = False

        End If
    End If


Close_Local:
    Set objWshShell = Nothing

Exit_Local:
    On Error GoTo 0
    Exit Function

Err_Local:
    funCrearZonaConfianza = False
    MsgBox Err.Description, vbCritical, "Error N°:  " & Err.Number
    Resume Exit_Local

End Function




Private Function funBuscarZonaConfianza() As String
'---------------------------------------------------------------------------------------
' Date      : 23/01/2010
' Author    : Javier Gomez (Javier.Mil)
' WEB       : https://www.accessdemo.info
' Procedure : funBuscarZonaConfianza
' Purpose   : Busca si existe la Zona de Confianza
'---------------------------------------------------------------------------------------

    On Error Resume Next

    Dim objWshShell As Object
    Dim strTemp As String
    Dim intX As Integer
    Dim strVersionAccess As String

    Set objWshShell = CreateObject("Wscript.Shell")
    strVersionAccess = SysCmd(acSysCmdAccessVer)
 
   

    For intX = 0 To 999
        strTemp = objWshShell.RegRead(cPrefijo & strVersionAccess & cSufijo & intX & "\Path")

        If strTemp = CurrentProject.Path & "\" Then
            funBuscarZonaConfianza = strTemp
            Exit For
        End If
    Next intX

    Set objWshShell = Nothing

End Function



Private Function funPrimerLocationVacio() As Integer
'---------------------------------------------------------------------------------------
' Date      : 23/01/2010
' Author    : Javier Gomez (Javier.Mil)
' WEB       : https://www.accessdemo.info
' Procedure : funPrimerLocationVacio
' Purpose   : Busca el primer Location vacio o libre
'---------------------------------------------------------------------------------------

    On Error Resume Next

    Dim objWshShell As Object
    Dim strTemp As String
    Dim intX As Integer
    Dim strVersionAccess As String
   

    Set objWshShell = CreateObject("Wscript.Shell")
    strVersionAccess = SysCmd(acSysCmdAccessVer)

    For intX = 0 To 999
        strTemp = ""
        strTemp = objWshShell.RegRead(cPrefijo & strVersionAccess & cSufijo & intX & "\Path")
        If strTemp = "" Then
            funPrimerLocationVacio = intX
            Exit For
        End If
    Next intX

    Set objWshShell = Nothing
End Function




Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4798
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 20/Noviembre/2023 a las 19:17
En el formulario de INICIO tienes que poner esto en el Evento On Open

      If funCrearZonaConfianza = True Then
            MsgBox "Ok se ha creado una nueva zona de confianza", vbInformation, "Zona de Confianza"
      Else
           '  MsgBox "No es necesario crear la zona de confianza", vbExclamation, "Zona de Confianza"
     End If




 



Editado por javier.mil - 20/Noviembre/2023 a las 19:18
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 649
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita maserrano Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Noviembre/2023 a las 00:00
Pues mañana en el curro hago las pruebas. Gracias, un saludo y, ya os cuento qué tal.
Arriba
joanka Ver desplegable
Habitual
Habitual


Unido: 07/Abril/2021
Localización: Lleida
Estado: Sin conexión
Puntos: 130
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita joanka Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Noviembre/2023 a las 10:17
Hola,

Yo probé mil cosas pero lo más efectivo es instalar Access provisionalmente, ir a Opciones -> Centro de confianza. Habilitar o deshabilitar las opciones de los centros de confianza, como:

- Permitir que sean de confianza los documentos de una red.
- Habilitar macros.
- etc..

Cuando ya te funciona todo sin lanzar avisos, lo desinstalas. Esa configuración te quedará guardada aunque desinstales Access.

Claro, todo esto si tienes permisos de administrador para hacerlo.

Un saludo,



Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 649
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita maserrano Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Noviembre/2023 a las 18:29
Buenas.
He probado el código de Javier y no funciona. Bueno, no funciona con Runtime; sí en cambio con Access. Al arrancar, te salta un mensaje de que la ha creado y después lo compruebo y así es. De hecho, me la ha duplicado la misma ruta pues ya la tenía.
Con runtime no te da opción a nada, sólo a cancelar (y se cierra). Parece ser que la versión de 365 es "más restrictiva".
Voy a probar la opción de (si quieren en el trabajo) que instalen access provisionalmente en la máquina para crear la zona de confianza en la carpeta de red y a ver qué tal.
La otra opción es que arranquen desde local, que sí lo permite.
Gracias y saludos.
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4798
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Noviembre/2023 a las 21:57
Otra opción si usas solo el RunTime es ejecutar el siguiente código en un fichero VBS
Es decir copias y pegas el siguiente codigo en un fichero TXT y cambias la extensión por VBS
Por ejemplo le pones el nombre "ZonaDeConfianza2016.vbs" lo ejecutas antes de lanzar tu fichero de Access



' EL CODIGO Y EL USO DEL MISMO ES ** "TAL CUAL" **
' SIN NINGUNA GARANTÍA DE NINGÚN TIPO EXPRESA
' O IMPLÍCITA, Y EL USUARIO ASUME BAJO SU PROPIO
' RIESGO Y RESPONSABILIDAD SU USO.


' DateTime : 23/01/2010 20:34
' Ultima revision: 1/12/2018
' Author : Copyright (c) Javier Gomez ("Javier.Mil")
' WEB : www.accessdemo.info
' Purpose : Crea Zona de Confianza para Access 2007 y Access 2010 , Access 2013 , Access 2016 utilizando "LOCATION (n)"


Option Explicit

Const cVersion = "16.0"
Const cPrefijo = "HKEY_CURRENT_USER\Software\Microsoft\Office\"
Const cSufijo = "\Access\Security\Trusted Locations\Location"
Dim objWshShell
Dim intX
Dim strTemp

On Error Resume Next

            Set objWshShell = CreateObject("Wscript.Shell")
            For intX = 0 To 999
                  strTemp = objWshShell.RegRead(cPrefijo & cVersion & cSufijo & intX & "\Path")

                  If strTemp = (objWshShell.CurrentDirectory) & "\" Then
                        Exit For
                  End If
            Next

            If strTemp <> (objWshShell.CurrentDirectory) & "\" Then
                  For intX = 0 To 999
                        strTemp = ""
                        strTemp = objWshShell.RegRead(cPrefijo & cVersion & cSufijo & intX & "\Path")

                        If strTemp = "" Then
                              Exit For
                        End If
                  Next

                  objWshShell.RegWrite cPrefijo & cVersion & cSufijo & intX & "\AllowNetworkLocations", 1, "REG_DWORD"
                  objWshShell.RegWrite cPrefijo & cVersion & cSufijo & intX & "\AllowSubfolders", 1, "REG_DWORD"
                  objWshShell.RegWrite cPrefijo & cVersion & cSufijo & intX & "\Date", Format(Now(), "mm/dd/yyyy hh:mm")
                  objWshShell.RegWrite cPrefijo & cVersion & cSufijo & intX & "\Description", "VBScript por Javier Gomez , Mi nueva Zona de Confianza"
                  objWshShell.RegWrite cPrefijo & cVersion & cSufijo & intX & "\Path", (objWshShell.CurrentDirectory) & "\"

            End If

      Set objWshShell = Nothing

' MsgBox "Fin Zona de Confianza creada con exito", vbOKOnly, "VBScript por Javier Gomez"


 




Editado por javier.mil - 21/Noviembre/2023 a las 21:59
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 649
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita maserrano Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 01/Diciembre/2023 a las 12:47
Muy buenas y perdonad por la tardanza en responder pero es que hasta que no me han concedido la petición en la Administración no lo he podido comprobar.
Después de probar bastantes códigos y demás, traté de hacer lo que me indicó "joanka". Lo que ocurre es lo que he comentado sobre la Administración... que tardan lo suyo.
En fin me lo han concedido y he hecho las pruebas en un equipo donde le han quitado runtime e instalado Access 365. Le he configurado la zona de confianza (ubicación del programa en la red) y después al revés: desinstalar access y volver a poner runtime 365. Y perfecto; ahora reconoce la ruta y abre la aplicación sin problema.
Solucionado.
El problema es ahora mío, que tengo ta hacer una petición para cada usuario que entra en la aplicación para que le hagan esto mismo. Pero bueno, todo sea eso.
Gracias a todos y el hilo se puede cerrar.
Salu2
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4798
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 01/Diciembre/2023 a las 17:41
Hola Miguel (maserrano)

Antes de cerrar el hilo,........ No se quien es "joanka" perooooo por curiosidad 
¿ Te ha servido alguno de mis códigos ?
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 649
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita maserrano Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 02/Diciembre/2023 a las 00:08
Hola.
Yo tampoco sé quien es "JoanKa", pero hizo una aportación en este hilo el 21/Noviembre/2023 a las 10:17
Sí he probado el código Javier y, cuando ejecutas el formulario de inicio dice que se crea una ruta de confianza (de hecho lo compruebo y se crea): El caso es que cuando abro desde runtime no reconoce la ruta.

Usé: Public Function funTest()
Y en el FOrm de Inicio en el evento on Open lo que indicaste.

MO 365 se ve que tanto para access como para runtime guarda en cada máquina (archivos de instalación) la ruta que creas. Así es como se ha conseguido.
Salu2
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4798
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Diciembre/2023 a las 22:41
Es normal que si ejecutas el código desde ACCESS que salte el aviso solo la primera vez, ya que antes de ejecutarse el código Accesos busca si existe una zona de confianza en el registro de Windows peroooooo si quieres evitar incluso que salte el aviso la primera vez deberías lanzar primero el fichero VBS antes de ejecutar Access.

De todos modos me alegro que lo hayas conseguido







Editado por javier.mil - 03/Diciembre/2023 a las 22:44
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 649
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita maserrano Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Diciembre/2023 a las 09:35
Gracias Javier, pero no puedo lanzar el fichero así tal cual porque tenemos "capadas" las máquinas. Lo intenté, pero la política de seguridad no me dejó.
Salu2
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable