powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Каскадное изменение данных в полях со списком"
14 сообщений из 39, страница 2 из 2
"Каскадное изменение данных в полях со списком"
    #32188192
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а насчет того что в режиме таблицы могут растащить - изменение размеров можно и код сделать который не будет давать растаскивать что неположено )).
если не ошибаюсь был пример на VBVET
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188193
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 АлексейК:

Мир-дружба. А я опоздал.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188197
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч
мир-дружба
выскочки не дают догнаться до юбилея? )))
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188205
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл с зип архивом повреждён, интересует файл с db1.
А решение уже подсказали...
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188206
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Во-первых, выскочкой оказался я. Во-вторых, не хочется въехать в юбилей на трепе.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188223
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
санычу
иногда хочется красиво код оформить, скриншотов накидать а пока сделаешь - смотришь уже и топик закрыт ))
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188401
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, похоже придется делать именно так. И следить за изменение размеров/положения столбцов в таблице. Жалко. :( В основной форме таких полей штуки три, а она и так довольно перегружена. Придется ковырять на предмет быстродействия.
Ну ничего, на то они и выходные, чтоб работать ))
Еще раз спасибо всем.
2АлексейК
А вопрос о пиве остается в силе :)
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188402
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 GEO
дык какие проблемы? - я в Москве если что ))
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188405
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свисни на мыл, куда везти. Завтра или в след. субботу будет ))
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32189702
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел. М.б. кому-нибудь пригодится:
Гетц писал:
При использовании логически связанных полей со списками в области данных ленточной формы
(и таблицы - прим. меня) могут возникнуть проблемы. Свободные поля выводят одно и то же
значение во всех записях, а присоединенные поля загадочным образом очищаются при потере фокуса.
Это происходит в том случае, если в зависимом поле со списком отображается столбец, который не
является присоединенным. <...> Access не может вывести данные, не принадлежащие текущему
источнику записей, если они не хранятся в присоединенном столбце.



Не знал, не знал... Поэтому в свое время от '97 добился-таки устойчивой работы (таблицы связаны с другим
.mdb, присоединенный (первый) столбец не отображается - ширина = 0):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Field1_Enter()
  Me.Field1.RowSource =  "QueryEnter" 
End Sub

Private Sub Field1_Exit(Cancel As Integer)
  Me.Field1.RowSource =  "QueryExit" 
End Sub

, где QueryEnter:
Код: plaintext
1.
2.
3.
4.
SELECT tDrivers.idDriver, tDrivers.NameDriver
FROM tDrivers 
WHERE ((tDrivers.idCar=Forms![tOrders]![tlOrders].[Form].[NumCar])
OR Forms![tOrders]![tlOrders].[Form].[NumCar] Is Null) ORDER BY tDrivers.NameDriver;

, QueryExit (он же сохранен в источнике данных поля Field1):
Код: plaintext
1.
SELECT tDrivers.idDriver, tDrivers.NameDriver FROM tDrivers;


Чувствую, что и в 2000/ХР можно провернуть что-нибудь подобное, но не знаю как.
Кстати, неадекватно ведущую себя таблицу выпускать на суд пользователей не стал - зело неудобно.

Поэтому, как говорил один мой товарищ, "за неимением горнишной, иметь будем дворника" :) - т.е. пойдем другим путем.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32565273
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имел дворника (В случае ленточной формы, с возможностью переключения в таблицу). Акс 97.
Обнаружились еще особенности:

В cmb_Exit добавил (вернее в вызываемую ReSetcmbSQL1)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Function ReSetcmbSQL1() As Boolean
On Error Resume Next
Dim sSQl As String
    sSQl = "...." 'че надо
    Me.cmb.RowSource = sSQl
' -- устраням баг со сдвигом позиций
 
Dim me_Dirty As Boolean

    If Me.cmb & "" <> "" Then
        me_Dirty = Me.Dirty
        Me.cmb = Me.cmb 'Баг с абсолют позишн при смене источника
        Me.Dirty = me_Dirty 'восстанавливаем "сохраненность"
        'Me.cmb.Requery - тут нельзя - перерисовка в других записях
    End If
' -- конец бага
 
    ReSetcmbSQL1= err= 0 
End Function

еще одна проблема нашлась при активации формы, если фокус в контроле
(перерисовка отсутствующих значений)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Sub Form_Activate()
Dim ctl As Control, ctla As Control
On Error Resume Next
    Set ctl = Me.Controls("cmb")
    Set ctla = Me.ActiveControl
    If ctla.Name <> ctl.Name Then 'If ctlA Is ctl Then
    Else
        ReSetcmbSQL0 'перерисовка остальных записей
        ReSetcmbSQL1 'возврат списка в нужное
    End If
    Set ctl = Nothing: Set ctla = Nothing
End Sub
где в ReSetcmbSQL0 (установка полного списка):
Код: plaintext
1.
2.
3.
4.
...
    Me.cmb.RowSource = scmbSQL0
    Me.cmb.Requery
    DoEvents 'откладываем OnEnter до перерисовки - важно для Activate
End Function
Ну и проблемсы с перерисовкой закрываемых выпадающем списком полей в табличном режиме после закрытия выпадающего списка. В 2000 схожие траблы, но чуть иная перерисовка при активации.

Так что поковырявшись, решил с дворником не иметь... (в моем частном случае). (т.е. вернулся к подмене контролов (в ленте) по входу. Что тоже не фонтан.)
Но как возможность наваять междумордие в неком стиле...
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32744204
mift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно как обходить проблему в ленточной форме.

А что делать в случае с табличной? Вообще есть приемлемое решение?
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32747641
mift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo
Приемлемого решения для табличных форм нету?
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32747646
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что выше написано, относиться и к ленточным, и к табличным формам.
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Каскадное изменение данных в полях со списком"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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