|
|
|
| Подскажите, как программно узнать, какие есть макросы в базе (из вкладки "Макросы", не из модуля). | |
|
| |
|
|
|
| F1 AllMacros Collection - как и другие объекты БД
пример из хелпа:
Sub AllMacros()
Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentProject
' Search for open AccessObject objects in AllMacros collection.
For Each obj In dbs.AllMacros
If obj.IsLoaded = True Then
' Print name of obj.
Debug.Print obj.Name
End If
Next obj
End Sub
|
| |
|
| |
|
|
|
| Sub AllMacros()
Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentProject
For Each obj In dbs.AllMacros
Debug.Print obj.Name;
Next obj
End Sub
Опередил :)))) | |
|
| |
|
|
|
|
Public Function GetListMacrosName() As String
GetListMacrosName = CurrentProject.Connection.Execute("SELECT Name FROM MSysObjects WHERE Type=-32766;").GetString(, , , " ")
End Function
|
| |
|
| |
|
|
|
|
Where type = "& [Please specify Object Type here] &"
|
| |
|
| |
|
|
|
|
Public Function GetListObjectName(lngType As AcObjectType) As String
...
|
| |
|
| |
|
|
|
| ты плохому учишь | |
|
| |
|
|
|
| Да, я недобрый. | |
|
| |
|
|
|
| Спасибо. И такой ещё вопрос. Каким методом здесь (в "AllMacros Collection") можно удалить объект (макрос)? | |
|
| |
|
|
|
| проверить что он не открыт и удалить... точно так как и другие объекты
вообще-то удалять объекты БД из VBA это довольно радикальное решение.
я бы понял еще если речь шла о таблицах БД и запросах, но макросы-то за что?
удали один раз руками и больше не создавай лишние | |
|
| |
|
|
|
| 1. Не совсем понял, как это заработает, ведь исполнять запросы на выборку нельзя? - Проверил :)
2. Зачем нужна фраза ".GetString(..." в контексте?
Не понимаю по причине : "I am chainik"
3. Как по аналогии с DAO
CurrentDb.CreateQueryDef ("ИмяНовогоЗапросаНаВыборку") создать оный в ADO?
*
Спасибо. | |
|
| |
|
|
|
| > это запрос к скрытой системной таблице в которой хранится информация об объектах БД
> тип объекта описывается константой - это некоторое числовое значение оно и указано в условии запроса WHERE.
> GetString это метод АДО возвращает строковое значение из Рекордсета (список макросов)- порядок использования можно уточнить в хелпе
> как ни крути ADO и DAO все таки разные объектные модели, поэтому совсем уж "по аналогии" не получится :) - примеры можно легко найти в и-нете:
http://www.blueclaw-db.com/access_createquerydef.htm | |
|
| |