** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Incrustar-vincular archivo XSD en XML al exportar
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoIncrustar-vincular archivo XSD en XML al exportar

 Responder Responder
Autor
Mensaje
Amex Ver desplegable
Nuevo
Nuevo


Unido: 06/Noviembre/2019
Localización: León
Estado: Sin conexión
Puntos: 16
Enlace directo a este mensaje Tema: Incrustar-vincular archivo XSD en XML al exportar
    Enviado: 14/Noviembre/2019 a las 08:38
Buenos días. Necesito ayuda sobre como incrustar o vincular un archivo XSD dentro del archivo XML al realizar la exportación de un objeto (en mi caso una consulta).

Esta tarea es sencilla si se realiza la exportación desde el entorno de access, es decir, en el objeto en cuestión dando botón derecho y exportar. De esta manera aparece un cuadro de diálogo donde en primer lugar se elije la información que se va a exportar (Datos (XML) y Esquema de los datos (XSD)), pulsando en "Más opciones" se abre otro cuadro, donde en la pestaña "Esquema" existe la opción "Incrustar esquema en documento de datos XML exportado". Al realizar esto, en vez de generarse dos archivos de exportación (el XML y el XSD), tan solo se genera un XML donde ya está contenida la información del XSD. 

En mi caso, la exportación del objeto la realizo mediante código VBA. Por tanto, me gustaría incrustar el archivo XSD en el XML desde el código. ¿Alguien sabe como hacerlo?

El código con el que realizo la exportación es el siguiente. 

Dim fd As Object
Dim varsel As Variant
    
    Set fd = Application.FileDialog(msoFileDialogSaveAs)
    
With fd
        .Title = "Exportar a archivo XML"
        .AllowMultiSelect = False
        .InitialFileName = "Prueba"
        
If .Show = True Then
        
            For Each varsel In .SelectedItems
                var1 = varsel & ".xml"
                var2 = varsel & ".xsd"
                
                Application.ExportXML acExportQuery, "Consulta1", var1, var2

            Next varsel

End If
End With


Un saludo y muchas gracias. 


Editado por Amex - 14/Noviembre/2019 a las 08:40
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4830
Enlace directo a este mensaje Enviado: 14/Noviembre/2019 a las 10:22
Buenas

Prueba con algo parecido a esto

Application.ExportXML ObjectType:=acExportQuery, DataSource:="MiConsulta", DataTarget:=Application.CurrentProject.Path & "MiFicheroXML", OtherFlags:=acEmbedSchema + acExportAllTableAndFieldProperties

Aviso No lo he probado con consultas ya que acExportAllTableAndFieldProperties esta "pensado" para tablas , pero quizás te funcione para tus consultas......

Si utilizas tablas entonces deberías cambiar:
acExportQuery  por  acExportTable

 

Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Enlace directo a este mensaje Enviado: 14/Noviembre/2019 a las 15:44
Otra forma, si siempre es el mismo archivo a exportar puedes usar el asistente y guardar pasos de la exportación la primera vez. Una vez guardado mediante VBA puedes repetir la exportación con algo tan sencillo como:

DoCmd.RunSavedImportExport (“NombreGuardado”)

Saludos.
Arriba
Maverick2019 Ver desplegable
Habitual
Habitual


Unido: 10/Junio/2019
Localización: Madrid
Estado: Sin conexión
Puntos: 145
Enlace directo a este mensaje Enviado: 15/Noviembre/2019 a las 12:31
Arriba
Amex Ver desplegable
Nuevo
Nuevo


Unido: 06/Noviembre/2019
Localización: León
Estado: Sin conexión
Puntos: 16
Enlace directo a este mensaje Enviado: 18/Noviembre/2019 a las 17:16
Buenas tardes. He probado con los métodos que habéis propuesto y funciona de manera correcta. 

Dejo por aquí el código por si a alguien le puede ayudar. 

Muchas gracias por la ayuda. Un saludo!!!
    
    Dim fd As Object
    Dim varsel As Variant
    
    Set fd = Application.FileDialog(msoFileDialogSaveAs)
    
    With fd
        .Title = "Exportar Incidencias a archivo XML"
        .AllowMultiSelect = False
        .InitialFileName = varfecha & vartitulo & vartitulodesde & vartitulohasta
        
        If .Show = True Then

            For Each varsel In .SelectedItems
                var1 = varsel & ".xml"
                
                DoCmd.OpenQuery "TIncidenciasExportadas"
                Application.ExportXML acExportQuery, "TIncidenciasExportadas", var1, , , , , acEmbedSchema + acExportAllTableAndFieldProperties
                
            Next varsel
        
        End If
    End With



Editado por Amex - 18/Noviembre/2019 a las 17:17
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable