Hi, Just an update on this. I thought I would try this in Access so added the following code to test this:
Set conn = New ADODB.Connection conn.Provider = "MSDataShape" conn.Open "Data Source=Test" Set rs = New ADODB.Recordset rs.Open shape, conn, adOpenStatic, adCmdText rs.Save "C:\Temp\ADO\cust.xml", adPersistXML rs.Close Set conn2 = New ADODB.Connection conn2.Open "Provider=MSPersist" Set rs2 = conn2.Execute("C:\Temp\ADO\cust.xml") Set TableSchema = conn2.OpenSchema(adSchemaColumns) This results in the same error code as Excel but gives a much more meaningful message "Run-time error 3251: Current provider does not support schema recordsets". So even though Microsoft go to the trouble of providing a persisted connection to access files persisted by them which include the schema, you are not able to gain access to the schema. Very frustrating, Dominic On Monday, May 18, 2015 at 5:04:02 PM UTC+10, Dominic Marshall wrote: > > > > Hi, > > I am trying to read a nested recordset persisted through Access into > Excel. This all work fine by accessing the recordset fields property except > when the nested elements are empty. This means that the loaded data can end > up in the wrong column cell when using the fields index and trying to load > the nested values across a sheet. > > I tried to use OpenSchema so I could access the table and column structure > so that I could access fields via column name rather than index which would > enable me to ensure that the data ended up in the correct column cell. > > Set conn = New ADODB.Connection > conn.Open "Provider=MSPersist;" > Set myRecordset = conn.Execute("C:\Temp\cust.xml") > Set TableSchema = conn.OpenSchema(adSchemaTables) > > When calling OpenSchema the following error is returned "Run-time error: > 3251: Application-defined or object-defined error" > > The Microsoft documentation indicates that the adSchemaTables and > adSchemaColumns should be available for all Providers. > > Is this not the case? > > Thanks, > > Dominic > -- Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s =TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ https://www.facebook.com/discussexcel FORUM RULES 1) Use concise, accurate thread titles. Poor thread titles, like Please Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get quick attention or may not be answered. 2) Don't post a question in the thread of another member. 3) Don't post questions regarding breaking or bypassing any security measure. 4) Acknowledge the responses you receive, good or bad. 5) Jobs posting is not allowed. 6) Sharing copyrighted material and their links is not allowed. NOTE : Don't ever post confidential data in a workbook. Forum owners and members are not responsible for any loss. --- You received this message because you are subscribed to the Google Groups "MS EXCEL AND VBA MACROS" group. To unsubscribe from this group and stop receiving emails from it, send an email to excel-macros+unsubscr...@googlegroups.com. To post to this group, send email to excel-macros@googlegroups.com. Visit this group at http://groups.google.com/group/excel-macros. For more options, visit https://groups.google.com/d/optout.