VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Ответить
 • Просмотры: 2
Аватара пользователя
NecroTYN

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение NecroTYN »

ВСЕМ Привет!!!




Цитата amel27:



P.S. критерий разделения услуг/товара в топике не раскрыт
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




Раскрываю критерий разделения услуг/товара:

Все товары и услуги находятся в таблице tblOrdersProducts и делятся на категории - товары и услуги (поле ProductsCategoryCalc), так вот, нужно сделать выборку чтобы папки не создавались на категорию "УСЛУГИ"
Аватара пользователя
NecroTYN

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение NecroTYN »

Цитата NecroTYN:



поле ProductsCategoryCalc
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




Нет такого поля в таблице tblOrdersProducts - откройте базу данных в MS Access и убедитесь в этом, а суффикс CALC говорит о том, что это поле (скорее всего) рассчетное. Тип товара есть в tblProducts и я не вижу никаких идентификаторов для связи с tblOrdersProducts кроме наименования товара, но оно не является уникальным со всеми вытекающими последствиями.
Аватара пользователя
amel27

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение amel27 »

Цитата amel27:



Нет такого поля в таблице tblOrdersProducts
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS





Цитата amel27:



а суффикс CALC говорит о том, что это поле (скорее всего) рассчетное
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




это то все правильно говорите, я его сам туда назначил из таблицы tblProducts, так не получится ????
Аватара пользователя
NecroTYN

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение NecroTYN »

Цитата NecroTYN:



я его сам туда назначил из таблицы tblProducts, так не получится ????
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS





Цитата NecroTYN:



а если путем перечисления "услуг" -- их всего то 5...
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




да мне в общем-то всё равно - вам решать, можно и по наименованию сравнить... только ни один из этих способов не является идеальным, так что сначала взвесьте все "за" и "против", с расчетом "на перспективу"
Аватара пользователя
amel27

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение amel27 »

Цитата amel27:



только ни один из этих способов не является идеальным
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




а какой есть идеальный ???




Цитата amel27:



так что сначала взвесьте все "за" и "против", с расчетом "на перспективу"
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




...ну а ВЫ что посоветуете ???



Хотя наверное по категории будет всетаки лучше, потому что услуг может и добавиться
Аватара пользователя
NecroTYN

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение NecroTYN »

Цитата NecroTYN:



какой есть идеальный ???
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




нормализованный, когда в таблицах стоит ID из справочника (tblProducts), а не имя


Цитата NecroTYN:



а ВЫ что посоветуете ???
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




Ваша база данных, вам и решать... Изображение

вариант с именем, имя продукта должно быть уникальным и присутствовать в справочнике:
читать дальше »




Код:

Код: Выделить всё

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 Top 1 p.ProductType FROM tblOrdersProducts op,tblProducts p WHERE op.Product=p.ProductName AND op.ID="& Mid(WScript.Arguments(0),2)
Set oRec = Con.Execute(sSql)  'выполняем SQL инструкцию
If oRec.EOF Then WScript.Quit 'если продукта нет в справочнике, то выход
sType = oRec.Fields(0).Value  'тип товара
If Left(sType,6)="Услуга" Then WScript.Quit 'если Услуга, то выход
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 'очищаем переменную





P.S. Сравнение идет с учетом регистра: "Услуга""УСЛУГА"
Аватара пользователя
amel27

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение amel27 »

Цитата NecroTYN:



а какой есть идеальный ???
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




Идеальных не бывает. На практике обычно считается достаточным, если таблицы базы нормализованы в соответствии с
нормальной форме Бойса — Кодда
.


Цитата amel27:



нормализованный,
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




Поставил бы три благодарности, кабы можно было.
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение Iska »

---------------------------

Windows Script Host

---------------------------

Сценарий: C:\Program Files (x86)\ClientsCount\makedir.vbs

Строка: 9

Символ: 1

Ошибка: Индекс выходит за пределы допустимого диапазона

Код: 800A0009

Источник: Ошибка выполнения Microsoft VBScript



---------------------------

ОК

---------------------------
Ответить

Вернуться в «Скриптовые языки администрирования Windows»