Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153

Закрепить объекты за определенным клиентом

01.09.2015, 12:04. Показов 1793. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При создании объекта, к нему закрепляется клиент. (Чтобы создать объект, необходимо в заказах нажать на кнопку "Открыть, добавить объект")

Нужно сделать следующее:

В форме - заказы после выбора клиента далее следует выбрать его объект.
Необходимо сделать чтобы в списке отображались не все существующие объекты, а только те, которые закреплены за конкретным клиентом.

Помогите пожалуйста решить эту задачу.
БД v2.9.rar
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.09.2015, 12:04
Ответы с готовыми решениями:

Отладка dll клиентом на Delphi, использующим СОМ-объекты
Здравствуйте, уважаемые форумчане. Тема, с которой обращаюсь к вам, на первый взгляд, не нова, но с её спецификой я не справился. ...

Как добавить определенным объектам отдельное свойство, если эти объекты из класса?
<div class="y">тра-та-та<div> <div class="y">тра-та-та<div> <div class="y">тра-та-та<div> <div class="y">тра-та-та<div> ...

Как можно сделать так чтобы отсылаемые письма сортировались по определенным папкам по определенным правилам?
Всем доброго времени суток. Подскажите пожалуйста как можно сделать так чтобы отсылаемые письма сортировались по определенным папкам...

22
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
01.09.2015, 12:18
На событии После обновления (AfterUpdate) поля39 (поле выбора клиента) надо изменить источник поля со списком [Название объекта]
Visual Basic
1
2
3
4
5
6
Private Sub Поле39_AfterUpdate()
    Dim s
    s = "SELECT [Объекты].[КодОбъектов], [Объекты].[Объект] FROM Объекты " _
    & " where [КодОбъектов]=" & Me.Поле39
    Me.[Название объекта].RowSource = s
End Sub
Вложения
Тип файла: rar БД v2.9.rar (64.5 Кб, 9 просмотров)
2
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
01.09.2015, 15:44  [ТС]
Не совсем понял, "надо изменить источник поля со списком [Название объекта]"
После со списком не активно, т.е не могу изменить его на это.

Добавлено через 6 минут
Вроде сообразил о чем вы. Вы сделали почти как надо, только надо не в поисковике такую опцию добавить а прямо в поле "Клиент" Выбрали кого надо (клиента) > далее выбираем уже конкретно его объекты в след поле (объекты)

А поле 39 это поисковик, он для других нужд создан.

Добавлено через 3 часа 3 минуты
Цитата Сообщение от mobile Посмотреть сообщение
На событии После обновления (AfterUpdate) поля39 (поле выбора клиента) надо изменить источник поля со списком [Название объекта]
Visual Basic
1
2
3
4
5
6
Private Sub Поле39_AfterUpdate()
    Dim s
    s = "SELECT [Объекты].[КодОбъектов], [Объекты].[Объект] FROM Объекты " _
    & " where [КодОбъектов]=" & Me.Поле39
    Me.[Название объекта].RowSource = s
End Sub
Ув. mobile, расскажите как реализовать такое, только используя поле "Клиент" в качестве основы, а не поисковик "Поле39". Стараюсь с кодом дружить, но еще многое впереди.
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
01.09.2015, 16:50
Цитата Сообщение от Sazabi Посмотреть сообщение
как реализовать такое, только используя поле "Клиент" в качестве основы
С табличной формой проходит фокус с событиями Вход (Enter), Выход (Exit), Текущая запись (Current). На Current и Exit задаем зависимому списку полный набор данных. А вот на Enter фильтруем источник зависимого списка по ведущему. В представленном варианте сделана форма ЗакакзыТабл, где этот фокус показан для 2 полей со списком: Клиент и Название объекта. Остальные я думаю, вы сумеете сделать также по образцу. Увы, в ленточной такое не проходит.

Смотрите код в модуле формы ЗаказыТабл.
Вложения
Тип файла: rar БД v2.9_1.rar (67.0 Кб, 5 просмотров)
1
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
01.09.2015, 17:33  [ТС]
Благодарю, только он новые объекты под старыми клиентами не отображает в итоге. Хотя новые данные в таблице (объекты) присутствуют.
Еще форма заказы изменилась, теперь она отображает только одно значение (нужно листать), раньше отражала все, какие есть в базе.
Без ущерба структуре, вернуть отражение всех данных возможно?

Добавлено через 7 минут
Все равно спасибо, подумаю еще о других вариантах.
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
01.09.2015, 17:37
У меня отражает все, что есть в БД. Выложите свой вариант сюда. Возможны случайные накладки
Миниатюры
Закрепить объекты за определенным клиентом  
0
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
01.09.2015, 17:45  [ТС]
Есть еще один вопрос, не создавая новой темы. В форме "Клиенты" есть кнопка "ДосьеКлиента" при нажатии которой открывается подробная инфа о конкретном клиенте и его объекте.
Так вот, нужно создать такую же кнопку в форме "Заказы", верней она уже создана, но я не могу прописать нужную процедуру. Наверно из-за разницы типа полей, просто подстановка нужных значений не помогает.
В Клиентах :
Visual Basic
1
2
3
Private Sub Кнопка25_Click()
    DoCmd.OpenForm "Клиенты досье", acNormal, , "КодКлиента=" & Me.КодКлиента
End Sub
Актуальная версия:
БД v3.0.rar
0
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
02.09.2015, 07:49  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
У меня отражает все, что есть в БД. Выложите свой вариант сюда. Возможны случайные накладки
Скрин прямо с таблицы (с этим все ок), я говорил про отображение в форме "Заказы"

Добавлено через 14 часов 3 минуты
Вопрос еще актуален.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
02.09.2015, 07:59
Лучший ответ Сообщение было отмечено Sazabi как решение

Решение

Возможно так?
Visual Basic
1
2
3
Private Sub Кнопка35_Click()
    DoCmd.OpenForm "Клиенты досье", acNormal, , "КодКлиента=" & Me.Клиент
End Sub
1
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
02.09.2015, 09:09  [ТС]
Благодарю. То что нужно. Разница в одну букву).

Добавлено через 10 минут
Вопрос 1 (темы) и коммент еще актуален.
0
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
03.09.2015, 10:09  [ТС]
Ребят, подскажите как все таки закрепить объекты за определенным клиентом.
Извините, повторюсь.
PureBasic
1
2
3
4
5
6
Private Sub Поле39_AfterUpdate()
    Dim s
    s = "SELECT [Объекты].[КодОбъектов], [Объекты].[Объект] FROM Объекты " _
    & " where [КодОбъектов]=" & Me.Поле39
    Me.[Название объекта].RowSource = s
End Sub
Ув. mobile, расскажите как реализовать такое, только используя поле "Клиент" в качестве основы, а не поисковик "Поле39". Разница в типе полях. Из-за этого просто изменить значения ни к чему не приводит.
БД v3.0.rar
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.09.2015, 11:22
Sazabi, я уже говорил, что напрямую в ленточной форме сделать связанные списки нельзя. Можно только с помощью АПИ, подставляя доп.форму с полем со списком. А в табличной можно. И даже показал как. Осталось только подставить поправленную табличную форму вставить в форму поиска.

На основе Вашей формы Заказы сделана свободная поисковая форма ЗаказыТ, куда подформой вставлена ранее показанная форма ЗаказыТабл. В ней работают связанные списки - зависимость поля со списком Название от поля Клиент
Вложения
Тип файла: rar БД v2.9_12.rar (76.0 Кб, 0 просмотров)
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.09.2015, 11:46
Лучший ответ Сообщение было отмечено Sazabi как решение

Решение

Виноват, в одном поле ошибся. Вместо кода клиента написал код объекта. Исправляюсь
Вложения
Тип файла: rar БД v2.9_12.rar (76.6 Кб, 1 просмотров)
1
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
03.09.2015, 12:15  [ТС]
Благодарю, постараюсь теперь это изучить и научиться самому.

Добавлено через 16 минут
Заметил один баг, не могу понять как устранить...
Пример: если создавать новый заказ т.е выбрать Вид работ, Клиента и когда очередь подходит выбирать объект, по умолчанию, почему то при любом выбранном клиенте, в списке объектов первый идет "Станция шиноремонта", а потом уже те которые должны отображаться исходя от выбранного клиента. Повторюсь, не важно какой клиент выбран, всегда сначала "станция шиноремонта"
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.09.2015, 12:38
Цитата Сообщение от Sazabi Посмотреть сообщение
Заметил один баг
В коде события После обновления поля Клиент, надо удалить команду выбора высвечиваемого значения. В этом поле еще не сформирован источник для названия
Visual Basic
1
2
3
4
Private Sub Клиент_AfterUpdate() ''
    Me.Название_объекта.Requery
' Me.Название_объекта = Me.Название_объекта.ItemData(0) 'Закомментировать или удалить эту строку
End Sub
1
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
04.09.2015, 08:33  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Возможно так?
Visual Basic
1
2
3
Private Sub Кнопка35_Click()
    DoCmd.OpenForm "Клиенты досье", acNormal, , "КодКлиента=" & Me.Клиент
End Sub
Все таки немного не так...
эта процедура открывает клиента, но не конкретно выбранного заказа (объекта). Приходится еще дополнительно листать уже по объектам. Например: Выбрал я ИП Киреев через фильтр, далее нужно глянуть заказ по объекту "АЭС" - нажимаю досье клиента, чтобы открыть этот заказ.



Но при открытии выходит его первый заказ (объект) Гараж, а не выбранный до этого АЭС и уже там надо листать чтобы добраться до нужного объекта.


Помогите пожалуйста с этим разобраться, нужно чтобы сразу с кнопки "ДосьеКлиента" направляло конкретно на выбранный заказ (объект), а не просто на первую страницу клиента.

Актуальная версия базы. БД v3.0.rar
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
04.09.2015, 09:26
Цитата Сообщение от Sazabi Посмотреть сообщение
Все таки немного не так...
Да не проблема, добавляем в условие (придется еще и в досье добавить) КодЗаказа ... . (версия старая ...).
Вложения
Тип файла: 7z БД v3.0.accdb.7z (64.8 Кб, 3 просмотров)
1
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
04.09.2015, 09:30  [ТС]
Как добавить в условие и в досьеклиента КодЗаказа? Как я понял нужно новый код процедуры прописать.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
04.09.2015, 09:50
Посмотрите во вложении измененные процедуру и источник записей досье клиента ... .
0
4 / 4 / 0
Регистрация: 20.01.2015
Сообщений: 153
04.09.2015, 10:22  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Посмотрите во вложении измененные процедуру и источник записей досье клиента ... .
Досье клиента... Кнопки или формы? Извините не могу догнать что-то. Не вижу никакой разницы.

Добавлено через 5 минут
Кажется дошло, спасибо!

Добавлено через 17 минут
Не пойму одного, зачем на кнопку "клиенты" в форме заказы, вы прописали следующий код:
PureBasic
1
2
3
Private Sub Кнопка35_Click()
    DoCmd.OpenForm "Клиенты досье", acNormal, , "КодКлиента=" & Me.Клиент & " And КодЗаказа=" & Me.КодЗаказа
End Sub
Этот код нужен для кнопки "Досье клиента" которое дублируется по каждому заказу в той же форме. Но вот странность, если я беру этот код и пытаюсь вставить к этой кнопке в своей версии, то выходит ошибка (введите код клиента), а в вашей версии все прекрасно работает. Это связанно с изменением источника записей?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2015, 10:22
Помогаю со студенческими работами здесь

Как уничтожать динамические объекты и вообще объекты, если это необходимо сделать в их процедурах?
Создать отдельную процедуру CloseObject(Object: TObject) и вызывать ее в конце процедуры или так тоже нельзя? А то бесят эти access...

Встроенные объекты Java Script. Объекты Array, Date
Создать массив, содержащий названия элементов, находящихся в системном блоке компьютера. Добавить к нему массив, содержащий названия ...

Удалить все объекты и создать объекты - потомки
Как сделать клоны объекта в другом объекте? Использую метод Instantiate Есть метод public Transform Elem; //элемент на...

Функция создает объекты и указателями на них заполняет массив. При выходе из функции вызываются деструкторы объектов. Как сохранить объекты?
Вопрос прост: как при выходе из функции сохранить объекты, которые были созданы в данной функции (указатели объектов положены в массив)?

В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru