Свойства файла *.MDB
Подскажите пожплуйста как считать свойства базы данных програмно в VB6. (Название файла, тема, автор и т.д.) Спасибо!
По идее через DAO объекта Database, его свойства. Правда там только версия и имя, но где там же должны и остальное интересное болтаться :) :
Dim dbsNorthwind As Database
' Create Microsoft Jet Workspace object.
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
' Open Database object from saved Microsoft Jet database
' for exclusive use.
MsgBox "Opening Northwind..."
Set dbsNorthwind = wrkJet.OpenDatabase("Northwind.mdb", _
True)
Тут недавно я размещал пример создания базы в VB6 через DAO:
http://forum.codenet.ru/showthread.php?s=&threadid=10905
Хотя конечно вопрос интересный, где они болтаются... :)
В Экселе до этих свойств можно добраться так:
Workbooks("test.xls").BuiltinDocumentProperties("Author") и т.п.
В Аксессе я попробовал так:
Dim w As Property
For Each w In CurrentDb.Properties
MsgBox w.Name & ":" & w.Type & ":" & w.Value
Next w
End Sub
и получил, например, имя базы. Автора и темы там не было. Ищем дальше...
В Экселе до этих свойств можно добраться так:
Workbooks("test.xls").BuiltinDocumentProperties("Author") и т.п.
В Аксессе я попробовал так:
Dim w As Property
For Each w In CurrentDb.Properties
MsgBox w.Name & ":" & w.Type & ":" & w.Value
Next w
End Sub
и получил, например, имя базы. Автора и темы там
не было. Ищем дальше...
Да, именно про эти свойства я и говорил (через Database). Но вообще-то, описание файла (если инменно это требуется) у Access почти такое же как и у Word, Excel. Если эта штука вызывается даже через Проводник (правой кнопкой), то вряд ли это через DAO с CurrentDb. Где-то система хранит дополнительную инфу о файлах с определ. расширением и метод которым она пользуется при извлечении этой инфы должен быть достаточно универсальным...
CurrentDb.Containers("Databases").Documents("SummaryInfo").Properties("Author").Value
Докопался:
CurrentDb.Containers("Databases").Documents("SummaryInfo").Properties("Author").Value
Токо что сам туда же дошел через объект DocumentProperty который входит в коллекцию DocumentProperties входящей в MSOffice Object и слова о том, что надо только объект, который поддерживает обращение(свойство) к DocumentProperty.. :P
Токо что сам туда же дошел через объект DocumentProperty который входит в коллекцию DocumentProperties входящей в MSOffice Object и слова о том, что надо только объект, который поддерживает обращение(свойство) к DocumentProperty.. :P
Так вот мне показалось, что в Аксессе ничего не поддерживает DocumentProperty... :{
Так вот мне показалось, что в Аксессе ничего не поддерживает DocumentProperty... :{
Спасибо ребята!
Сам разобрался. Ответ нашел в VB reference Help.
Я сделал так:
Dim dbs As DAO.DataBase
Dim cnt As DAO.Container
Dim doc As DAO.Document
Dim s As Integer
Set dbs = DAO.OpenDatabase("C:\base.mdb")
Set cnt = dbs.Containers("Databases")
Set doc = cnt.Documents("SummaryInfo")
MsgBox doc.Properties("Subject")
dbs.Close