Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подскажите алгоритм собирания строки (Access 2003)
 
 автор: glebozzzz   (20.02.2015 в 10:29)   личное сообщение
 
 

Доброго всем времени суток!
Есть таблица:

КодНак Продукция Тара
20449 Свинина п/т п/туши
20449 Хвосты свиные гофр/кор.
20449 Печень свиная гофр/кор.
20449 Почки свиные пакет п/э
20449 Сердце свиное гофр/кор.
20449 Язык свиной гофр/кор.
20449 Уши свиные гофр/кор.
20449 Колтык свиной пакет п/э
20449 Шкурка свиная пакет п/э

как можно сотворить сборку строки вида: 1)п/туши; 2),3),5),6),7)гофр/кор.; 4),8),9)пакет п/эт

Сейчас строку творю так (в VB).

StrNum = 1
With rst
    .MoveLast 'Заполнение набора записями
    .MoveFirst 'Возврат в начало
    Do Until .EOF
        Str = ![Тара]
        FullStr = FullStr & StrNum & ")" & Str & "  "
        StrNum = StrNum + 1
        .MoveNext
    Loop
    .Close
End With

А вот какой бы алгоритм придумать для сборки нужной строки?
Заранее благодарен за помощь, если кто откликнется.

  Ответить  
 
 автор: час   (20.02.2015 в 14:43)   личное сообщение
 
 

немного не понял вопроса...
точнее совсем не понял....
что это за вид строки?


1)п/туши; 2),3),5),6),7)гофр/кор.; 4),8),9)пакет п/эт


в чём тут фишка?

  Ответить  
 
 автор: Дядя Федор   (20.02.2015 в 15:10)   личное сообщение
 
 

Видимо неповторяющаяся тара.
Выделить тару и собрать. Причем, почему-то, с последним номером.

DISTINCT ?

  Ответить  
 
 автор: glebozzzz   (21.02.2015 в 06:39)   личное сообщение
 
 

Ну вот сейчас в результате сборки получится строка вида:
1)п/туши 2)гофр/кор. 3)гофр/кор. 4)пакет п/э 5)гофр/кор. 6)гофр/кор. 7)гофр/кор. 8)пакет п/э 9)пакет п/э,
а надо:
1)п/туши; 2),3),5),6),7)гофр/кор.; 4),8),9)пакет п/эт

  Ответить  
 
 автор: kot_k_k   (21.02.2015 в 09:08)   личное сообщение
 
 

не совсем понятны исходные данные, но если можно то исходный запрос тип такого:
группировка по №п/п и таре, с сортировкой по таре и №п/п
получим :
1)п/туши
2)гофр/кор.
3)гофр/кор.
5)гофр/кор.
6)гофр/кор.
7)гофр/кор.
4)пакет п/э
8)пакет п/э
9)пакет п/э,
дальше пробегеемася по полученной табле и нанизываем:

kontr=tara[1]
for i=1 to 9
   if tara[i]=kontr
        str=str + i + '),'
     else
        str=str + kontr + i + '),'
        kontr=tara[i]
    endif
next


получим искомое.

єто же можно сделать запросом - тут как-то извращались, но так проще ИМХО

  Ответить  
 
 автор: glebozzzz   (21.02.2015 в 15:20)   личное сообщение
 
 

kot_k_k спасибо за отклик.

Получается алгоритм действий такой:
1)сделать отдельную процедуру для нумерации строк по порядку в запросе, пробежать ей по запросу - пронумеровать строки.
2)Отсортировать (группировать) запрос по видам тары.
3)Формировать строку как мне надо.

Так?
А неужто проще никак нельзя?
Ничего встроенного в Access такого нет?

  Ответить  
 
 автор: kot_k_k   (22.02.2015 в 09:33)   личное сообщение
 
 

в данный момент задача представляет собой чисто аналитические извраты.
базу в студию в формате 2000.
и объяснениея что и для чего ты это хочешь получить.
покажи пальцем где - получим нормальное решения.
может ты вообще не тем путем пошел.

  Ответить  
 
 автор: час   (21.02.2015 в 17:40)   личное сообщение
 
 

аааа
вон что
так можно группировку включить и суммировать одинаковые названия.(повторяющиеся данные)
-----------------------------
кусочек таблицы можно в архиве сюда кинуть*?
access2003

  Ответить  
 
 автор: glebozzzz   (24.02.2015 в 10:02)   личное сообщение
 
 

Добрый день.
Ну вот - выдрал кусок базы.
Так, думаю, будет понятно.
Вся эта история потом вставится в бланк отчёта, а там размер фиксированный - тупо мало места - вот и приходится извращаться как-то.
Спасибо за отклик.
А что-то файлик прилиноковывать не хочет - вроде легкий???

  Ответить  
 
 автор: glebozzzz   (24.02.2015 в 10:05)   личное сообщение
 
 

попробую на Слил.ру - может туда зальётся...

  Ответить  
 
 автор: glebozzzz   (24.02.2015 в 10:10)   личное сообщение
15 Кб.
 
 

Дубль 2 (в ЗИП)

  Ответить  
 
 автор: Дядя Федор   (24.02.2015 в 11:30)   личное сообщение
 
 

Для начала тару надо в отдельную таблицу.
В табл. Продукция - код тары :)
Нет?

  Ответить  
 
 автор: kot_k_k   (24.02.2015 в 11:47)   личное сообщение
17 Кб.
 
 

тип того - чем больше нахомутать в последенем ELSE - тем больше красоты получим в выходной стороке.

п.с. русские буквы не рекомендуется использовать в именах таблиц/полей/функций

п.с.с. Dim Str As String - конечно красиво НО Str - это функция VBA.

  Ответить  
 
 автор: Дядя Федор   (24.02.2015 в 13:55)   личное сообщение
14 Кб.
 
 

Тоже набросал в обед. Красоту можно навести (типа лишней запятой, если последняя скобка...)

  Ответить  
 
 автор: kot_k_k   (24.02.2015 в 16:03)   личное сообщение
 
 

вот твоя строка
6),10),16),гофр/кор.; 1),п/туши; 11),14),19),пакет п/э

а надо номер по порядку.

хотя я не пойму для чего такой огород городить.

аффтар объясни ВСЮ идею с этой строкой

п.с. конечно если это не лаба. задания лаб - это бред.

  Ответить  
 
 автор: Дядя Федор   (25.02.2015 в 10:04)   личное сообщение
 
 

Да, не вкурил. Думал - позиции + упаковка. Но нпп сделать не проблема.

  Ответить  
 
 автор: Explorer   (24.02.2015 в 16:57)   личное сообщение
 
 

надо с тыла заходить - STEP -1

  Ответить  
 
 автор: kot_k_k   (24.02.2015 в 17:00)   личное сообщение
 
 

там можно по любому вертеть,
можно сделать признак конца строки и крутить по нему, добавляя по №пп вариантов куча.
вот только на хрен все это я не пойму!!!!

  Ответить  
 
 автор: glebozzzz   (24.02.2015 в 18:54)   личное сообщение
 
 

ВСЯ идея:
Есть база. Убойный цех (не лаба никакая - всё в натурале... - (просьба сильно не пугаться - мы мясо производим - шашлык, колбаску, ведь все едим))) (даже в пост)
Мясопродукты отпускаются по накладным+Кач.удостоверение+спецификация+счет фактура+...
Параллельно с накладными выбиваются Ветсправки (номерные - типографские бланки строгой отчетности).
На бланке: фиксированные строки, сектора, где должна быть всякая инфа - наименование продукции, клейма, тара, мороженая / охлаждённая, анализы такие, анализы сякие, адреса, условия перевозки и т.д....................
Размер листа - А4.
Информации великая масса. Шрифт уже и так 9. Ещё мельче - совсем беда - не читаемо будет.
Вся информация куда надо - тупо не влезает.
Пытаюсь как-то оптимизировать.
За помощь спасибище огромное - сейчас буду внедрять.

  Ответить  
 
 автор: kot_k_k   (24.02.2015 в 19:06)   личное сообщение
 
 

пиши 5-й и пошли на фиг проверяющих
подносиш лупу и спрашиваешь "Чего Вам Бляди не видно?"
микрошрофтом выбиваешь на фарше штрих-код

пс.. да не впихнется - невпихуемое.

  Ответить  
 
 автор: glebozzzz   (24.02.2015 в 21:24)   личное сообщение
17 Кб.
 
 

Всё!
Приляпал - таки под себя! .
Много неизвестного для меня было - пока разобрался...
Вот так - будет идеально.
Спасибо!
Спасибо!
СПАСИБО!!!

  Ответить  
 
 автор: kot_k_k   (25.02.2015 в 10:51)   личное сообщение
 
 

Д.Федор - думаю по шашлыку мы с тобой заработали

п.с. а под чачу - овощи.

  Ответить  
 
 автор: Дядя Федор   (25.02.2015 в 10:59)   личное сообщение
 
 

Эт точно.

Вот так примерно: (Гиляровский)
"Моментально на столе выстроились холодная смирновка во льду, английская горькая, шустовская рябиновка и портвейн Леве No 50 рядом с бутылкой пикона. Еще двое пронесли два окорока провесной, нарезанной прозрачно розовыми, бумажной толщины, ломтиками. Еще поднос, на нем тыква с огурцами, жареные мозги дымились на черном хлебе и два серебряных жбана с серой зернистой и блестяще-черной ачуевской паюсной икрой. Неслышно вырос Кузьма с блюдом семги, украшенной угольниками лимона.
— Кузьма, а ведь ты забыл меня.
— Никак нет-с… Извольте посмотреть.
На третьем подносе стояла в салфетке бутылка эля и три стопочки.
— Нешто можно забыть, помилуйте-с! Начали попервоначалу «под селедочку».
— Для рифмы, как говаривал И. Ф. Горбунов: водка — селедка.
Потом под икру ачуевскую, потом под зернистую с крошечным расстегаем из налимьих печенок, по рюмке сперва белой холодной смирновки со льдом, а потом ее же, подкрашенной пикончиком, выпили английской под мозги и зубровки под салат оливье…
После каждой рюмки тарелочки из-под закуски сменялись новыми…
Кузьма резал дымящийся окорок, подручные черпали серебряными ложками зернистую икру и раскладывали по тарелочкам. Розовая семга сменялась янтарным балыком… Выпили по стопке эля «для осадки». Постепенно закуски исчезали, и на месте их засверкали дорогого фарфора тарелки и серебро ложек и вилок, а на соседнем столе курилась селянка и розовели круглые расстегаи.
— Селяночки-с!…"

  Ответить  
 
 автор: kot_k_k   (25.02.2015 в 19:32)   личное сообщение
 
 

и кому оно мешало в 17-м году?
таким же Вальцманам

  Ответить  
 
 автор: час   (25.02.2015 в 21:04)   личное сообщение
 
 

вовка ульянов там пиарился

  Ответить  
 
 автор: Explorer   (25.02.2015 в 22:14)   личное сообщение
 
 

развели тут демагогию!
ну-ка брысь в болталку!

  Ответить  
 
 автор: час   (26.02.2015 в 12:25)   личное сообщение
 
 

ОЙ

  Ответить  
 
 автор: Дядя Федор   (26.02.2015 в 14:32)   личное сообщение
 
 

Есть! Слушаемся!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList