Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 08.08.2013, 13:03   #1
duh_si
Форумчанин
 
Регистрация: 18.04.2013
Сообщений: 117
По умолчанию Выбор поставщика (номер +1)

Здравствуйте форумчане, помогите пожалуйста в следующей проблеме..
См.рис При выборе Постовщик из выподающего списка,необходимо чтобы, подсчитывалось количество уже существующих записей по этому поставщику,.. и в Номер у поставщика попадала цифра на один больше... т.е вот сейчас у СОСО номер 8 при следующим создание заказа и выборе СОСО, номер у Пост: будет уже 9, автоматически.
Изображения
Тип файла: jpg 6.JPG (6.9 Кб, 31 просмотров)
duh_si вне форума Ответить с цитированием
Старый 09.08.2013, 08:54   #2
Myhaylo
Форумчанин
 
Регистрация: 18.07.2012
Сообщений: 520
По умолчанию

Например, Вам нужно изменить "Источник строк" (RowSource) поля со списком "Поставщик" так, чтобы кроме 2 существующий полей (Код_поставщика и Имя_поставщика) выводилось и третье - количество записей. Тогда в подпрограмме обработки события "После обновления" (AfterUpdate) поля со списком "Поставщик" Вам достаточно будет написать:

Номер_пост=Поставщик.Column(2, Поставщик.ListIndex)+1
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 09.08.2013, 09:35   #3
duh_si
Форумчанин
 
Регистрация: 18.04.2013
Сообщений: 117
По умолчанию

Уточнил еще раз ТЗ
Суть примерно таже, только, также выберается поставщик, только выберается еще и проект и уже в зависимости от того сколько было проектов с таким названием +1 к номеру у пост.
Изображения
Тип файла: jpg 1.JPG (10.8 Кб, 22 просмотров)
duh_si вне форума Ответить с цитированием
Старый 09.08.2013, 09:40   #4
duh_si
Форумчанин
 
Регистрация: 18.04.2013
Сообщений: 117
По умолчанию

на картинке источник строк Поставщика,
вот какой запрос
Цитата:
SELECT [Поставщик активный].[Короткое название] FROM [Поставщик активный] ORDER BY [Короткое название];
Изображения
Тип файла: jpg 2.JPG (53.5 Кб, 22 просмотров)
duh_si вне форума Ответить с цитированием
Старый 09.08.2013, 09:59   #5
Myhaylo
Форумчанин
 
Регистрация: 18.07.2012
Сообщений: 520
По умолчанию

Нет, если номер завити от нескольких параметров (а не от одного), то тогда нужно в AfterUpdate либо воспользоваться функцией DCount, либо - объект RecordSet.
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 09.08.2013, 10:24   #6
duh_si
Форумчанин
 
Регистрация: 18.04.2013
Сообщений: 117
По умолчанию

Myhaylo а можете посмотреть, по идеи у вас на почте есть мой проект..
duh_si вне форума Ответить с цитированием
Старый 12.08.2013, 08:40   #7
Myhaylo
Форумчанин
 
Регистрация: 18.07.2012
Сообщений: 520
По умолчанию

Код:
Dim table As Recordset
  If Not (IsNull(Поставщик) Or IsNull(LeadMan)) Then
    Set table = CurrentDb.OpenRecordset("SELECT Заказ.НомерЗаказаУпоставщика FROM Заказ WHERE Заказ.Поставщик=""" & Поставщик & """ AND Заказ.LeadMan=""" & LeadMan & """")
    НомерЗаказаУпоставщика = Nz(table!НомерЗаказаУпоставщика, 0) + 1
  End If
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 12.08.2013, 13:58   #8
duh_si
Форумчанин
 
Регистрация: 18.04.2013
Сообщений: 117
По умолчанию

Myhaylo спасибо большое..хоть вы откликаетесь
У меня вопросы есть по поводу кода:
я так понял код нужно вставить в LeadMan?(см.рис )
Цитата:
Код:
Private Sub LEADMAN_AfterUpdate()
Dim table As Recordset
  If Not (IsNull(Поставщик) Or IsNull(LeadMan)) Then
    Set table = CurrentDb.OpenRecordset("SELECT Заказ.НомерЗаказаУпоставщика FROM Заказ WHERE Заказ.Поставщик=""" & Поставщик & """ AND Заказ.LeadMan=""" & LeadMan & """")
    НомерЗаказаУпоставщика = Nz(table!НомерЗаказаУпоставщика, 0) + 1
  End If
End Sub
если это так, то просто я не совсем понимаю почему сделано так ...
В общем, если использовать этот код то работает все следующем образом:
выбираю Поставщика потом Проект затем выбераю LeadMan и если уже был такой Поставщик и такой Проект с Этой фамилией из LeadMan то все нормально +1 к номеру, но если выбрать другую фамилию, то возникает ошибка "Текущая запись отсутствует" выделяя эту строку НомерЗаказаУпоставщика = Nz(table!НомерЗаказаУпоставщика, 0) + 1..получается что нужно еще угадать и с фамилией которая до этого была...


мне нужно чтобы выбрали Постовщик потом Проект и в Номер у пост: +1 к уже существующей записи, ну а если записи таой еще не было, тогда просто 1 там появится (как бы не нужно чтобы еще и зависить от LeadMan) Такое возможно...?
Изображения
Тип файла: jpg 4.JPG (30.3 Кб, 45 просмотров)
duh_si вне форума Ответить с цитированием
Старый 12.08.2013, 14:13   #9
Myhaylo
Форумчанин
 
Регистрация: 18.07.2012
Сообщений: 520
По умолчанию

Простите, я перепутал: замените все LeadMan на Проект. Т. е. SELECT должен оканчиваться так:

& Поставщик & """ AND Заказ.Проект=""" & Проект & """")
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 12.08.2013, 15:16   #10
duh_si
Форумчанин
 
Регистрация: 18.04.2013
Сообщений: 117
По умолчанию

Код я вставил в оба списка подправив соответственно для каждого...

хм... смотрите какая штука получается:
рис.1 я отфильтровал какие записи есть у поставщика Cindy по Ароматизаторам их 2, но смотрите в Заказ Один при выборе Проект в Номер у пост: попадает цифра 1, а теоретически должна быть цифра 3...Но см.рис 2

Дело на рис.2 обстоит иначе:
при выборе Проект в Номер у Пост попадает цифра 1, но если выбрать фамилию которой принадлежат эти 2 записи (в моем случае Пазаныч) то в Номер у пост +1 (т.е 3) как и должно быть (и получается мы все равно зависим от фамилии выбранной в LeadMan) а по идеи этого не должно быть "Зависимости"
Изображения
Тип файла: jpg 1.JPG (38.9 Кб, 41 просмотров)
Тип файла: jpg 2.JPG (33.3 Кб, 19 просмотров)
duh_si вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с++ Дан номер года,Определить соответствующий ему номер столетия rinoolik Помощь студентам 1 18.02.2013 21:21
Как вычислить номер месяца, имея номер недели? Ras2im Microsoft Office Excel 17 07.10.2012 02:31
Как вывести на экран номер строки с максимальной суммой элементов и номер столбца с минимальной суммой? Vetal888888 C# (си шарп) 4 20.12.2011 12:46
по букве тома определить физический серийный номер накопителя, а не номер тома @лександр Помощь студентам 6 23.09.2010 14:05


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS