Здравствуйте.
Много где уже искал решение своей проблемы, но не могу никак найти ответа.
А проблема следующая.
Есть небольшой магазин автозапчастей, для иностранных автомобилей.
Все запчасти ищутся клиенту непосредственно по наименованию, но это трудно так как одному нужно читать из упаковки а второму вводить в excel и отмечать какому клиенту бросить. Возникла идея делать все это по штрих коду, то есть сделать свою базу данных штрих кодов.
например лист екселя в столбце "А" будет штрих код а в столбце "В" наименование детали.(в примерах брошу)
В файле "накладная" которая приходит в таком виде как можете видеть в прикрепленных файлах ,тоесть там только наименования товара(в столбце "G" ставиться количество товара которое приехало клиенту).
Тоесть нужно промежуточною БД которая будет дешифрировать если можно так сказать из полученого штрих кода название товара и уже тогда искать в накладной , если есть совпадение - ставить 1 в столбе G.
Вот и прошу совета, как можно такое реализировать? можно ли обойтись стандартными возможностями офиса, или нужно прибегать к помощи кодирования?
нашел примеры работы с книгами а хиасм но нет функции поиска по листу((
вот такая вот цепочка получаеться :
сканер -> штрих код (1234567890) -> (БД) поиск соответствия (1234567890 = LMI34567) -> Накладная (LMI34567 1шт. Андрей)
Спасибо
п.с. не могу залить сюда, но вот ссылка на сами файлы.
http://forum.msexcel.ru/index.php?action=dlattach;topic=10465.0;attach=14002
Этот топик читают: Гость
Ответов: 74
Рейтинг: 2
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Bigggi писал(а): Тоесть нужно промежуточною БДНабери в любом поисковике "Складской учет" и почитай, что это такое и с чем его едят. А здесь готовые (бесплатные программы) http://www.softportal.com/dlcategory-807-1-0-0.html |
|||
карма: 25 |
|
Ответов: 74
Рейтинг: 2
|
|||
Tad, да БД, но Вы наверное меня неверно поняли или я плохо выразился)
Я так и хочу делать, только как ?) как сопоставить штрих код с найменованием елемента ,и чтобы оно потом искало в накладной ?) просто накладная мне приходит и будет приходить без штрих кодов а просто с названием детали.Если б там был штрих код то было бы проще простого а так...(( Спасибо |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Штрих коды на одну и ту же деталь от разных производителей отличаются.
Например : Штрихкод на упаковке генератора для Audi, изготовленного в Германии будет отличаться от такого же, но изготовленного в Малазии или в Китае. |
|||
карма: 25 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Bigggi, всё это можно сделать и в Excel, и в HiAsm, и в БД любой
(Но тому пользователю, который блоки данных в Excel разбивает наименованиями типа ВАСЯ, да ещё и в объединённых ячейках, отрезал бы кое что тупым серпом ) Вот пример на Excel: БД_excel.rar Нашёл.jpg |
|||
карма: 19 |
| ||
файлы: 2 | БД_excel.rar [236.1KB] [322], Нашёл.jpg [46.6KB] [862] |
Ответов: 74
Рейтинг: 2
|
|||
Tad, Согласен! отличаються даже очень например взять производителя lemforder бывают шаровые и муфты эластические разных производителей хотя деталь та же идинтичная но одна в германи сделана а другая малайзии но это не критично деталь та же. Того же + если только штрих брать несколько последних цифр то они будут идентичны так как производитель в штрихе в начале кода отображаеться. Но повторяю,это все мелочи .
Леонид, ххаха думаю отрезать не чего менеджер - девушка)))) Сейчас посмотрю. Спасибо за ответы) вов.. Леонид, вроде то! немного допилить и будет то что нужно) если можно, объясните как Вы сделали весь этот поиск если можно?) Спасибо Вам большое, это уже что то) П.С. Я так понял это листин макроса написанного для поиска ? Sub ПоискКлиента() ' ' ПоискКлиента Макрос ' Макрос записан 22.10.2014 (LA) ' ' Dim Kod, Name, Klient As String Dim Num As Long Num = 3 Columns("C").Select Selection.ClearContents Range("B2").Select Kod = Cells(3, 2) For i = 1 To 65535 Windows("Накладная.xlsx").Activate If Cells(i, 2) = Kod Then Name = Cells(i, 3) Cells(i, 7) = Cells(i, 7) + 1 Klient = Cells(i, 13) Windows("ПОИСК.xls").Activate Cells(Num, 3) = Name Cells(Num, 4) = Klient Num = Num + 1 Windows("Накладная.xlsx").Activate End If Next i Windows("ПОИСК.xls").Activate End Sub |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Bigggi, ещё один момент.
Пришёл Андрей в Ваш магазинчик и говорит - мне нужена вот такая хреновина и кусок железа на стол. Ты у него можешь спросить : марку, модель, год выпуска, где сделан автомобиль. Но, хоть убей его, он штрихкод этой детали тебе не покажет и не скажет. И будешь ты искать ему деталь ПО НАЗВАНИЮ ( если кто правильно название подскажет ) Вот почему такая несправедливость? "Берёшь в голову", а приключения потом находишь на свою ж... . Штрихкод удобен только для кассы. Считал штрихкод - получил точную цену. |
|||
карма: 25 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Bigggi писал(а): ..менеджер - девушка..Bigggi писал(а): ..как Вы сделали весь этот поиск..Макрос для разнообразия,что можно и так А написал его просто: кликнул "Начать запись", выбрал одну книгу, другую (чтобы потом не набирать ручками), "Остановить запись" получился пустой макрос, в котором и написал цикл перебора всех ячеек с условием по совпадению извлечь нужное. Правда записывал в колонку "G" не "1", а прибавлял к ячейке эту "1" |
|||
карма: 19 |
| ||
Голосовали: | Bigggi |
Ответов: 74
Рейтинг: 2
|
|||
Леонид,
Понятно вроде разобрался немного. Вот добавил еще проверку количества тоесть если у Пети уже есть такие детали то ищем дальше если больше никому не нужно выводим сообщение об этом. Но с выводом немного что то не получаеться, не хочет с else работать) правда я в бейсике полный 0 но более мение знаю С,С++. Вроде условие переверяет и ищет дальше ноо с сообщением туго. А так все вроде работает.. Ага и еще тут нужно нажимать кнопку ПОИСК что не есть удобно так как сам сканер эмулирует нажатие ентера. вот так как то Sub ПоискКлиента() ' ' ПоискКлиента Макрос ' Макрос записан 22.10.2014 (LA) ' ' Dim Kod, Name, Klient As String Dim Num As Long Num = 3 Columns("C").Select Selection.ClearContents Range("B2").Select Kod = Cells(3, 2) For i = 1 To 65535 'типо безконечный цыкл ) Windows("Накладная.xlsx").Activate If Cells(i, 7) <> Cells(i, 10) Then'проверка условия количества товара If Cells(i, 2) = Kod Then'? Name = Cells(i, 3)'? Cells(i, 7) = Cells(i, 7) + увеличиваем на 1 количество которое пришло Klient = Cells(i, 13)'берем имя клиента Windows("ПОИСК.xls").Activate'активация листа поиска Cells(Num, 3) = Name'выводим значение ячейки в 3 столбе Cells(Num, 4) = Klient' выводим значение ячейки в 4 столбе Num = Num + 1'переменную нум увеличиваем на 1 Windows("Накладная.xlsx").Activate'активация листа накладной End If 'Закрываем проверку условия If Cells(i, 7) = Cells(i, 10) Then 'Проверка наличия количества если есть все выводим сообщение тут елсе не работает( MsgBox ("Все есть!") 'Вывод ошибки End If'Закрываем проверку условия End If'Закрываем проверку условия Next i Windows("ПОИСК.xls").Activate'активация листа поиска End Sub вот немного прокомментировал не знаю правильно или нет но то что знаю и понимаю, объясните пожалуйста или прокомментируйте строки которые я оставил ,в этих местах я понимаю что они делают но не понимаю где и зачем.)(кроме описания переменных конечно_) Спасибо большое. |
|||
карма: 0 |
|
Ответов: 704
Рейтинг: 44
|
|||
Так на хрена такая тягомотина, я вот сейчас работаю в автосервисе и не парюсь, написал программу директору и все пучком. Кто приехал, когда приехал, что заменил ++ капусту может подсчитать, короче все ровно , все написано. Так что мое слово. такое, зависти программу, которая имеет полный функционал ваших манипуляций и не париться со всей вашей лубудой, с Exels, и причем это уже не актуально. Если нужно помогу!!!
------------ Дoбавленo в 23.40: Так на хрена такая тягомотина, я вот сейчас работаю в автосервисе и не парюсь, написал программу директору и все пучком. Кто приехал, когда приехал, что заменил ++ капусту может подсчитать, короче все ровно , все написано. Так что мое слово. такое, зависти программу, которая имеет полный функционал ваших манипуляций и не париться со всей вашей лубудой, с Exels, и причем это уже не актуально. Если нужно помогу!!! |
|||
карма: 0 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Kazbek17, память девичья, забыли, что начинали здесь тоже с Excel и точно так же
Bigggi, конечно Kazbek17 правильно говорит, нужно изучать БД, по времени столько же, как изучать Excel, но пользы и на будушее больше. При вставке кода пользуйтесь тегами CODE (в кнопочках над полем сообщения) : code_34489.txt Вам надо продумать КОНФИГУРАЦИЮ листов и столбцов и свести все записи в одну книгу. Например так: mydatabase.rar |
|||
карма: 19 |
| ||
файлы: 2 | mydatabase.rar [6.2KB] [146], code_34489.txt [2KB] [257] |
Ответов: 16884
Рейтинг: 1239
|
|||
Или, при переходе на БД, примерно так:
Справочные таблицы:
Поставщик (id,Наименование,Адрес,Телефоны,Факс,Банк,Расчетный счет) Покупатель(id,Наименование,Адрес,Телефоны,Факс,Банк,Расчетный счет) - для постоянных клиентов (например автомастерские) Категория (id,Наименование) Товар(id,id_категория,Наименование,Штрихкод,ед.изм, минимальный запас) Рабочие таблицы: Приход(Дата, №_приходной накладной, id_Поставщика, id_Товара, Кол-во, Цена, Сумма) Расход(Дата, №_приходной накладной, id_Покупателя, id_Товара, Кол-во, Цена, Сумма, НДС) |
|||
карма: 25 |
|
Ответов: 74
Рейтинг: 2
|
|||
Kazbek17, Леонид, Tad, Спасибо Вам большое ребята за предложенную помощь и за советы/ответы, но пока делать полноценную БД нет смысла так как у фирмы переходной этап, вот на следующий год возможно бизнес будет расширяться и тогда понадобиться такая система а сейчас главное рабочий вариант поиска по штрих коду и все.Но все одно спасибо.
Буду рад если поможете допилить макрос который предложил Леонид Спасибо!! И так дале по макросу. Леонид, посмотрел предложенный выше код. Вроде все в норме но все одно не хочет правильно работать вывод ошибки при перевышении количества .(когда уже никому деталь не нужна, лишняя или передали) пришлось закоментировать пару первых строк очищения данных так как иногда случалось так что оно подчищало С и D в самой накладной что недопустимо. Подскажите как обходиться без кнопки ? так как сканер сам жмет ентер после сканирования кода. И подскажите можно ли перенести всю поисковою программу на форму ? code_34491.txt |
|||
карма: 0 |
| ||
файлы: 1 | code_34491.txt [764B] [186] |
Ответов: 16884
Рейтинг: 1239
|
|||
Bigggi писал(а): пока делать полноценную БД нет смысла так как у фирмы переходной этапВсё, что можно сделать в БД - можно сделать и в Excel. Определиться нужно сразу, что-бы потом небыло "мучительно больно". Excel - значит Excel, БД - значит БД. ИМХО. |
|||
карма: 25 |
|
Ответов: 74
Рейтинг: 2
|
|||
Tad,
Нет, не отговорка ) так и есть, планируеться интернет магазин в ближайшее время так вот те программисты будут делать и магазин и все остальное. А чтобы сделать сейчас это так много головной боли, перевести менеджеров на новые формы заполнения и т.д. Все очень сложно, а мне всего то нужно просто сортировать товар по клиентах и как можно больше автоматизировать этот процес, так как сортируем вечером и иногда занимает эта сортировка до 3-4 часов пока усно диктовать а кто то пробивает в поиске екселя срабатывает людской фактор + утомление спать хочеться вот и начинаються ошибки то не то вел то не на ту строку посмотрел и товар пошол другому клиенту(. Я понимаю что правильно делать все как должно быть там 1С и так дале, но..но.. Так что самый хорошый вариант это тот что сейчас предлагаеться. Все простое - гениально) больше ж ничего не требуеться) Спасибо |
|||
карма: 0 |
|