Mi problema es el siguiente. Tengo que crear una base de datos en Access 2000 que acceda a y visualize unos ficheros dBase de otra aplicación (FacturaPlus). Resulta que cuando enlazo las tablas dBase con una base de datos de Access, Access me representa los caracteres accentuados, eñes y similares con caracteres raros. Supongo que será porque los ficheros dBase todavía usan la codificación usada en MS-DOS mientras que Access usa la de Windows. Así que mi pregunta es la siguiente: ¿hay alguna manera de configurar Access para que pueda visualizar en él los caracteres acentuados de las tablas de dBase como se ven en el FacturaPlus? Y por supuesto ¿como se hace? RESPONDE EDUARDO OLAZ ===================== Estas funciones las mandé a este foro a finales del año 99. Te pueden servir para pasar de Windows a DBF y a la inversa. Tienes el Public Function ConvertirATextoDOS(ByVal Cadena As String) As String '************************************************************************ ' ConvertirATextoDOS(Texto) --> Texto ' Función desarrollada por Eduardo Olaz ' Primera versión 26/12/99 ' Última revisión 26/12/99 '************************************************************************ ' parámetros: Texto (por valor, string) Texto en formato Windows ' Valor devuelto (String) Texto convertido a formato MSDOS Dim strSubCadena As String Dim lngCadena As Long Dim lngContador As Long Dim strCaracter As String * 1 lngCadena = Len(Cadena) If lngCadena > 0 Then For lngContador = 1 To lngCadena strCaracter = Mid$(Cadena, lngContador, 1) Select Case Asc(strCaracter) Case 170 ' ª strCaracter = Chr$(166) Case 186 ' º strCaracter = Chr$(167) Case 225 ' á strCaracter = Chr$(160) Case 193 ' Á strCaracter = Chr$(181) Case 233 ' é strCaracter = Chr$(130) Case 201 ' É strCaracter = Chr$(144) Case 237 ' í strCaracter = Chr$(161) Case 205 ' Í strCaracter = Chr$(214) Case 243 ' ó strCaracter = Chr$(162) Case 211 ' Ó strCaracter = Chr$(224) Case 250 ' ú strCaracter = Chr$(163) Case 218 ' Ú strCaracter = Chr$(233) Case 252 ' ü strCaracter = Chr$(129) Case 220 ' Ü strCaracter = Chr$(154) Case 241 ' ñ strCaracter = Chr$(164) Case 209 ' Ñ strCaracter = Chr$(165) Case 231 ' ç strCaracter = Chr$(135) Case 199 ' Ç strCaracter = Chr$(128) End Select strSubCadena = strSubCadena & strCaracter Next lngContador End If ConvertirATextoDOS = strSubCadena End Function Public Function ConvertirATextoWindows(ByVal Cadena As String) As String '************************************************************************ ' ConvertirATextoWindows(Texto) --> Texto ' Función desarrollada por Eduardo Olaz ' Primera versión 26/12/99 ' Última revisión 26/12/99 '************************************************************************ ' parámetros: Texto (por valor, string) Texto en formato DOS ' Valor devuelto (String) Texto convertido a formato Windows Dim strSubCadena As String Dim lngCadena As Long Dim lngContador As Long Dim strCaracter As String * 1 lngCadena = Len(Cadena) If lngCadena > 0 Then For lngContador = 1 To lngCadena strCaracter = Mid$(Cadena, lngContador, 1) Select Case Asc(strCaracter) Case 166 ' ª strCaracter = Chr$(170) Case 167 ' º strCaracter = Chr$(186) Case 160 ' á strCaracter = Chr$(225) Case 181 ' Á strCaracter = Chr$(193) Case 130 ' é strCaracter = Chr$(233) Case 144 ' É strCaracter = Chr$(201) Case 161 ' í strCaracter = Chr$(237) Case 214 ' Í strCaracter = Chr$(205) Case 162 ' ó strCaracter = Chr$(243) Case 224 ' Ó strCaracter = Chr$(211) Case 163 ' ú strCaracter = Chr$(250) Case 233 ' Ú strCaracter = Chr$(218) Case 129 ' ü strCaracter = Chr$(252) Case 154 ' Ü strCaracter = Chr$(220) Case 164 ' ñ strCaracter = Chr$(241) Case 165 ' Ñ strCaracter = Chr$(209) Case 135 ' ç strCaracter = Chr$(231) Case 128 ' Ç strCaracter = Chr$(199) End Select strSubCadena = strSubCadena & strCaracter Next lngContador End If ConvertirATextoWindows = strSubCadena End Function Aquí tienes las funciones equivalentes TextoWindowsADos TextoDosAWindows Realizadas con las funciones API CharToOem OemToChar ____________________________________ Option Explicit Declare Function CharToOem _ Lib "user32" _ Alias "CharToOemA" ( _ ByVal CadenaAConvertir As String, _ ByVal CadenaConvertida As String) _ As Long Declare Function OemToChar _ Lib "user32" _ Alias "OemToCharA" ( _ ByVal CadenaAConvertir As String, _ ByVal CadenaConvertida As String) _ As Long Public Function TextoWindowsADos( _ ByVal Cadena As String) _ As String Dim strBuffer As String Dim Resultado As Long strBuffer = String(Len(Cadena), " ") Resultado = CharToOem(Cadena, strBuffer) TextoWindowsADos = strBuffer End Function Public Function TextoDosAWindows( _ ByVal Cadena As String) _ As String Dim strBuffer As String Dim Resultado As Long strBuffer = String(Len(Cadena), " ") Resultado = OemToChar(Cadena, strBuffer) TextoDosAWindows = strBuffer End Function