Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Access 2013 | Access 2016
Los formatos de almacenamiento de memoria para texto difieren entre el código de Visual Basic para Aplicaciones (VBA) y el código de Access Basic. (Access Basic se usó en versiones anteriores de Microsoft Access). El texto se almacena en formato ANSI en el código de Access Basic y en formato Unicode en Visual Basic. Este tema analiza un problema que puede producirse al procesar cadenas en la versión actual de Microsoft Access. Para obtener más información, vea Diferencias entre las operaciones de función de cadena.
En varias funciones API de Windows el largo de byte de una cadena tiene un significado especial. Por ejemplo, el siguiente programa devuelve la instalación de una carpeta en Windows. En Microsoft Access, LeftB (Buffer, ret) no devuelve la cadena correcta. Esto se debe a que, a pesar de que muestra el largo de byte de una cadena ANSI, la función LeftB procesa cadenas Unicode. En este caso, utilice la función InStr de forma que sólo se devuelva la cadena de caracteres, sin valores nulos.
Private Declare Function GetWindowsDirectory Lib "kernel32" _
Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _
ByVal nSize As Long) As Long
Private Sub Command1_Click()
Buffer$ = Space(255)
ret = GetWindowsDirectory(Buffer$, 255)
' WinDir = LeftB(Buffer, ret) '<--- Incorrect code"
WinDir = Left(Buffer$, InStr(Buffer$, Chr(0)) - 1)
'<--Correct code"
Print WinDir
End Sub
Vea también
- Acceso al foro de desarrolladores
- Acceso a la ayuda en support.office.com
- Acceso a la ayuda en answers.microsoft.com
- Acceso a foros en UtterAccess
- Acceso al centro de ayuda de programadores VBA y desarrolladores (FMS)
- Acceso a las publicaciones en StackOverflow
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.