Imprimir página | Cerrar ventana

Error variable mslLanguageIDUI

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86700
Fecha de impresión: 27/Marzo/2026 a las 06:03


Tema: Error variable mslLanguageIDUI
Publicado por: Bepb
Asunto: Error variable mslLanguageIDUI
Fecha de publicación: 24/Mayo/2023 a las 13:09
Hola,

   Estoy intentando averiguar el idioma del sistema desde una macro de Access y me marca un error de variable no definida en msoLanguageIDUI.
La utilizo en un Select Case:

Select Case Application.LanguageSettings.LanguageID(msoLanguageIDUI)

No sé si debo tener algún módulo o api que no tengo en mi Access, tampoco sé como incluirlo

Un saludo y gracias.


-------------
Saludos desde Menorca. José Luis



Respuestas:
Publicado por: emiliove
Fecha de publicación: 24/Mayo/2023 a las 15:24
Pues yo si pongo esto:
Dim objLangSet As Object
Set objLangSet = Application.LanguageSettings
MsgBox objLangSet.LanguageID(msoLanguageIDInstall)
El cuadro de dialogo me dice: 2052 que equivale a msoLanguageIDMexicanSpanish

Saludos.


Publicado por: Mihura
Fecha de publicación: 24/Mayo/2023 a las 15:29
Para poder 'usar' el comando tal cual lo pones, necesitas tener la librería Microsoft Office xx.x Object Library referenciada, para que Access pueda saber el valor del parámetro.

Lo que puedes hacer es ejecutar el comando con el valor de ese parámetro directamente:
Application.LanguageSettings.LanguageID(2)

Nota, para averiguarlo primero referencias la librería, obtienes su valor:
       ? msoLanguageIDUI    (en la ventana inmediato

 y 'desreferencias' la librería.


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: Bepb
Fecha de publicación: 24/Mayo/2023 a las 17:31
Hola Emilio,

   Me da el mismo error de variable no definida en msoLanguageIDInstall.
   Supongo que debe ser lo que indica el compañero que debo referenciar libreria, lo voy a intentar.

Saludos


-------------
Saludos desde Menorca. José Luis


Publicado por: joanka
Fecha de publicación: 24/Mayo/2023 a las 18:10
Hola prueba esto:

Option Compare Database

Private Declare PtrSafe Function GetUserDefaultLCID Lib "kernel32" () As Long

Sub verIdioma()
    Dim idioma As String
    
    idioma = saberidioma()
    MsgBox "El idioma de Access es: " & idioma
End Sub

Function saberidioma() As String
    Dim idioma As Long
    
    idioma = GetUserDefaultLCID()
    
    Select Case idioma
        Case 1033
            saberidioma = "Inglés"
        Case 3082
            saberidioma = "Español"
        
        Case Else
            saberidioma = "Otro idioma"
    End Select
End Function

Private Sub btidioma_Click()

verIdioma

End Sub


Publicado por: Bepb
Fecha de publicación: 24/Mayo/2023 a las 18:54
Hola,

    Ya pude solucionar el tema con la referenciación de la Libreria Microsoft Office 16.0 Object Library, así ya reconoce todo.

    Gracias también a Joanka, otra opción muy buena.

Saludos y gracias a todos.


-------------
Saludos desde Menorca. José Luis



Imprimir página | Cerrar ventana