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

Tema cerradoCrear fichero XML

 Responder Responder
Autor
Mensaje
 Valoración: Valorar tema: 1 Votos, Promedio 3.00  Tema Buscar Tema Buscar  Opciones del Tema Opciones del Tema
Dexter Ver desplegable
Habitual
Habitual


Unido: 02/Noviembre/2012
Localización: España
Estado: Sin conexión
Puntos: 77
Enlace directo a este mensaje Tema: Crear fichero XML
    Enviado: 20/Abril/2016 a las 09:56
Voy a intentar no excederme pero espero que se entienda mi problema.
Trabajo con una base de datos de access con tablas vinculadas a SQL Server. Estas tablas de SQL son bastante viejas ya que vienen de un traspaso de AS400 y todos los campos son binarios (no se si esto tiene algo que ver con mi problema).

Tengo hecha una rutina para crear un XML con datos combinados de esas tablas de SQL. 

El problema que tengo es que cuando abro el fichero generado, aparecen ciertos caracteres especiales y mi sistema rechaza este formato

Ejemplo: Para crear el archivo utilizo lo siguiente:
Open "c:\Ficheros\Prueba.xml" For Output As #1
Print #1, campovinculado   (este campo contiene por ejemplo "Piso Nº6")
Close #1

Y en el fichero me aparece
PisoxBA6

Si abro el fichero con el Notepad ++ el fichero está en codificación UTF-8 sin Bom, si lo codifico en ANSI me lo pone bien. 
Pero como la creación de los ficheros lo hacen los usuarios, no les puedo pedir que transforme todos y cada unos de los ficheros.

A alguien se le ocurre como puedo solucionarlo?

Muchas gracias


Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3078
Enlace directo a este mensaje Enviado: 20/Abril/2016 a las 13:39
tengo algo de experiencia cargando y recorriendo nodos xml desde vb y vba,pero poca en su creacion. creo que puedes investigar sobre cabeceras y en el proceso de crear el archivo (guardar como).
https://tucondominioaldia.net
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3078
Enlace directo a este mensaje Enviado: 20/Abril/2016 a las 13:53
adodb.stream te permite indicar conjunto de caracteres p.e. .Charset = "utf-8"
?estas seguro que crea por defecto en utf-8?
https://tucondominioaldia.net
Arriba
Dexter Ver desplegable
Habitual
Habitual


Unido: 02/Noviembre/2012
Localización: España
Estado: Sin conexión
Puntos: 77
Enlace directo a este mensaje Enviado: 20/Abril/2016 a las 14:37
La verdad es que no estoy seguro de que sea UTF-8, pero creo que sí porque al abrirlo con el notepad ++ en codificación me pone UTF-8 sin bom

No he usado nunca el adodb.stream pero voy a documentarme un poco y a hacer algunas pruebas y te cuento

Muchas gracias
Arriba
emiliove Ver desplegable
Moderador
Moderador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5038
Enlace directo a este mensaje Enviado: 20/Abril/2016 a las 15:44
Hola puedes crear el fichero XML de varias formas, pero con Print como lo haces siempre vas a obtener un ansi unicode, no respeta utf8, pues para el siempre son etiquetas.
Ccomo te dice guarracuco (Hola Carlos) es con ADO.Stream ahí si que respeta la codificación que le pongas, también lo puedes hacer con la librería msxml ya sea directo o con Dom o lo puedes hacer con transformaciones.

Yo en lo personal me inclino por msxml aunque no descarto Transformaciones, pero para gustos los colores.

UTF-8 es un formato de codificación de caracteres el cual incluye acentos y caracteres especiales, al convertir a otro formato te respeta los acentos y caracteres que pusiste.

Puedes mirar en http://accessusergroups.org/espana/ España los videos sobre el tema.

Saludos.

Editado por emiliove - 20/Abril/2016 a las 15:50
Arriba
Dexter Ver desplegable
Habitual
Habitual


Unido: 02/Noviembre/2012
Localización: España
Estado: Sin conexión
Puntos: 77
Enlace directo a este mensaje Enviado: 22/Abril/2016 a las 17:17
Ya está solucionado

Finalemente he optado por el ADO.Stream de la siguiente manera
    With str
        .Charset = "UTF-8"
        .Open
        .Writetext texto
        .SaveToFile "c:\a\Quijote.xml", adSaveCreateOverWrite
        .Close
    End With

Muchas gracias por la ayuda, hasta la proxima, que no tardaré Big smile
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable