Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как получить список макросов базы данных? (Ac2003)
 
 автор: Денис82   (06.10.2010 в 15:31)   личное сообщение
 
 

Подскажите, как программно узнать, какие есть макросы в базе (из вкладки "Макросы", не из модуля).

  Ответить  
 
 автор: Explorer   (06.10.2010 в 15:37)   личное сообщение
 
 

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

  Ответить  
 
 автор: DeBob   (06.10.2010 в 15:42)   личное сообщение
 
 

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


Опередил :))))

  Ответить  
 
 автор: Lukas   (06.10.2010 в 15:54)   личное сообщение
 
 


Public Function GetListMacrosName() As String
    GetListMacrosName = CurrentProject.Connection.Execute("SELECT Name FROM MSysObjects WHERE Type=-32766;").GetString(, , , " ")
End Function

  Ответить  
 
 автор: Explorer   (06.10.2010 в 15:57)   личное сообщение
 
 


Where type = "& [Please specify Object Type here] &"   

  Ответить  
 
 автор: Lukas   (06.10.2010 в 16:06)   личное сообщение
 
 


Public Function GetListObjectName(lngType As AcObjectType) As String
...

  Ответить  
 
 автор: Explorer   (06.10.2010 в 16:32)   личное сообщение
 
 

ты плохому учишь

  Ответить  
 
 автор: Lukas   (06.10.2010 в 16:35)   личное сообщение
 
 

Да, я недобрый.

  Ответить  
 
 автор: Денис82   (06.10.2010 в 18:00)   личное сообщение
 
 

Спасибо. И такой ещё вопрос. Каким методом здесь (в "AllMacros Collection") можно удалить объект (макрос)?

  Ответить  
 
 автор: Explorer   (07.10.2010 в 09:25)   личное сообщение
 
 

проверить что он не открыт и удалить... точно так как и другие объекты

вообще-то удалять объекты БД из VBA это довольно радикальное решение.
я бы понял еще если речь шла о таблицах БД и запросах, но макросы-то за что?

удали один раз руками и больше не создавай лишние

  Ответить  
 
 автор: vorChoon   (18.10.2010 в 12:20)   личное сообщение
 
 

1. Не совсем понял, как это заработает, ведь исполнять запросы на выборку нельзя? - Проверил :)
2. Зачем нужна фраза ".GetString(..." в контексте?
Не понимаю по причине : "I am chainik"
3. Как по аналогии с DAO
CurrentDb.CreateQueryDef ("ИмяНовогоЗапросаНаВыборку") создать оный в ADO?
*
Спасибо.

  Ответить  
 
 автор: Explorer   (18.10.2010 в 13:01)   личное сообщение
 
 

> это запрос к скрытой системной таблице в которой хранится информация об объектах БД
> тип объекта описывается константой - это некоторое числовое значение оно и указано в условии запроса WHERE.
> GetString это метод АДО возвращает строковое значение из Рекордсета (список макросов)- порядок использования можно уточнить в хелпе
> как ни крути ADO и DAO все таки разные объектные модели, поэтому совсем уж "по аналогии" не получится :) - примеры можно легко найти в и-нете:
http://www.blueclaw-db.com/access_createquerydef.htm

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList