powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
24 сообщений из 24, страница 1 из 1
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32396257
Qatro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Временная таблица. Столбцы в ней добавляются программой. В разных "сеансах" число столбцов может быть разным. На базе таблице - форма, для ее редактирования.
Можно ли сделать так, чтобы независимо от числа и названий столбцов таблицы, поля формы каждый раз "синхронизировались" с полями источника?
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32396301
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да можно в принципе то.
Динамически создавать на форме нужные контролы и вязать их с полями таблицы. Или заранее налепить много контролов и их подвязывать при открытии такой формы .Но мое мнение , это надо делать в исключительных ситуациях. Я по крайней мере не сталкивался с таким на практике.

Мне кажется ты зря это затеваешь, больше сложности , больше глюков.

Может если ты объяснишь зачем тебе удалять/ добавлять поля в таблице что то можно посоветовать.
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32396367
Qatro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то тут рядом есть моя же ветка "Таблица в виде перекрестного запроса".
Там я написал, что число Филиалов(= столбцов перекр.табл) постоянно. Написал и накаркал: по этому же алгоритму попросили организовать работу с таблицей "Партнеры", а они имеют еще типы (пример: "внутренний/зарубежный") и главное, что, в отличии от филиалов, новые записи в табл Партнеры могут появляться гораздо чаще.
Вот чтобы не создавать 2 перекр.таблицы(по типу Партнера) и привязанные к ним 2 формы с заранее прописанными полями, я и озаботился: перекрест.таблицу(каждый раз с нужными столбцами) создать нетрудно, а можно ли и форму так "лепить"?
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32396370
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Qatro имеет в виду следующий топик:\r
\r
/topic/70645
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32396400
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я конечно может и не владею ситуацией, но мне это показалось что то типа "лечение зубов через прямую кишку".

Странно , может изменить подход к этой проблеме.

Ну а тебе пригодяться знания DDL / DAO.
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32396480
Qatro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тебе пригодяться знания DDL / DAO
даже и спорить не буду - знания лишними не бывают...:)...
мало того: большинству посетителей форума(и мне в т.ч.) пригодится глубокое изучение VBA...(жаль только, что сам этот совет никому не поможет...)
--------------------------------------------------------------------------
А нельзя не привязывать поля формы "поштучно", а создать целиком форму на основе таблицы(как мастер создания делает)?
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32396507
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мысль интересная.
Можно создать свой класс , который создавал бы формы на основе таблиц.
Но здесь же как ты верно заметил нужны хорошее знание VBA с классами.

Вот если бы можно было использовать мастер создания форм для своих нужд из VBA , это было бы неплохо.
Но тут я незнаю , может и можно его использовать из VBA.
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32396966
Qatro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в развитии темы:
если св-во Данные у поля формы установлено: <источник>Поле5, а именно Поля5 в данном наборе в источнике нет, то в поле формы указывается: "#Имя?".
Можно эту ситуацию как-то отследить в программе?
Чтоб такому полю делать Visible = False.
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32396978
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я бы использовал в данном случае ListView вместо подчиненной формы и формировал бы его "на лету" в зависимости от источника записей...
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32397005
Qatro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточню вопрос: не Visible=False, а скрыть конкретный столбец, ну или ширину столбцу задать = 0
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32397022
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаем форму, на ней размещаем контрол подчинённая форма, закрываем мастер (если запустился), в источнике данных прописываем имя запроса или таблицы. Получаем переменное количество столбцов с возможностью редактирования (если источник позволяет) и одну главную форму с подчинённым контролом..
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32397531
Qatro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в программе сослаться на конкретный столбец табличной формы?
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32397670
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторКак в программе сослаться на конкретный столбец табличной формы?
По имени контрола.
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32401657
Кватро
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, сотворил. На форме одно "постоянное" поле [Month] и "немерянное" (>чем самое большое колич. столбцов) число свободных полей. Сначала все контролы "Поле", кроме "постоянного" запихиваются в массив и прячутся(ColumnHidden = -1). Затем, по очереди, "показываются", привязываются к полю таблицы и "именуются".
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub Form_Load()
Dim rst As Recordset, i As Integer, AA() As Control, ctl As Control
Set rst = CurrentDb.OpenRecordset( "Temp_Table" )
i =  1 

For Each ctl In Me.Controls
If ctr.ControlType = acTextBox Then 
If ctr.Name <>  "Month"  Then Me.Controls(ctr.Name).ColumnHidden = - 1 
ReDim Preserve AA(i)
Set AA(i) = Me.Controls(ctr.Name)
i = i +  1 
End If
Next

For i =  1  To rst.Fields.Count -  1 
AA(i).ColumnHidden =  0 
AA(i).ControlSource = rst.Fields(i).Name
AA(i).Controls( 0 ).Caption = rst.Fields(i).Name
Next i
End Sub



Чего не получается: приведенная процедура на событие "загрузка формы" работает когда форма открывается как главная, а таблица-источник уже заполнена. Не соображу как лучше сделать, если форма подчиненная, а таблица заполняется "кнопкой" из главной формы. На событие "Загрузка" процедуру уже не повесишь.
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32401689
Кватро
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идем дальше:
Как (если возможно) добавить в таблицу формата: [Месяц], [Филиал], [Сумма] новый "блок" записей - т.е, для 2-филиалов, 24 строки? В первом столбце числа с 1 по 12 и опять с 1 по 12, во втором - 12 строк заполнены "Фил1", 12 - "Фил2", в третьем - одни нули.
Вопрос о добавлении запросом, как заполнять построчно кодом я более-менее представляю.
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32401705
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QatroНе соображу как лучше сделать, если форма подчиненная, а таблица заполняется "кнопкой" из главной формы
Сделай у всех столбцов по умолчанию ColumnHidden = True
А по нажатию кнопки запускай эту процедуру + Repaint

QatroИдем дальше
Если есть таблица с ключевым полем, в которой первые 12 записей без пропусков (назовем ее MyTable), то вполне можно
Во-первых, для поля Сумма надо задать 0 по умолчанию, и больше о нем не заботиться.
Для остального - примерно такой запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
INSERT INTO MyTempTable ([Месяц], [Филиал])
SELECT ID,  "Фил1"  AS [Фил]
FROM MyTable
WHERE ID<= 12 
UNION 
SELECT ID,  "Фил2"  AS [Фил]
FROM MyTable
WHERE ID<= 12 
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32401714
Кватро
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточнение:
Добавить новый "блок" записей на следующий год абсолютно аналогичный текущему, но с нулевым значением [Сумма] - это я могу.
Сложность в том, что может измениться число филиалов, соответственно и должны появиться новые(исчезнуть ненужные) 12 строк(по месяцам) для каждого.
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32401727
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то непохоже на уточнение...
Сначала одна задача, теперь как будто несколько другая...
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32401734
Кватро
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да не другая....
Вроде я всех запутал с форматами таблиц...
1.Исходная таблица: [Месяц],[Филиал],[Сумма].
Для удобной работы с ее данными создается временная
2.tempТаблица в виде перекрестного запроса .
На ее основе - форма, в форме данные редактируются, результат переносится в Исходную таблицу .
Вопрос в том как добавить в Исходную таблицу (а не во временную)блок записей на новый год, если в новом году список филиалов изменится.
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32401786
Кватро
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, вроде, все сделал.
Не получилось полностью применить код AlexJuice: программа ругалась на ошибку в выражении запроса и выделяла первое упоминание "Union". Хотя сам запрос на объединение работал прекрасно. Пришлось пойти в обход: в коде собирается строка SQL (начиная с Select...), потом все это присваивается св-ву .SQL сохраненного запроса, а на его основе создан сам запрос(сохраненный) на добавление записей.
Осталось "пригладить", подписать кнопки и можно спихнуть работу...
Всем спасибо!

А все-таки: чего ж не получилось полностью в коде воплотить запрос на добавление? Чем ему "Union" не понравился?
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32401787
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чой-то я не понял - где ругалась-то?
Если сам запрос работал, а строка собиралась...
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32401790
Кватро
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Значит собираю в коде строку:
Код: plaintext
strSQL =  " Select... Union Select ...Union Select ...;" 
. (Если это выражение скопировать и вставить в конструктор запроса - получится сохраненный работающий запрос на объединение.)
Далее продолжаю в коде:
Код: plaintext
CurrentDb.Exeсute  "INSERT INTO MyTable ([Месяц], [Филиал])"  & strSQL 
Вот тут и начинается ругань. Опять копирую все выражение и запихиваю его в конструктор запроса, запускаю из конструктора (из SQL - окна), ругается на ошибку в выражении и выделяет первое слово "Union". Помудрил со скобками, пробелами, ничего не добился, плюнул...
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32402537
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык енто понятно
Аксесс таких фортелей не понимает. Ему подавай нормальный запрос в инсерте. То есть создаешь запрос на SELECT UNION, а уже его (этот запрос) используешь в запросе на INSERT
...
Рейтинг: 0 / 0
Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
    #32403056
Qatro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну значит я правильно все делал...
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как поля формы синхронизировать с полями таблицы, если число последних - непостоянно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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