I am sure I got most of this from somewhere on this forum, don't remember where...sorry. You have to write, and then run, a script. The script will need a table, I am made one called viewTable, this table only needs one column named viewName. Here is the script: Sub Main order ="asc" set comps = document.componentset set viewset = comps("My Map Views").ViewSet set qry = comps("viewQuery") set tbl = comps("viewTable") set rs = tbl.RecordSet 'delete all records from table, if any if rs.Count > 0 then rs.RemoveAll() end if 'populate table with view names for each view in viewset rs.AddNew rs(rs.Count-1).Data("ViewName") = view.Name next 'run the query to order them qry.Text = "select * from [viewTable] order by [ViewName] " & order & ";" qry.Run() set qRS = qry.Table.RecordSet for i = 0 to qRS.Count-1 set view = viewset.Item(qRS(i).DataText("ViewName")) view.Name = view.Name & "temp" set view = viewset(qRS(i).DataText("ViewName") & "temp") set view2 = viewset(qRS(i).DataText("ViewName") & "temp") viewset.Add(view2) viewset.Remove(viewset.ItemByName(view.Name)) set view = viewset.Item(qRS(i).DataText("ViewName") & "temp 1") view.Name = qRS(i).DataText("ViewName") next
|