Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> автоматическое Создание папок из имен полей .... 
:(
    Опции темы
NecroTYN
Дата 29.6.2011, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.6.2011

Репутация: нет
Всего: нет



Есть база данных включающая в себя следующие таблицы: ... Заказы,клиенты,продукты....

...А интерресует меня вот какой вопрос: Мне нужно чтобы при создании ЗАКАЗА автоматически создавалась группа папок в определенном месте диска (D:\Documents\Заказы\...), а имена этих папок создавались бы из определенных полей таблиц. Например:
после создания заказа должны появится папки по указанному пути с таким вот именем:
D:\Documents\Заказы\ул.Красная\Сергеев\
где ул.Красная это адрес клиента, Сергеев это Фамилия клиента,
 В папке "Сергеев" в свою очередь создаются папки (Стойка компьютерная,Стол письменный,Шкаф купе), имена которых берутся из подтаблицы "продукты" (в которой мы собственно и составляем заказ), каждая из которых   содержит в себе еще 4 папки с неизменными названиями(Замер,Модель,Раскрой,Эскизы)....

С нетерпением жду ответа   

Скрин прилагаю http://s1.ipicture.ru/]user posted image

Это сообщение отредактировал(а) NecroTYN - 30.6.2011, 05:30

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  ________________________.jpg 30,63 Kb
PM MAIL   Вверх
Akina
Дата 30.6.2011, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(NecroTYN @  29.6.2011,  23:36 Найти цитируемый пост)
Мне нужно чтобы при создании ЗАКАЗА автоматически создавалась группа папок в определенном месте диска (D:\Documents\Заказы\...), а имена этих папок создавались бы из определенных полей таблиц. 

Ну и делай - какие проблемы? Получи программно список полей из TableDef, и вперёд...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
NecroTYN
Дата 30.6.2011, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.6.2011

Репутация: нет
Всего: нет



Цитата(Akina @  30.6.2011,  08:27 Найти цитируемый пост)
Ну и делай - какие проблемы? Получи программно список полей из TableDef, и вперёд...


 smile 

...извините, но я не являюсь програмистом, потому и прошу помощи у знающих...

Вообще то, речь идет не о простой базе данных, а о программе работающей с БД Access. 
 Программка довольно таки гибкая в настройках - настраиваются все поля таблиц

Вот что мне ответили в техподдержке

Цитата

Вам надо написать файл-скрипт .VBS, который будет создавать папки в файловой системе, основываясь на переданные в него параметры.
Подробности - типовой вопрос №14
Далее нужно задать триггер на добавление на таблицу "Заказы", но в качестве команды указать не SQL-инструкцию, а запуск данного файла.



может поможете ????
PM MAIL   Вверх
Akina
Дата 30.6.2011, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Вы правда полагаете, что я буду допиливать коммерческий софт?

Заодно спросите, как они себе представляют триггеры на Аксессовской базе... и нам расскажите - чертовски интересно.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
NecroTYN
Дата 30.6.2011, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.6.2011

Репутация: нет
Всего: нет



Цитата(Akina @  30.6.2011,  17:17 Найти цитируемый пост)
Вы правда полагаете, что я буду допиливать коммерческий софт?


Я не полагаю что ВЫ будете ДОПИЛИВАТЬ, я просто прошу помощи в создании этого самого скрипта о котором мне говорят

порылся в гугле, нашел вот это : 

Цитата

Set FSO = CreateObject("Scripting.FileSystemObject")

 If Not FSO.FolderExists("C:\Program Files\Symantec AntiVirus") Then 
 FSO.CreateFolder("C:\Program Files\Symantec AntiVirus")
 End If


как я понимаю это для проверки и создания папок с конкретным именем....
В таком случае меня интересует вот какой вопрос: какой командой создавать папку из имен полей нескольких таблиц ???


Цитата(Akina @  30.6.2011,  17:17 Найти цитируемый пост)
Заодно спросите, как они себе представляют триггеры на Аксессовской базе... и нам расскажите - чертовски интересно.


вот скрины свойств и настроек полей







Это сообщение отредактировал(а) NecroTYN - 3.7.2011, 09:55
PM MAIL   Вверх
Akina
Дата 1.7.2011, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(NecroTYN @  30.6.2011,  21:29 Найти цитируемый пост)
 какой командой создавать папку из имен полей нескольких таблиц ???

Сначала надо эти имена получить. Это делается, как я сказал выше, через TableDef. Пример найдёте во встроенной справке или на МСДН по указанному термину.
А затем просто укажете содержащую добытое имя переменную в приведённом Вами коде.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
NecroTYN
Дата 1.7.2011, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.6.2011

Репутация: нет
Всего: нет



Цитата(Akina @  1.7.2011,  12:29 Найти цитируемый пост)
Сначала надо эти имена получить.


имя 1ой папки-берется из таблицы qdfOrders - Address
  имя 2ой папки-берется из таблицы qdfMain - Client
  имя 3ей папки-берется из таблицы tblOrdersProducts - Product

"третьих" папок должно создаваться столько, сколько заказано продуктов, за исключением услуг(которые кстати тоже находятся в таблице tblOrdersProducts), в каждой из них создаются следующие папки: 

Замер
Модель
Раскрой
Эскизы
Документы


Цитата

А затем просто укажете содержащую добытое имя переменную в приведённом Вами коде.

 smile 
...а вот из этого я ничего не понял.. smile 



PM MAIL   Вверх
NecroTYN
Дата 4.7.2011, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.6.2011

Репутация: нет
Всего: нет



Akina Доброго дня !!!

по поводу вышеизложенного вопроса создали вот такой вот код

Цитата

MakeDir.VBS qdfOrders.Address qdfMain.Client tblOrdersProducts.Product


MakeDir.VBS:

Цитата

Код:
Set FSO = CreateObject("Scripting.FileSystemObject")

strPath="C:\Documents"
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath & "\Заказы"
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath &"\"& WScript.Arguments(0)
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath &"\"& WScript.Arguments(1)
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath &"\"& WScript.Arguments(2)
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)


работает вот с таким результатом может подскажете что не так ????

Это сообщение отредактировал(а) Akina - 4.7.2011, 14:24

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  1.jpg 15,71 Kb
PM MAIL   Вверх
Akina
Дата 4.7.2011, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Ну и всё верно - получено ровно то, что написано кодом. Какие проблемы?
Если не понимаете, почему получается именно так - возьмите лист бумаги и пройдите по всем строкам своей программы, записывая, как по мере её выполнения изменяется содержимое переменной strPath. А заодно поймёте, что надо изменить...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 4.7.2011, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(NecroTYN @  4.7.2011,  15:13 Найти цитируемый пост)
вот 

Так правильно: strPath наращивается и в результате создаётся такое вот дерево каталогов. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
NecroTYN
Дата 4.7.2011, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.6.2011

Репутация: нет
Всего: нет



Цитата(Akina @  4.7.2011,  14:22 Найти цитируемый пост)
А заодно поймёте, что надо изменить...


да в том то идело, что Я не могу всего этого понять, будте добры, подскажите

PM MAIL   Вверх
Данкинг
Дата 4.7.2011, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(NecroTYN @  4.7.2011,  15:37 Найти цитируемый пост)
подскажите

Тебе подсказали же:
Цитата(Akina @  4.7.2011,  15:22 Найти цитируемый пост)
 как по мере её выполнения изменяется содержимое переменной strPath

 smile Я думаю, кое-какие операции следует с этой переменной проделывать после создания каждой новой папки. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
NecroTYN
Дата 5.7.2011, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.6.2011

Репутация: нет
Всего: нет



посмотрите пожалуйста это:

Код

Dim sDbPath 'путь к файлу БД
sDbPath = CreateObject("Wscript.Shell").SpecialFolders("MyDocuments") & "\Учет клиентов\DemoDatabase.mdb"

Dim Con 'объект Connection
Set Con = CreateObject("ADODB.Connection") 'создание объекта Connection
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDbPath & ";Persist Security Info=False" 'открываем соединение с базой данных

Dim sSql 'SQL инструкция
sSql = "SELECT o.Address,m.Client,op.Product FROM tblOrdersProducts op,tblOrders o,tblMain m WHERE m.ID=o.ClientID AND o.ID=op.OrderID AND 

op.ID="& Mid(WScript.Arguments(0),2)
Set oRec = Con.Execute(sSql)  'выполняем SQL инструкцию

Dim FSO 'объект FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")

Dim strPath 'путь к папке
strPath="C:\Documents"
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath & "\Заказы"
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath &"\"& Replace(oRec.Fields(0).Value,"""","")
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath &"\"& Replace(oRec.Fields(1).Value,"""","")
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath &"\"& Replace(oRec.Fields(2).Value,"""","")
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)

Con.Close 'закрываем Connection
Set Con = Nothing 'очищаем переменную
ругается:

Это сообщение отредактировал(а) Akina - 5.7.2011, 10:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0609 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.