powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос новичка
10 сообщений из 10, страница 1 из 1
Вопрос новичка
    #32401706
Opunsiya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не программист и Access’ом интересуюсь с недавнего времени . Изучаю в основном по Help и вашему форуму. Засыпалась вопросами. Подскажите пожалуйста. В б.д. «Борей» заказанные товары набираются в таблицу через форму «Заказы» и там хранятся. Я хочу использовать такой же принцип для набивки например дневной реализации товара. Но как бы так сделать, чтобы набирая реализацию не думать, встречался ли уже этот товар или нет, а набирать все в подряд, а в таблицу попадал бы уже сгруппированный и просуммированный и не хранить по десять строчек с одинаковым товаром? Вот так:
лента 5
скотч 10
лента 7 а в таблицу попадало бы лента 12
скотч 10
Сижу, пробую и так и этак, ну не получается! Такое впечатление, что изобретаю велосипед, только вот получается инвалидная коляска. Пожалуйста, объясните как это можно сделать?
...
Рейтинг: 0 / 0
Вопрос новичка
    #32401710
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э-э-э...
А почему нельзя сразу набить Лента - 12 ???
...
Рейтинг: 0 / 0
Вопрос новичка
    #32401712
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед добавлением проверить, есть ли уже этот товар в этом документе (открыть рекордсет SELECT 1 FROM MyTable WHERE Tovar = ... AND document = ... и проверить свойство EOF - если True, то такого товара нет)
Если нет, то делать вставку.
Если да, то обновление (UPDATE MyTable SET quantity = quantity + ... WHERE tovar = ... AND document = ...)
...
Рейтинг: 0 / 0
Вопрос новичка
    #32401713
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Темный:
Товар может продаваться несколько раз в день, и когда дневной документ велИк, просматривать его весь не очень удобно. У нас бывает по 1000 строк, так что проще найти товар в справочнике и забить в документ, не думая о том, есть ли он там уже.
...
Рейтинг: 0 / 0
Вопрос новичка
    #32401719
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял...
...
Рейтинг: 0 / 0
Вопрос новичка
    #32401753
Opunsiya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexJuice
Сказать честно- я не поняла. Мне нужно время чтобы «дошло» и помощь по VBA почитать. Но скажи пожалуйста, это как в готовом виде будет выглядеть? Не нужно будет пролистывать форму сюда-туда? Извините, ну лапоть я пока…
...
Рейтинг: 0 / 0
Вопрос новичка
    #32401788
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, сразу в готовом виде подавай
Где ж я его возьму, если структуры таблиц не знаю?

Примерно так (если использовать библиотеку ADO - для DAO будет по-другому):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim rst As Recordset
Set rst = New Recordset
rst.Open  "SELECT 1  FROM strings WHERE IdTovar = " & Me.IdTovar & 
 " AND IdDocument = "  & Me.IdDoc, CurrentProject.Connection
If rst.EOF Then
     CurrentProject.Connection.Execute  "INSERT INTO strings (IdTovar, IdDocument, Quant, ...
<здесь другие поля по вкусу> ) VALUES ("  & Me.IdTovar &  ", "  & Me.IdDoc &  ", "  & Me.Quant ...
<здесь другие поля по вкусу>  &  ")" 
Else
     CurrentProject.Connection.Execute  "UPDATE strings SET Quant = Quant + "  
& Me.Quant &  " WHERE IdDocument = "  & Me.IdDoc &  " AND IdTovar = "  & Me.IdTovar
End If
rst.Close
Set rst = Nothing


А пролистывать форму не придется, достаточно обратиться к ее источнику записей
Слово Me в модуле формы обозначает саму эту форму.
Если нужно обратиться к подчиненной форме, надо писать так:
Me.MySubFormName.Form.MyControlName
Да, еще: чтобы перенести строчку, надо ввести пробел и знак подчеркивания.
Я здесь перенес, чтобы влезали в экран
...
Рейтинг: 0 / 0
Вопрос новичка
    #32401872
Opunsiya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за пример. Я буду изучать его до масленицы, но разберусь. Вот только последний вопрос: на что должно изменяться Quant? Что там после Quant + ?


P.S. Совсем плохо, да?
...
Рейтинг: 0 / 0
Вопрос новичка
    #32401985
6-6-6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
быр-быр-быр
Человек токо начинает а вы хлопцы ему уже дао адо предлагаете.
Проще - регистрировать операции как есть, а когда хоца просмотреть - пожалуйста запрос с группировкой по товару и суммой по количеству... И никаких проблемм..
...
Рейтинг: 0 / 0
Вопрос новичка
    #32402573
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Opunsiya:
Надо прибавлять то количество, которое надо прибавить
Чего ж тут непонятного? Ведь в этом и задача - не вносить новую строчку, а прибавить количество к уже имеющейся.

2 6-6-6:
Ну это как сказать...
ИМХО проще было бы вообще запретить внесение в один документ одного товара несколько раз, а для проверки использовать такую процедурку. Это позволило бы сделать естественный ключ из набора ID товара + ID документа. А мне вот приходится держать суррогатный ключ, поскольку есть свои заморочки - в частности, с отпускной ценой.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос новичка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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