powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / связать таблицы-кнопкой?
2 сообщений из 2, страница 1 из 1
связать таблицы-кнопкой?
    #32351940
Ключник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как создать связь таблиц 1 ко многим с целостностью и каскадным обновлением - по нажатию кнопки в форме.
...
Рейтинг: 0 / 0
связать таблицы-кнопкой?
    #32352641
Ключник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста разобраться! Кучу времени потратил в F1, может зря?!
Если это можно сделать, подскажите куда и что записать.
УТОЧНЯЮ ПРОБЛЕМУ! Создать таблицы и связь конечно получилось, но не так как хотелось бы. Внизу - как я это делал. Может я не понимаю и в МА97 невозможно с помощью VBA:
1) задать счётчик (хотелось бы, чтобы поле CountNain в табл.MainData и поле CountSub в табл. SubData было Автоинкрементным=счётчик)
2) сделать чтобы поле CountSub в табл. SubData использовало подстановку значений из поля CountNain табл. MainData (хотелось бы, чтобы результат был таким же как после использования мастера в режиме конструктора таблиц)
3) установить параметры объединения таблиц как в "Схеме данных" при установке связи кнопкой "Объединение..." (Объединение ВСЕХ записей из 'SubData' и только тех записей из 'MainData' , в которых связанные поля совпадают)
-----------------------это работает но не так--------
Private Sub Кнопка1_Click()

Dim БД As Database
Dim ТАБ As TableDef
Dim ПОЛЕ As Field
Dim ИмяИндекса As Field
Dim Индекс As Index
Dim СВЯЗЬ As Relation
'Создание главной таблицы
Set БД = CurrentDb
Set ТАБ = БД.CreateTableDef("MainData")
With ТАБ
.Fields.Append .CreateField("CountMain", dbLong)
.Fields.Append .CreateField("Data", dbText, 50)
End With
БД.TableDefs.Append ТАБ
БД.TableDefs.Refresh
ТАБ.Fields.Refresh
'Поле - обязательное, не пустое
Set ПОЛЕ = ТАБ.Fields("CountMain")
ПОЛЕ.Required = True
ПОЛЕ.AllowZeroLength = False
'Индекс для главной
Set Индекс = ТАБ.CreateIndex("PrimaryKey")
Set ИмяИндекса = Индекс.CreateField("CountMain")
Индекс.Fields.Append ИмяИндекса
Индекс.Primary = True
ТАБ.Indexes.Append Индекс

'Создание подчинённой таблицы
Set БД = CurrentDb
Set ТАБ = БД.CreateTableDef("SubData")
With ТАБ
.Fields.Append .CreateField("CountSub", dbLong)
.Fields.Append .CreateField("CountMain", dbLong)
.Fields.Append .CreateField("DataS", dbText, 36)
End With
БД.TableDefs.Append ТАБ
БД.TableDefs.Refresh
ТАБ.Fields.Refresh
'Запрет пустых
Set ПОЛЕ = ТАБ.Fields("CountSub")
ПОЛЕ.Required = True
ПОЛЕ.AllowZeroLength = False
'Индекс для главой
Set Индекс = ТАБ.CreateIndex("PrimaryKey")
Set ИмяИндекса = Индекс.CreateField("CountSub")
Индекс.Fields.Append ИмяИндекса
Индекс.Primary = True
ТАБ.Indexes.Append Индекс

'Установка связи
Set СВЯЗЬ = БД.CreateRelation("DataM_DataS", "MainData", "SubData")
СВЯЗЬ.Attributes = dbRelationUpdateCascade
Set ПОЛЕ = СВЯЗЬ.CreateField("CountMain")
ПОЛЕ.ForeignName = "CountMain"
СВЯЗЬ.Fields.Append ПОЛЕ
БД.Relations.Append СВЯЗЬ
БД.Relations.Refresh

Set БД = Nothing

End Sub
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / связать таблицы-кнопкой?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]