(Вы, вероятно, хотите читать на деталях также:
Сканирования таблицы Нескольких Больших Таблиц
Используя Индекс уникального индекса
включают все обязательные поля
приблизительно в 90% проблем производительности, которые я видел, самая легкая победа должна разбить запрос с партиями (4 или больше) из таблиц в 2 меньших запроса и временную таблицу.
Я использую Надстройку Access 2003: Контроль исходного кода . Работает нормально. Одна проблема - недопустимые символы, такие как ":".
Я проверяю и ухожу. Внутренне надстройка делает то же самое, что и код там, но с большей поддержкой инструментов. Я могу видеть, зарегистрирован ли объект, и обновлять объекты.
Оливерс отвечает круто, но ссылка CurrentProject
у меня не работает. В итоге я вырвал кишки из середины его экспорта и заменил его этим, основываясь на аналогичном решении Арвина Мейера . Имеет преимущество экспорта запросов, если вы используете mdb вместо adp.
' Writes database componenets to a series of text files
' @author Arvin Meyer
' @date June 02, 1999
Function DocDatabase(oApp)
Dim dbs
Dim cnt
Dim doc
Dim i
Dim prefix
Dim dctDelete
Dim docName
Const acQuery = 1
Set dctDelete = CreateObject("Scripting.Dictionary")
Set dbs = oApp.CurrentDb() ' use CurrentDb() to refresh Collections
Set cnt = dbs.Containers("Forms")
prefix = oApp.CurrentProject.Path & "\"
For Each doc In cnt.Documents
oApp.SaveAsText acForm, doc.Name, prefix & doc.Name & ".frm"
dctDelete.Add "frm_" & doc.Name, acForm
Next
Set cnt = dbs.Containers("Reports")
For Each doc In cnt.Documents
oApp.SaveAsText acReport, doc.Name, prefix & doc.Name & ".rpt"
dctDelete.Add "rpt_" & doc.Name, acReport
Next
Set cnt = dbs.Containers("Scripts")
For Each doc In cnt.Documents
oApp.SaveAsText acMacro, doc.Name, prefix & doc.Name & ".vbs"
dctDelete.Add "vbs_" & doc.Name, acMacro
Next
Set cnt = dbs.Containers("Modules")
For Each doc In cnt.Documents
oApp.SaveAsText acModule, doc.Name, prefix & doc.Name & ".bas"
dctDelete.Add "bas_" & doc.Name, acModule
Next
For i = 0 To dbs.QueryDefs.Count - 1
oApp.SaveAsText acQuery, dbs.QueryDefs(i).Name, prefix & dbs.QueryDefs(i).Name & ".txt"
dctDelete.Add "qry_" & dbs.QueryDefs(i).Name, acQuery
Next
WScript.Echo "deleting " & dctDelete.Count & " objects."
For Each docName In dctDelete
WScript.Echo " " & Mid(docName, 5)
oApp.DoCmd.DeleteObject dctDelete(docName), Mid(docName, 5)
Next
Set doc = Nothing
Set cnt = Nothing
Set dbs = Nothing
Set dctDelete = Nothing
End Function
Для тех, кто использует Access 2010, SaveAsText не является видимым методом в Intellisense, но, похоже, это допустимый метод, поскольку сценарий Арвина Мейера упомянутый ранее отлично сработал для меня.
Интересно, что SaveAsAXL является новинкой 2010 года и имеет ту же подпись, что и SaveAsText, хотя, похоже, он будет работать только с веб-базами данных, для которых требуется SharePoint Server 2010.
Некоторое время назад у нас была такая же проблема.
Нашей первой попыткой был сторонний инструмент, который предлагает прокси SourceSafe API для Subversion для использования с MS Access и VB 6. Инструмент можно найти здесь .
Поскольку этот инструмент нас не удовлетворил, мы перешли на Visual SourceSafe и подключаемый модуль VSS Acces.