![]() |
Автоматическое создание папок из полей таблицы c помощью VBS
Здравствуйте Господа программисты!!!
Очень нужна ваша помощь в следующем вопросе: Есть программа работающая с базой данных Access, включающая в себя следующие таблицы: ... Заказы,клиенты,продукты.... Нужно создать скрипт VBS чтобы при создании ЗАКАЗА автоматически создавалась группа папок в определенном месте диска (D:\Documents\Заказы\...), а имена этих папок создавались бы из определенных полей таблиц. Например: после создания заказа должны появится папки по указанному пути с таким вот именем: D:\Documents\Заказы\ул.Красная\Сергеев\ где ул.Красная это адрес клиента, Сергеев это Фамилия клиента, В папке "Сергеев" в свою очередь создаются папки (Стойка компьютерная,Стол письменный,Шкаф купе), имена которых берутся из подтаблицы "продукты" (в которой мы собственно и составляем заказ), каждая из которых содержит в себе еще 4 папки с неизменными названиями(Замер,Модель,Раскрой,Эскизы,Документы).... имя 1ой папки-берется из таблицы qdfOrders - Address имя 2ой папки-берется из таблицы qdfMain - Client имя 3ей папки-берется из таблицы tblOrdersProducts - Product "третьих" папок должно создаваться столько, сколько заказано продуктов, за исключением услуг(которые кстати тоже находятся в таблице tblOrdersProducts), в каждой из них создаются следующие папки: Замер Модель Раскрой Эскизы Документы С нетерпением жду ответа |
Цитата:
|
amel27,
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Вот скрины свойств полей , рис 4 триггеры
В поле триггер указываю файл скрипта,в поле"когда срабатывает"-- при добавлении записи, в поле "Тип операции"-- Запуск файла |
Цитата:
Код:
MakeDir.VBS qdfOrders.Address qdfMain.Client tblOrdersProducts.Product |
|
вот это надо в bat-файл
Код:
MakeDir.VBS qdfOrders.Address qdfMain.Client tblOrdersProducts.Product |
Цитата:
Строка 6 Символ 1 Индекс выходит за пределы допустимого диапазона Код 800А0009 Папки C:\Documents\аказы --создаются |
странно
выложите bat и vbs файлы |
Вложений: 1
Цитата:
|
запускать нужно bat-файл
название vbs-файла должно быть makedir или измените bat Код:
CreatFolders.VBS tblOrders.Address tblMain.Client tblOrdersProducts.Product |
Вложений: 1
Изменил название VBS получились следующие результаты
|
гм... а при чем тут BAT?.. запуск должен производиться средствами СУБД
хотя, если движок сервера БД MSSQL, для запуска скриптов из SQL можно использовать xp_cmdshell |
Цитата:
вот я и прошу помощи у знающих |
Цитата:
тем более, что движок БД до сих пор неизвестен |
Цитата:
|
Блин парни, дак вы мне тоже не поможете ???
|
Цитата:
Цитата:
но пользы от него мало - по описанным выше причинам Цитата:
навскидку привести код триггера на SQL не готов - смогу скопипастить с сервера только завтра если есть установленный MS SQL Server - смотрите BOL (SQL Server Books Online) |
Цитата:
Далее нужно задать "триггер"(имеется ввиду не сам тригер,а форма через которую он задается) на добавление на таблицу "Заказы", но в качестве команды указать не SQL-инструкцию, а запуск данного файла. |
Цитата:
Код:
WScript.Echo WScript.Arguments(0) Код:
CREATE TRIGGER qdfOrders_INSERT |
Доброе утро amel27
Цитата:
строка 1 Символ 1 Ошибка: Индекс выходит за пределы допустимого диапазона Код 800А 0009 |
вы ему параметр не передали
в командной строке напишите test.vbs привет |
Цитата:
|
Цитата:
Код:
TEST.VBS 123 Код:
TEST.VBS |
Вложений: 1
вот скрин
|
напишите
test.vbs привет |
Вложений: 1
|
Цитата:
|
Цитата:
Конечно я просил у них поддержки, вот что ответили: Цитата:
Вот еще вопрос: а скрипт должен лежать с рядом с базой данных или как ??? |
Вложений: 1
Вот скрин каталогов, которые создаются при запуске bat
|
Цитата:
Цитата:
|
amel27
Вот что мне ответили на соседнем форуме по поводу нашего кода: Цитата:
Цитата:
Цитата:
|
Цитата:
Синхронный запуск скрипта - это лишь половина проблемы. Вторая половина - получить эти самые (вновь введенные) данные: либо программа должна уметь их передавать в скрипт (через параметры), либо скрипт должен как-то (?) сам отбирать эти данные из таблиц (среди остальных) |
Цитата:
Цитата:
Код:
данный код предназначен для демонстрационных целей |
Цитата:
Цитата:
скажем, что вернет (имя поля или значение) для таблицы qdfOrders и поля Address: Код:
TEST.VBS [Address] |
Вот еще советы с приветливого форума:
Цитата:
Цитата:
|
NecroTYN, пример VBS на дабавление/изменение таблицы заказов:
Код:
C:\TEST\Script.vbs /[ID] P.S. критерий разделения услуг/товара в топике не раскрыт |
опять ругается, пишет вот как
|
Цитата:
скрипт строит структуру каталогов по переданному ID из заказанного |
amel27,
Спасибо, все заработало |
ВСЕМ Привет!!!
Цитата:
Все товары и услуги находятся в таблице tblOrdersProducts и делятся на категории - товары и услуги (поле ProductsCategoryCalc), так вот, нужно сделать выборку чтобы папки не создавались на категорию "УСЛУГИ" |
Цитата:
|
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Цитата:
Хотя наверное по категории будет всетаки лучше, потому что услуг может и добавиться |
Цитата:
Цитата:
вариант с именем, имя продукта должно быть уникальным и присутствовать в справочнике: P.S. Сравнение идет с учетом регистра: "Услуга"<>"УСЛУГА" |
Цитата:
Цитата:
|
---------------------------
Windows Script Host --------------------------- Сценарий: C:\Program Files (x86)\ClientsCount\makedir.vbs Строка: 9 Символ: 1 Ошибка: Индекс выходит за пределы допустимого диапазона Код: 800A0009 Источник: Ошибка выполнения Microsoft VBScript --------------------------- ОК --------------------------- |
......... вот блин, перепробовал все до чего смог додуматься, так ниче и не получилось больше, даже тест.вбс не запустился.... :help:
|
Цитата:
2. Проверить работу скрипта можно, передав ID реальной записи из tblOrdersProducts: Код:
C:\TEST\Script.vbs /37 |
Цитата:
1.создал bat файл -- Код:
c:\Program Files (x86)\ClientsCount\makedir.vbs / [5] 3.в программе в "триггерах" указал запуск bat -- после добавления/изменения 4.в программе в "триггерах" указал запуск makedir.vbs -- после добавления/изменения результат тот же: поправил bat на Код:
makedir.vbs / [5] Если убрать квадратные скобки в батнике -- выскакивает первая ошибка |
.......... НННННда !!!!!!!!!! Не прошло и ШЕСТИ страниц как до меня дошло, что сам VBS запускать не надо
Простите уж тупицу :sorry: Вопрос о передаче параметров скрипту тоже решился, В триггерах при запуске файла надо указать так: C:\Program Files (x86)\ClientsCount\makedir.vbs /[ID] и все работает нормано По поводу скрипта еще пара вопросов, как сделать проверку создаваемых папок ? как в папке с адресом клиента создать папку документы ? как в папке с именем товара создать папки Замер Модель Раскрой Эскизы ? как правильно прописать путь создания папок (возможно к серверу) ? ...и еще такой момент, я писал: Цитата:
|
Цитата:
Цитата:
Цитата:
|
|
Цитата:
P.S. А еще можно будет обратиться за помощью ??? |
Цитата:
Цитата:
|
|
Время: 18:15. |
Время: 18:15.
© OSzone.net 2001-