Esportare file in xml

Anonimo
2014-12-08T00:45:01+00:00

Ciao,

la seguente routine di qualche tempo fa per esportare un file in xlm (di Giorgio Rancati) adattata al mio scopo, inserita in un database formato Access 2007 non è più valida.

Public Sub EsportXml()

Dim Cn As New ADODB.Connection

Dim Rs As New ADODB.Recordset

Dim strCn As String

Dim strSqlShape As String

strCn = "Provider=MSDataShape" & _

";Data Provider=Microsoft.Jet.OleDb.4.0" & _

";data source=" & CurrentProject.FullName

Cn.Open strCn

strSqlShape = "SHAPE {SELECT * From Tbl1} AS Testata " & _

"APPEND ({SELECT * From Tbl2} AS Dettaglio " & _

"RELATE Id TO Id_Fatture)"

Rs.Open strSqlShape, Cn

Rs.Save "C:\Users\Vladimiro\Desktop\File_XML.xml", adPersistXML

Rs.Close

Cn.Close

Set Rs = Nothing

Set Cn = Nothing

End Sub

Pur modificando i parametri come da esempio nella guida dello stesso database tipo:

Dim Cn As New ADODB.Connection con Dim Cn As Connection oppure Dim Cn As Object

Dim Rs As New ADODB.Recordset con Dim Rs As Recordset oppure Dim Rs As Object

non risolve il problema.

Neanche adPersistXML viene riconosciuto.

Vladimiro

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-12-08T23:42:11+00:00

Scusa Giorgio, forse non ho capito, ma io da Excel i file .accdb con ADO li leggo tranquillamente così (in grassetto la parte da modificare per lavorare i fle .accdb):

                cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " _

 

Ciao Mauro,

sì, dimenticavo che poi hanno fatto il provider anche per ado, l'avevo anche suggerito in questo 3d da access ad excel, il tempo passa e quando non usi più una tecnologia si finisce per dimenticarla

:-)

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-12-08T22:52:46+00:00

ovviamente sì, come ti avevo detto ADO non può aprire i databases accdb qualsiasi sia il metodo con cui lo invochi.

Scusa Giorgio, forse non ho capito, ma io da Excel i file .accdb con ADO li leggo tranquillamente così (in grassetto la parte da modificare per lavorare i fle .accdb):

Public Sub mRecuperaDati()

On Error GoTo RigaErrore

    Dim cn As Object

    Dim rs As Object

    Dim sh As Worksheet

    With Application

        .ScreenUpdating = False

        .Calculation = xlManual

        .StatusBar = _

            "Sto eseguendo: Sub mRecuperaDati()"

    End With

    Set cn = CreateObject("ADODB.Connection")

    Set rs = CreateObject("ADODB.Recordset")

    Set sh = Worksheets("Foglio1")

    With sh

        cn.CursorLocation = 1

        cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " _

            & "Data Source=" & ThisWorkbook.Path & _

            "\mioDB.accdb;"

        rs.CursorLocation = 1

        rs.Open "SELECT * FROM Tabella1", cn, 1, 3, 1

        .Range("A2").CopyFromRecordset rs

    End With

RigaChiusura:

    If rs.State = 1 Then

        rs.Close

    End If

    If cn.State = 1 Then

        cn.Close

    End If

    Set sh = Nothing

    Set rs = Nothing

    Set cn = Nothing

    With Application

        .ScreenUpdating = True

        .Calculation = xlAutomatic

        .StatusBar = ""

    End With

    Exit Sub

RigaErrore:

    MsgBox Err.Number & vbNewLine & Err.Description

    Resume RigaChiusura

End Sub

La risposta è stata utile?

0 commenti Nessun commento

29 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-12-08T11:22:14+00:00

    Ciao Vladimiro,

    la libreria che hai inserito nei riferimenti non è quella che ti ho indicato.

    Rimuovila e Inserisci quella corretta "Microsoft Activex  Dataobjects 2.8 Library"

    Ciao

    Giorgio Rancati

    Ciao Giorgio,

    scusami dell'errore:

    adesso però l'errore è:

    Errore di run-time '-2147467259(80004005)':

    Formato di database 'C:\Users\Vladimiro\Documents\Esportare il xml.accdb' non riconosciuto

    e mi evidenzia 

    Cn.Open strCn

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-12-08T11:01:29+00:00

    Ciao Vladimiro,

    la libreria che hai inserito nei riferimenti non è quella che ti ho indicato.

    Rimuovila e Inserisci quella corretta "Microsoft Activex  Dataobjects 2.8 Library"

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-12-08T10:52:30+00:00

    Ciao Vladimiro,

    a me non esce l'errore, a te che riga viene evidenziata quando si genera l'errore ?

    Ciao

    Giorgio Rancati

    Ciao Giorgio,

    Cn As New ADODB.Connection

    Questa è la prima riga evidenziata.

    Comunque, per chiarire meglio (anche perché ho avuto lo stesso problema con l'automazione in Word e Excel poi risolto attraverso il late binding senza dove aggiungere preventivamente altri riferimenti) nel mio stesso computer coesistono database in Access dove la stessa routine presente in db realizzati con altri sistemi operativi funziona, mentre se ad esempio la stessa routine la importo in un db nuovo ecco che i riferimenti scompaiono e mi dà l'errore.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento