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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Как выбрать поля подстановок из таблиц
 
 автор: ludmil   (21.08.2012 в 12:43)   личное сообщение
 
 

Для документирования нужно автоматически выбрать во всех таблицах базы mdb поля имеющие подстановку. Можно ли выбрать только эти поля и перекинуть в excel c учетом имени таблицы имени поля и значения поля подстановки.В архивариусе громоздко. В schemamdb этого свойства поля нет а жаль...

  Ответить  
 
 автор: Анатолий (Киев)   (21.08.2012 в 13:25)   личное сообщение
 
 

Цикл по таблицам в TableDefs - цикл по полям каждой таблицы - для полей с типом "Числовой" и "Текстовый" проверка значения свойства DisplayControl. Если значение acComboBox (111) - поле с подстановкой.

  Ответить  
 
 автор: ludmil   (21.08.2012 в 13:48)   личное сообщение
 
 

спасибо! Попробую. Нет ли примера на Vba

  Ответить  
 
 автор: Анатолий (Киев)   (21.08.2012 в 15:22)   личное сообщение
 
 


Sub TestDisplayControl()
Dim db As DAO.Database, tdf As DAO.TableDef, fld As DAO.Field, prp As DAO.Property
    
    Set db = CurrentDb
 For Each tdf In db.TableDefs
  If Left(tdf.Name, 1) = "~" Then GoTo NextTable
  For Each fld In tdf.Fields
   For Each prp In fld.Properties
    If prp.Name = "DisplayControl" Then
     If prp.Value = acComboBox Then
        Debug.Print tdf.Name; Tab; fld.Name
     End If
    End If
   Next prp
  Next fld
NextTable:
 Next tdf
End Sub

  Ответить  
 
 автор: ludmil   (21.08.2012 в 15:40)   личное сообщение
 
 

я написала так
Dim t As DAO.TableDef
Dim f As DAO.Field
On Error Resume Next ' для пропуска ошибок по тем полям где нет f.Properties("Display Control")
For Each t In CurrentDb.TableDefs
If (t.Attributes And dbSystemObject) = False Then
For Each f In t.Fields
If f.Properties("DisplayControl") = 111 Then

If f.Properties("Rowsource") <> "" Then
MsgBox (t.Name & " " & f.Name & " " & "" & f.Properties("Rowsource"))
End If
End If
Next f
End If
Next t
работает , но хочу сформировать в EXCEL все, что вывожу в msgbox. Давно не делала и забыла как проще- информация поместится на одном листе.

  Ответить  
 
 автор: Анатолий (Киев)   (21.08.2012 в 16:50)   личное сообщение
 
 


хочу сформировать в EXCEL все, что вывожу в msgbox. Давно не делала и забыла как проще


Проще - записать всё это в текстовый файл. Потом этот файл можно открыть в EXCEL и сохранить в нужном формате.
Можно, конечно, и с помощью автоматизации создать файл EXCEL и накидать инфу на лист

  Ответить  
 
 автор: ludmil   (22.08.2012 в 07:13)   личное сообщение
 
 

Спасибо Анатолий!
Все получилось.

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