Вероятно, это не имеет ничего общего с MDB против ADP.Когда я пытаюсь выполнить следующее в mdb, я получаю то же сообщение об ошибке:
MsgBox Application.CurrentData.AllStoredProcedures.Count
Я подозреваю, что это происходит потому, что MS Access не знает, какая базовая структура базы данных SQL есть.И действительно, почему это должно волновать, и почему БД сообщает вашему приложению, как оно выглядит под покровом?Хранимые процедуры работают полностью на стороне БД и ничего не знают о приложении MS Access, а представления - это просто представление (или представление) данных.Насколько я знаю, вы не можете манипулировать ни изнутри MS Access.
Я думаю, что вы пытаетесь сделать, это автоматизировать экспорт сценариев sql, необходимых для воссоздания вашей базы данных, и сохранить их в некоторыхсвоего рода система контроля версий.Люди на Serverfault могут иметь удобное решение для этого.
Что касается SaveAsText, к сожалению, это недокументированный метод.Я использовал следующее для экспорта запросов
''...
Dim db As Database
Set db = CurrentDb()
Dim Qry As QueryDef
For Each Qry In db.QueryDefs
strObjectName = Qry.Name
If Not (strObjectName Like "~sq_*") Then
Debug.Print " - " & strObjectName
Application.SaveAsText acQuery, strObjectName, _
MY_PATH & "queries_" & strObjectName & ".txt"
End If
Next
''...
TableDef немного отличались (не удалось заставить SaveAsText / LoadAsText работать должным образом)
For Each Tbl In db.TableDefs
If Tbl.Attributes = 0 Then 'Ignores System Tables
strObjectName = Tbl.Name
Debug.Print " - " & strObjectName
Application.ExportXML acExportTable, strObjectName, , _
MY_PATH & "tables_" & strObjectName & ".xsd"
End If
Next