powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нужна помощь в создании VBS скрипта
68 сообщений из 68, показаны все 3 страниц
Нужна помощь в создании VBS скрипта
    #37893835
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте господа форумчане !!!
Помогите пожалуйста с решением следующей задачи -
Есть код для вычисления даты выдачи заказа по количеству рабочих дней (см. под спойлером)


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
Option Explicit

Const adOpenStatic     = 3
Const adLockOptimistic = 3

Dim strDatabase
Dim lngID

Dim objFSO
Dim objConnection
Dim objRecordset

Dim dtStartDate
Dim dtEndDate
Dim lngCount

Dim prevLocale


If WScript.Arguments.Count = 2 Then
    strDatabase = Mid(WScript.Arguments.Item(0), 2)
    lngID = Mid(WScript.Arguments.Item(1), 2)
    
    Set objFSO        = WScript.CreateObject("Scripting.FileSystemObject")
    Set objConnection = WScript.CreateObject("ADODB.Connection")
    Set objRecordset  = WScript.CreateObject("ADODB.Recordset")
    
    If objFSO.FileExists(strDatabase) Then
        objConnection.Open "Provider = Microsoft.Jet.OLEDB.4.0; " & _
            "Data Source = '" & strDatabase & "'"
        
        With objRecordset
            .Open "SELECT * FROM qdfOrders WHERE ID = " & CStr(lngID) & "", objConnection, adOpenStatic, adLockOptimistic
            dtStartDate = CDate(.Fields.Item("OrderDate").Value)
            .Close
            
            .Open "SELECT * FROM tblHolidays", objConnection, adOpenStatic, adLockOptimistic
            
            dtEndDate = dtStartDate
            lngCount = 0
            
            Do Until lngCount >= 21
                dtEndDate = DateAdd("d", 1, dtEndDate)
                
                Select Case WeekdayName(Weekday(dtEndDate))
                    Case "суббота", "воскресенье"
                    
                    Case Else
                        prevLocale = SetLocale("en-us")
                        .Filter = "HolidayDate = #" & dtEndDate & "#"
                        SetLocale(prevLocale)
                        
                        If .RecordCount = 0 Then
                            lngCount = lngCount + 1
                        End If
                End Select
            Loop
            
            .Close
        End With
        
        prevLocale = SetLocale("en-us")
        objConnection.Execute "UPDATE qdfOrders SET DoneDate = #" & dtEndDate & "# WHERE ID = " & CStr(lngID) & ""
        SetLocale(prevLocale)
        
        objConnection.Close
    Else
        WScript.Echo "Database file [" & strDatabase & "] not found"
    End If
    
    Set objRecordset  = Nothing
    Set objConnection = Nothing
    Set objFSO        = Nothing
Else
    WScript.Echo "Usage from toolbar on [Склад и торговля]:"
    WScript.Echo "" & WScript.ScriptName & " /[CurrentDB] /[ID]"
End If

WScript.Quit 0



Что в нем не так ???

1.Нужно сделать чтобы количество рабочих дней (в данном случае 21) можно было менять в таблице Б/Д - qdfOrders поле "Time"
2.Расчет выходных дней надо сделать следующим образом :
а) Заполняем «tblHolidays» списком суббот, воскресений, известных праздников N-ного года.
б) Посему из алгоритма выкидываем проверку на субботы и воскресенья.
в) Выправление заполненного списка до реальности (перенос выходных дней с субботы и воскресенья на будние дни) оставляем на совести оператора.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37893902
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База не в аксессе ли?
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37893943
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
база в аксессе, но используется через другую программу http://www.simple-soft.ru/ProductsCount.htm
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37894063
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN...
Есть код для вычисления даты выдачи заказа по количеству рабочих дней
...

Что в нем не так ???
...

Да всё "так". Неужели неправильно считает?
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37894103
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаДа всё "так". Неужели неправильно считает?
считает то правильно, но как я описАл выше нужно реализовать следующее:
нужно сделать чтобы количество дней могло меняться оператором, и реализовать выборку выходных дней из отдельной таблицы «tblHolidays», которую в свою очередь заполняет оператор...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37894162
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,

> нужно сделать чтобы количество дней могло меняться оператором,
добавьте ещё один параметр в скрипт

> и реализовать выборку выходных дней из отдельной таблицы «tblHolidays»
вроде оно у Вас уже есть
Код: vbnet
1.
                .Open "SELECT * FROM tblHolidays", objConnection, adOpenStatic, adLockOptimistic



> которую в свою очередь заполняет оператор...
заполнять тоже в скрипте надо ?
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37894200
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищазаполнять тоже в скрипте надо ?
Нет конечно, заполнять в таблице Б/Д - qdfOrders поле "Time",
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37894213
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
тогда у Вас почти всё есть. Надеюсь, добавить параметр скрипту не проблема.

ЗЫ: не думали над тем, чтобы в tblHolidays вносить ВСЕ выходные, включая "обычные" субботы и воскресенья?
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37894342
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаЗЫ: не думали над тем, чтобы в tblHolidays вносить ВСЕ выходные, включая "обычные" субботы и воскресенья?
...ага, именно об этом я и говорю...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896292
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может все таки кто нибудь поможет ???!!!
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896504
Скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
это не помощь...
Пробуйте.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
' 1) количество рабочих дней читается из таблицы Б/Д - qdfOrders поле "Time", тип целое.
' 2) выходные и праздничные дни - в таблице tblHolidays, заполение на совести оператора.

Option Explicit

Const adOpenStatic     = 3
Const adLockOptimistic = 3

Dim strDatabase
Dim lngID

Dim objFSO
Dim objConnection
Dim objRecordset

Dim dtStartDate
Dim dtEndDate
Dim lngCount

Dim prevLocale


If WScript.Arguments.Count = 2 Then
    strDatabase = Mid(WScript.Arguments(0), 2)
    lngID = Mid(WScript.Arguments(1), 2)
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FileExists(strDatabase) Then
        prevLocale = SetLocale("en-us")
        Set objConnection = CreateObject("ADODB.Connection")
        Set objRecordset  = CreateObject("ADODB.Recordset")
        objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& strDatabase &";"
        
        With objRecordset
            .Open "SELECT * FROM qdfOrders WHERE ID = " & lngID & "", objConnection, adOpenStatic, adLockOptimistic
            dtStartDate = .Fields("OrderDate").Value
	    lngCount    = .Fields("Time").Value 
	    .Close
			
            .Open _
                "SELECT * FROM tblHolidays"& _
                " WHERE HolidayDate BETWEEN #"& dtStartDate &"#"& _
                " AND #"& DateAdd("d", lngCount*2+1, dtStartDate) &"#", _
                objConnection, adOpenStatic, adLockOptimistic
            
            dtEndDate = DateAdd("d", lngCount, dtStartDate)
			
            .Filter  = "HolidayDate>=#"& dtStartDate &"# AND HolidayDate<=#"& dtEndDate &"#" 
            lngCount = .RecordCount
            
            Do While lngCount>0
                dtStartDate = DateAdd("d", 1, dtEndDate)
                dtEndDate   = DateAdd("d", lngCount, dtEndDate)
                .Filter  = "HolidayDate>=#"& dtStartDate &"# AND HolidayDate<=#"& dtEndDate &"#"
                lngCount = .RecordCount
            Loop
			
            .Close
        End With
        
        objConnection.Execute "UPDATE qdfOrders SET DoneDate=#" & dtEndDate & "# WHERE ID=" & lngID
        
        objConnection.Close
        Set objRecordset  = Nothing
        Set objConnection = Nothing
        SetLocale(prevLocale)
    Else
        WScript.Echo "Database file [" & strDatabase & "] not found"
    End If
    
    Set objFSO = Nothing
Else
    WScript.Echo "Usage from toolbar on [Склад и торговля]:"
    WScript.Echo "" & WScript.ScriptName & " /[CurrentDB] /[ID]"
End If

WScript.Quit 0


...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896598
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СкукотищаПробуйте.
Спасибо огромное !!!
... но к сожалению не сработало...
...может нужно прописывать путь к Б/Д ???

Скукотищаэто не помощь...
???
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896601
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYNСкукотищаэто не помощь...
???

тут по ссылочке - 12381461
разъясняется значение термИна "помощь"

зы
там, правда, для "школьников",
но жителей ЧЕЛЯБИНСКа, видимо, можно к ним отнести ... :))
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896615
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
off topic
qwerty112
qwerty112тут по ссылочке разъясняется значение термИна "помощь"

Спасибо, прочитал - понял...
qwerty112но жителей ЧЕЛЯБИНСКа, видимо, можно к ним отнести ... :))
видимо некоторых и можно, возможно включая и меня...
...но тем не менее давайте не будем заострять внимание на личностях и их месте жительства
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896652
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> NecroTYN
> ... но к сожалению не сработало...
Как именно "не сработало"? Run-time error, не обновило DoneDate в qdfOrders, неверно рассчитало DoneDate, что-то ещё?

> ...может нужно прописывать путь к Б/Д ???
путь к базе, как и в Вашем скрипте, передается первым параметром...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896697
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаКак именно "не сработало"? Run-time error, не обновило DoneDate в qdfOrders, неверно рассчитало DoneDate, что-то ещё?
поле просто остается пустым
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896700
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скукотища
Код: vbnet
1.
2.
3.
4.
5.
    
...
    If objFSO.FileExists(strDatabase) Then
        prevLocale = SetLocale("en-us")
...



имхо, тут что-то "не то"
так наверное
Код: vbnet
1.
2.
3.
4.
5.
6.
    
...
    If objFSO.FileExists(strDatabase) Then
        prevLocale = GetLocale()
        SetLocale("en-us")
...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896711
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,

попробовал по вашему совету - тоже не сработало...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896712
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,

пробовал вешать исполнение как на отдельную кнопку, так и на условие для поля таблицы...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896867
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,
полуофф
с SetLocale всё то
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896873
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаqwerty112,
+
полуофф
с SetLocale всё то

да, сори, виноват ...
смотрел на этих ихних МСДН-ах - http://support.microsoft.com/default.aspx?scid=kb;EN-US;232158
там, чё-то про это ничего не сказано ... ))

спасибо !
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896884
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,
полуофф
описание функций лучше искать не на саппорте, а именно на МСДН
Пример там такой-же хреновый, как и не саппорте, зато в описании упомянуто про возвращаемое функцией значение.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896892
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> NecroTYN,
> поле просто остается пустым

И никаких сообщений об ошибке? Не верю.
Учимся отлаживать скрипты:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
Option Explicit

Const adOpenStatic     = 3
Const adLockOptimistic = 3

Dim strDatabase
Dim lngID

Dim objFSO
Dim objConnection
Dim objRecordset

Dim dtStartDate
Dim dtEndDate
Dim lngCount

Dim prevLocale

'### for debug
dim s, k


If WScript.Arguments.Count = 2 Then
    strDatabase = Mid(WScript.Arguments(0), 2)
    lngID = Mid(WScript.Arguments(1), 2)
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FileExists(strDatabase) Then
        prevLocale = SetLocale("en-us")
        Set objConnection = CreateObject("ADODB.Connection")
        Set objRecordset  = CreateObject("ADODB.Recordset")
        objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& strDatabase &";"
        
        With objRecordset
            .Open "SELECT * FROM qdfOrders WHERE ID = " & lngID & "", objConnection, adOpenStatic, adLockOptimistic
            dtStartDate = .Fields("OrderDate").Value
	    lngCount    = .Fields("Time").Value 
	    .Close

'rem дата должна бы быть в формате m/d/yyyy
wscript.echo "start date: "& dtStartDate & vbtab &"days to deadline:  "& lngcount
			
'            .Open _
'                "SELECT * FROM tblHolidays"& _
'                " WHERE HolidayDate BETWEEN #"& dtStartDate &"#"& _
'                " AND #"& DateAdd("d", lngCount*2+1, dtStartDate) &"#", _
'                objConnection, adOpenStatic, adLockOptimistic

s="SELECT * FROM tblHolidays"& _
" WHERE HolidayDate BETWEEN #"& dtStartDate &"#"& _
" AND #"& DateAdd("d", lngCount*2+1, dtStartDate) &"#"

'rem в сторке запроса даты также должны бы быть в формате m/d/yyyy
wscript.echo s
.open s, objConnection, adOpenStatic, adLockOptimistic

            
            dtEndDate = DateAdd("d", lngCount, dtStartDate)

wscript.echo "deadline zero approximation: "& dtEndDate
			
            .Filter  = "HolidayDate>=#"& dtStartDate &"# AND HolidayDate<=#"& dtEndDate &"#" 
            lngCount = .RecordCount

k=0            
            Do While lngCount>0
                dtStartDate = DateAdd("d", 1, dtEndDate)
                dtEndDate   = DateAdd("d", lngCount, dtEndDate)
                .Filter  = "HolidayDate>=#"& dtStartDate &"# AND HolidayDate<=#"& dtEndDate &"#"
                lngCount = .RecordCount
k=k+1
wscript.echo "loop "& k
            Loop
			
            .Close
        End With
        
        'objConnection.Execute "UPDATE qdfOrders SET DoneDate=#" & dtEndDate & "# WHERE ID=" & lngID

s = "UPDATE qdfOrders SET DoneDate=#" & dtEndDate & "# WHERE ID=" & lngID
'rem дата должна бы быть в формате m/d/yyyy
wscript.echo s
objConnection.Execute s
        
        objConnection.Close
        Set objRecordset  = Nothing
        Set objConnection = Nothing
        SetLocale(prevLocale)
    Else
        WScript.Echo "Database file [" & strDatabase & "] not found"
    End If
    
    Set objFSO = Nothing
Else
    WScript.Echo "Usage from toolbar on [Склад и торговля]:"
    WScript.Echo "" & WScript.ScriptName & " /[CurrentDB] /[ID]"
End If

WScript.Quit 0


ЗЫ: сдаётся мне где-то таки спрятался On Error Resume Next ...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896906
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,
скрипт срабатывает, только вот не передает полю данных

выводится два сообщения
---------------------------
Windows Script Host
---------------------------
Usage from toolbar on [Склад и торговля]:
---------------------------
ОК
---------------------------
и

---------------------------
Windows Script Host
---------------------------
DateSearch.vbs /[CurrentDB] /[ID]
---------------------------
ОК
---------------------------
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896908
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
за которые как я понимаю отвечают строки с 95 по 98, вот только не знаю - нужны они или их можно удалить ???
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896911
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
скрипт надеется получить от Вас два параметра: /путь_к_базе /ИД_ЗАКАЗА (именно так, с лидирующими слешами).
Сообщения говорят о том, что Вы передаёте скрипту не два параметра.

В своём первом сообщении 12919685 Вы выложили скрипт, который якобы работает.
Сделайте его резервную копию.
Откройте блокнотом и замените код на, например, из этого 12931558 сообщения.
Сохраните, закройте блокнот.
Пробуйте.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896913
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYNза которые как я понимаю отвечают строки с 95 по 98, вот только не знаю - нужны они или их можно удалить ???Не надо их удалять.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896947
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно попробовал, не сработало

Как я уже говорил Б/Д используется программой http://www.simple-soft.ru/ProductsCount.htm
Передача параметров скрипту происходит следющим образом:
В триггерах при запуске файла надо указать так: C:\ Путь \DateSearch.vbs /[ID]

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

У меня имеются другие примеры именно рабочих(100% проверено) скриптов - если интересует

Скрипт для экспорта данных из файла *.xls в таблицу Б/Д
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
' VB Script Document
option explicit
' константы для работы с ADO
Const adDouble = 5, adDate = 7, adCurrency = 6, adBoolean = 11, adVarWChar = 202, adLongVarWChar = 203
Const adUseClient = 3, adOpenStatic = 3, adLockOptimistic = 3, adCmdText = &H1
Const adSchemaTables = 20, adSchemaColumns = 4
 
'1. получаем ID заказа:
Dim oArgs 'объекта для чтения параметров строки запуска файла
Set oArgs = WScript.Arguments 'получение объекта для чтения параметров строки запуска файла

Dim OrderID
OrderID = Trim(Replace(oArgs(0),"/","")) 'trim на всякий пожарный

'2. получаем путь к файлу
Dim oConMDB
Set oConMDB = CreateObject("ADODB.Connection")
'http://www.connectionstrings.com/access
With oConMDB
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .Open "D:\Documents\Склад и торговля\Backups\2012-01-13.mdb"
End With
 
Dim oRs, File
Set oRs = oConMDB.Execute("Select [FileEstimates] from [qdfOrders] Where ID = " & OrderID)
File = oRs("FileEstimates").Value
 
'3. открываем таблицу
Dim oConXLS
Set oConXLS = CreateObject("ADODB.Connection")
'http://www.connectionstrings.com/excel
With oConXLS
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .Properties("Extended Properties").Value = "Excel 8.0;IMEX=1;Hdr=Yes;Mode=Read;"
  .CursorLocation = adUseClient
  .Open File
End With
Dim oRsX
Set oRsX = oConXLS.Execute("Select * from [Общая$]")
Dim sSomeName, sUnit, sCalculatedQuantity, sAccompaniment, sManualAmount, sFactor, sTotalQuantity, sPrice, sTheCost,sOrderID
sOrderID = OrderID
 
'4. проходим по записям таблицы и забрасываем данные в MDB:
Do While Not (oRsX.EOF)
  sSomeName = oRsX("Наименование").Value
  sUnit = oRsX("Ед#из").Value
  sCalculatedQuantity = oRsX("Расч#кол").Value
  sAccompaniment = oRsX("Сопутствие").Value
  sManualAmount = oRsX("Ручн#кол").Value
  sFactor = oRsX("К-ф").Value
  sTotalQuantity = oRsX("Сумм#кол").Value
  sPrice = oRsX("Цена").Value
  sTheCost = oRsX("Стоимость").Value

  Set oRs = oConMDB.Execute("INSERT INTO [tblEstimatedOrder] " & _
  "(SomeName, Unit, CalculatedQuantity, Accompaniment, ManualAmount, Factor, TotalQuantity, Price, TheCost,OrderID) " & _
  "VALUES (CStr('" & sSomeName & "'), CStr('" & sUnit & "'), CDbl('" & sCalculatedQuantity & "'), CStr('" & sAccompaniment & "'), " & _
  "CCur('" & sManualAmount & "'), CDbl('" & sFactor & "'), CDbl('" & sTotalQuantity & "'), CCur('" & sPrice & "'), CCur('" & sTheCost & "'), CInt('" & sOrderID & "'))")
  oRsX.MoveNext
Loop

...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896949
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> NecroTYN
> Как я уже говорил Б/Д используется программой
Пардон, но ставить ProductsCount лень.


> Передача параметров скрипту происходит следющим образом:
> В триггерах при запуске файла надо указать так: C:\ Путь \DateSearch.vbs /[ID]

Так скрипту передаётся ОДИН параметр, - /[ID]. А надо ДВА.

Для данного скрипта надо указать
C:\Путь\DateSearch.vbs /[CurrentDB] /[ID]
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896956
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все сработало !!!
Спасибо ВАМ !!!

скукотищаДля данного скрипта надо указать
C:\Путь\DateSearch.vbs /[CurrentDB] /[ID]
Именно здесь и скрывалась загвоздка, т.к. я указывал только 1 параметр...

... но теперь при срабатывании скрипта вылетает несколько окон:

1.
---------------------------
Windows Script Host
---------------------------
start date: 7/29/2012 days to deadline: 21
---------------------------
ОК
---------------------------
2.
---------------------------
Windows Script Host
---------------------------
SELECT * FROM tblHolidays WHERE HolidayDate BETWEEN #7/29/2012# AND #9/10/2012#
---------------------------
ОК
---------------------------
3.
---------------------------
Windows Script Host
---------------------------
deadline zero approximation: 8/19/2012
---------------------------
ОК
---------------------------
4.
---------------------------
Windows Script Host
---------------------------
loop 1
---------------------------
ОК
---------------------------
5.
---------------------------
Windows Script Host
---------------------------
loop 2
---------------------------
ОК
---------------------------
6.
---------------------------
Windows Script Host
---------------------------
UPDATE qdfOrders SET DoneDate=#8/30/2012# WHERE ID=3
---------------------------
ОК
---------------------------

Можно ли их как то отключить ???
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896961
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
используйте вариант "без окон". Отсюда 12929867 .
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896974
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

СПАСИБО ОГРОМНОЕ !!!
ВЫ мне очень помогли

Не знаю как ВАС отблагодарить...
я занимаюсь проектированием корпусной мебели, может смогу чем помочь ???
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896977
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
да не за что.

ЗЫ: внимательно отнеситесь к заполнению tblHolidays.
А то странно как-то получилось: 29.07.2012 + 21 рабочий день = 30.08.2012
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37896984
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищавнимательно отнеситесь к заполнению tblHolidays.
Да действительно, ошибочка закралась - 2 раза пару вых. дней ввел
Спасибо
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37897009
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...Блин, не все так гладко как хотелось, некоторые даты считаются не правильно, привожу скрин для примера:
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37897640
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
сохраните изменения, внесённые в tblHolidays. И все даты будут считаться правильно.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37897914
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищасохраните изменения, внесённые в tblHolidays. И все даты будут считаться правильно.
ну так я уже заново все очистил - заполнил на 2 раза, и выдает дату на выходные дни, чего не надо
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37897940
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
СОХРАНИТЕ изменения в tblHolidays. Например, закрыв форму редактирования.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37897958
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаСОХРАНИТЕ изменения в tblHolidays. Например, закрыв форму редактирования.
что я сделал не так:
1. заполнил все даты
2.закрыл таблицу "Выходные"
3.вышел из программы
4.запустил программу заново
5.проверил работоспособность скрипта - см. скрин
6.проверил таблицу "Выходные" - все в порядке
7.написал ВАМ
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37897970
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
... всё правильно.

Такое впечатление, что запускается какой-то другой скрипт...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898004
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаТакое впечатление, что запускается какой-то другой скрипт...
ЭЭЭЭ, это как ???
для расчета даты у меня только один скрипт и никакого другого нет, да и в данный момент (стадия разработки приложения) все остальные скрипты отключены...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898118
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> NecroTYN
> да и в данный момент (стадия разработки приложения) все остальные скрипты отключены

Вам - верю.
но проверить стоит...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
'********************************
' тестовый скрипт
' при отсутствии ошибок выводит два сообщения:
' -описание полей таблицы tblHolidays
' -содержимое таблицы tblHolidays (частично)
'
' принимает один параметр /[CurrentDB]
'
'********************************
option explicit

dim fso,c,r,f,s,k
dim db

if wscript.arguments.count<>1 then
  wscript.echo "Usage from toolbar on [Склад и торговля]:" & vbcrlf & WScript.ScriptName & " /[CurrentDB]"
else
  db=mid(wscript.arguments(0),2)
  set fso=createobject("scripting.filesystemobject")
  if not fso.fileexists(db) then
    wscript.echo "Database file [" & db & "] not found" 
  else
    set c=createobject("adodb.connection")
    c.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& db &";"
    set r=createobject("adodb.recordset")
    r.open "select * from tblHolidays",c,0,1,1
    
    s=""
    for each f in r.fields
      s=s & vbcrlf & f.name &", "& getadTypeName(f.type)
    next
    set f=nothing
    wscript.echo "Поля tblHolidays:"& s

    wscript.echo "Даные tblHolidays:"& vbcrlf & r.getstring

    r.close: set r=nothing
    c.close: set c=nothing
  end if
  set fso=nothing

end if
wscript.quit 0

function getadTypeName(t)
dim s
  select case t
    case 0: s="adEmpty"
    case 2 : s="adSmallInt"
    case 3 : s="adInteger"
    case 4 : s="adSingle"
    case 5 : s="adDouble"
    case 6 : s="adCurrency"
    case 7 : s="adDate"
    case 8 : s="adBSTR"
    case 9 : s="adIDispatch"
    case 10 : s="adError"
    case 11 : s="adBoolean"
    case 12 : s="adVariant"
    case 13 : s="adIUnknown"
    case 14 : s="adDecimal"
    case 16 : s="adTinyInt"
    case 17 : s="adUnsignedTinyInt"
    case 18 : s="adUnsignedSmallInt"
    case 19 : s="adUnsignedInt"
    case 20 : s="adBigInt"
    case 21 : s="adUnsignedBigInt"
    case 64 : s="adFileTime"
    case 72 : s="adGUID"
    case 128 : s="adBinary"
    case 129 : s="adChar"
    case 130 : s="adWChar"
    case 131 : s="adNumeric"
    case 132 : s="adUserDefined"
    case 133 : s="adDBDate"
    case 134 : s="adDBTime"
    case 135 : s="adDBTimeStamp"
    case 136 : s="adChapter"
    case 138 : s="adPropVariant"
    case 139 : s="adVarNumeric"
    case 200 : s="adVarChar"
    case 201 : s="adLongVarChar"
    case 202 : s="adVarWChar"
    case 203 : s="adLongVarWChar"
    case 204 : s="adVarBinary"
    case 205 : s="adLongVarBinary"
    case 8192: s="adArray
    case else: s="adHZ"
  end select
  getadTypeName=s
end function

...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898239
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищано проверить стоит...
Вот что пишет

---------------------------
Windows Script Host
---------------------------
Сценарий: C:\Program Files\ProductsCount\TestData.vbs
Строка: 87
Символ: 26
Ошибка: Незавершенная строковая константа
Код: 800A0409
Источник: Ошибка компиляции Microsoft VBScript

---------------------------
ОК
---------------------------
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898267
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
упс.
Пардон, не проверил.
Код: vbnet
1.
2.
3.
4.
5.
'Поправьте, плз
'есть:
    case 8192: s="adArray
'надо (кавычка в конце строки):
    case 8192: s="adArray"
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898279
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

поправил, вот результат:
1
---------------------------
Windows Script Host
---------------------------
Поля tblHolidays:

ID, adInteger

HolidayDate, adDate

Description, adVarWChar
---------------------------
ОК
---------------------------


---------------------------
Windows Script Host
---------------------------
2Даные tblHolidays:

1 01.07.2012 Воскресенье
2 07.07.2012 Суббота
3 08.07.2012 Воскресенье
4 14.07.2012 Суббота
5 15.07.2012 Воскресенье
6 21.07.2012 Суббота
7 22.07.2012 Воскресенье
8 28.07.2012 Суббота
9 29.07.2012 Воскресенье
10 04.08.2012 Суббота
11 05.08.2012 Воскресенье
12 11.08.2012 Суббота
13 12.08.2012 Воскресенье
14 18.08.2012 Суббота
15 19.08.2012 Воскресенье
16 25.08.2012 Суббота
17 26.08.2012 Воскресенье
18 01.09.2012 Суббота
19 02.09.2012 Воскресенье
20 08.09.2012 Суббота
21 09.09.2012 Воскресенье
22 15.09.2012 Суббота
23 16.09.2012 Воскресенье
24 22.09.2012 Суббота
25 23.09.2012 Воскресенье
26 29.09.2012 Суббота
27 30.09.2012 Воскресенье
28 06.10.2012 Суббота
29 07.10.2012 Воскресенье
30 13.10.2012 Суббота
31 14.10.2012 Воскресенье
32 20.10.2012 Суббота
33 21.10.2012 Воскресенье
34 27.10.2012 Суббота
35 28.10.2012 Воскресенье
36 03.11.2012 Суббота
37 04.11.2012 Воскресенье
38 10.11.2012 Суббота
39 11.11.2012 Воскресенье
40 17.11.2012 Суббота
41 18.11.2012 Воскресенье
42 24.11.2012 Суббота
43 25.11.2012 Воскресенье
44 01.12.2012 Суббота
45 02.12.2012 Воскресенье
46 08.12.2012 Суббота
47 09.12.2012 Воскресенье
48 15.12.2012 Суббота
49 16.12.2012 Воскресенье
50 22.12.2012 Суббота
51 23.12.2012 Воскресенье
52 29.12.2012 Суббота
53 30.12.2012 Воскресенье

---------------------------
ОК
---------------------------
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898364
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
странно. И чем дальше, тем страннее. Должно правильно отрабатывать на практически любых датах.
Можно попробовать, изменить скрипт 12929867 , но это врядли поможет...

найти
Код: vbnet
1.
Const adLockOptimistic = 3


Код: vbnet
1.
        Set objRecordset  = CreateObject("ADODB.Recordset")



заменить на
Код: vbnet
1.
2.
Const adLockOptimistic = 3
Const adUseClient      = 3


Код: vbnet
1.
2.
        Set objRecordset  = CreateObject("ADODB.Recordset")
        objConnection.CursorLocation = adUseClient

...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898438
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NecroTYN,

проблема, думаю, в формате даты - пробуй в SQL командах (SELECT, UPDATE) прописать форматированую дату - Format(dtDate, "yyyy-MM-dd") - должно помоч.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898471
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NecroTYN,
оказывается нет в VBS функции Format. Ошибся. Тогда могу только предложить перейти на VBA.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898527
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаМожно попробовать, изменить скрипт

---------------------------
Windows Script Host
---------------------------
Сценарий: C:\Program Files\ProductsCount\DateSearch.vbs
Строка: 35
Символ: 9
Ошибка: Требуется объект: '[undefined]'
Код: 800A01A8
Источник: Ошибка выполнения Microsoft VBScript

---------------------------
ОК
---------------------------
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898767
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NecroTYN,

вот нашел, добрые люди уже придумали реализацию Format на VBS. Пополнил скрипт, должно работать корректно.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
' 1) количество рабочих дней читается из таблицы Б/Д - qdfOrders поле "Time", тип целое.
' 2) выходные и праздничные дни - в таблице tblHolidays, заполение на совести оператора.

Option Explicit

Const adOpenStatic     = 3
Const adLockOptimistic = 3

Dim strDatabase
Dim lngID

Dim objFSO
Dim objConnection
Dim objRecordset

Dim dtStartDate
Dim dtEndDate
Dim lngCount

Dim prevLocale


If WScript.Arguments.Count = 2 Then
    strDatabase = Mid(WScript.Arguments(0), 2)
    lngID = Mid(WScript.Arguments(1), 2)
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FileExists(strDatabase) Then
        prevLocale = SetLocale("en-us")
        Set objConnection = CreateObject("ADODB.Connection")
        Set objRecordset  = CreateObject("ADODB.Recordset")
        objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& strDatabase &";"
        
        With objRecordset
            .Open "SELECT * FROM qdfOrders WHERE ID = " & lngID & "", objConnection, adOpenStatic, adLockOptimistic
            dtStartDate = .Fields("OrderDate").Value
	    lngCount    = .Fields("Time").Value 
	    .Close
			
            .Open _
                "SELECT * FROM tblHolidays"& _
                " WHERE HolidayDate BETWEEN #"& Format(dtStartDate, "yyyy-MM-dd") &"#"& _
                " AND #"& Format(DateAdd("d", lngCount*2+1, dtStartDate),"yyyy-MM-dd") &"#", _
                objConnection, adOpenStatic, adLockOptimistic
            
            dtEndDate = DateAdd("d", lngCount, dtStartDate)
			
            .Filter  = "HolidayDate>=#"& Format(dtStartDate, "yyyy-MM-dd") &"# AND HolidayDate<=#"& Format(dtEndDate,"yyyy-MM-dd") &"#" 
            lngCount = .RecordCount
            
            Do While lngCount>0
                dtStartDate = DateAdd("d", 1, dtEndDate)
                dtEndDate   = DateAdd("d", lngCount, dtEndDate)
                .Filter  = "HolidayDate>=#"& Format(dtStartDate, "yyyy-MM-dd") &"# AND HolidayDate<=#"& Format(dtEndDate,"yyyy-MM-dd") &"#"
                lngCount = .RecordCount
            Loop
			
            .Close
        End With
        
        objConnection.Execute "UPDATE qdfOrders SET DoneDate=#" & Format(dtEndDate,"yyyy-MM-dd") & "# WHERE ID=" & lngID
        
        objConnection.Close
        Set objRecordset  = Nothing
        Set objConnection = Nothing
        SetLocale(prevLocale)
    Else
        WScript.Echo "Database file [" & strDatabase & "] not found"
    End If
    
    Set objFSO = Nothing
Else
    WScript.Echo "Usage from toolbar on [Склад и торговля]:"
    WScript.Echo "" & WScript.ScriptName & " /[CurrentDB] /[ID]"
End If

WScript.Quit 0



Function Format(vExpression, sFormat) 
 	Dim fmt
	Dim rs

        set fmt = CreateObject("MSSTDFMT.StdDataFormat") 
        fmt.Format = sFormat 
 
        set rs = CreateObject("ADODB.Recordset") 
        rs.Fields.Append "fldExpression", 12 ' adVariant 
 
        rs.Open 
        rs.AddNew 
 
        set rs("fldExpression").DataFormat = fmt 
        rs("fldExpression").Value = vExpression 
 
        Format = rs("fldExpression").Value 
 
        rs.close: Set rs = Nothing: Set fmt = Nothing 
 
End Function 
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37898944
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basicv,
Спасибо,
вечером попробую, сейчас возможности нет...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37899025
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYNскукотищаМожно попробовать, изменить скрипт

---------------------------
Windows Script Host
---------------------------
Сценарий: C:\Program Files\ProductsCount\DateSearch.vbs
Строка: 35
Символ: 9
Ошибка: Требуется объект: '[undefined]'
Код: 800A01A8
Источник: Ошибка выполнения Microsoft VBScript

---------------------------
ОК
---------------------------И в тридцать пятой стороке у Вас
Код: vbnet
1.
        With objRecordset

...

"Изменить" != "заменить одни строки другими"
"Изменить" = "добавить строки", была одна одна, - стало две.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37899029
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basicvNecroTYN,

проблема, думаю, в формате даты - пробуй в SQL командах (SELECT, UPDATE) прописать форматированую дату - Format(dtDate, "yyyy-MM-dd") - должно помоч.Проблема у него не с форматом даты... Прочитайте топик сначала.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37899557
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаИ в тридцать пятой стороке у Вас
Код: vbnet
1.
        With objRecordset


Совершенно верно

скукотища"Изменить" != "заменить одни строки другими"
"Изменить" = "добавить строки", была одна одна, - стало две.
...я чего то не понимаю...
скукотищанайти
Код: vbnet
1.
Const adLockOptimistic = 3



Код: vbnet
1.
        Set objRecordset  = CreateObject("ADODB.Recordset")




заменить на
Код: vbnet
1.
2.
Const adLockOptimistic = 3
Const adUseClient      = 3



Код: vbnet
1.
2.
        Set objRecordset  = CreateObject("ADODB.Recordset")
        objConnection.CursorLocation = adUseClient



...строки я нашел, заменил...(именно заменил - не добавил),
хотя только что попробовал добавить, все так же, считает КАЛЕНДАРНЫЕ дни...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37901099
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NecroTYN,

мой вариант скрипта пробовал? Не работает?
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37901288
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basicvNecroTYN,
мой вариант скрипта пробовал? Не работает?
Пробовал, ошибку в строке 37 пишет...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37901483
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NecroTYN,

скопировал всё что я выложил или правил свой. И покажи ошибку.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37901666
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basicv,

Смогу выложить только вечером
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904093
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basicv,
basicvскопировал всё что я выложил или правил свой.
скопировал Ваш, вот ошибка(совсем не 37 строка...)

---------------------------
Windows Script Host
---------------------------
Сценарий: C:\Program Files\ProductsCount\DateSearch2.vbs
Строка: 86
Символ: 9
Ошибка: Невозможно создание объекта контейнером ActiveX: 'MSSTDFMT.StdDataFormat'
Код: 800A01AD
Источник: Ошибка выполнения Microsoft VBScript

---------------------------
ОК
---------------------------
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904404
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
MSSTDFMT содержится в накопительном обновлении для MS VB 6.0 SP6 .

Скажите, а мой скрипт правильно отработал только на дате 29.07.2012 ?
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904429
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаMSSTDFMT содержится в накопительном обновлении для MS VB 6.0 SP6 .
у мня windows7 - пишут для нее не надо, да и установка сразу финиш пишет...

скукотищаСкажите, а мой скрипт правильно отработал только на дате 29.07.2012 ?
...нет, и на многих других тоже - через раз как то...
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904441
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
хоть для меня это и парадоксально, но...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
' 1) количество рабочих дней читается из таблицы Б/Д - qdfOrders поле "Time", тип целое.
' 2) выходные и праздничные дни - в таблице tblHolidays, заполение на совести оператора.
' rem избегайте называть таблицы/поля, используя зарезервированные 
' rem слова http://support.microsoft.com/kb/248738 (это я про поле qdfOrders.Time)
' rem этим Вы обойдёте часть граблей :)

Option Explicit

Const adOpenStatic     = 3
Const adLockOptimistic = 3

Dim strDatabase
Dim lngID

Dim objFSO
Dim objConnection
Dim objRecordset

Dim dtStartDate
Dim dtEndDate
Dim lngCount

Dim prevLocale

If WScript.Arguments.Count = 2 Then
    strDatabase = Mid(WScript.Arguments(0), 2)
    lngID = Mid(WScript.Arguments(1), 2)
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FileExists(strDatabase) Then
        prevLocale = SetLocale("en-us")
        Set objConnection = CreateObject("ADODB.Connection")
        Set objRecordset  = CreateObject("ADODB.Recordset")
        objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& strDatabase &";"
        
        With objRecordset
            .Open "SELECT * FROM qdfOrders WHERE ID = " & lngID & "", objConnection, adOpenStatic, adLockOptimistic
            dtStartDate = .Fields("OrderDate").Value
	    lngCount    = .Fields("Time").Value 
	    .Close
			
            .Open _
                "SELECT * FROM tblHolidays"& _
                " WHERE HolidayDate BETWEEN #"& dtStartDate &"#"& _
                " AND #"& DateAdd("d", lngCount*2+1, dtStartDate) &"#"  , _
                objConnection, adOpenStatic, adLockOptimistic
            
            dtEndDate = DateAdd("d", lngCount, dtStartDate)
			
            SetLocale(prevLocale)
            .Filter  = "HolidayDate>=#"& dtStartDate &"# AND HolidayDate<=#"& dtEndDate &"#"
            lngCount = .RecordCount
			
            Do While lngCount>0
                dtStartDate = DateAdd("d", 1, dtEndDate)
                dtEndDate   = DateAdd("d", lngCount, dtEndDate)
                .Filter  = "HolidayDate>=#"& dtStartDate &"# AND HolidayDate<=#"& dtEndDate &"#"
                lngCount = .RecordCount
            Loop
			
            .Close
        End With
        
        SetLocale("EN-US")
        objConnection.Execute "UPDATE qdfOrders SET DoneDate=#" & dtEndDate & "# WHERE ID=" & lngID
        
        objConnection.Close
        Set objRecordset  = Nothing
        Set objConnection = Nothing
        SetLocale(prevLocale)
    Else
        WScript.Echo "Database file [" & strDatabase & "] not found"
    End If
    
    Set objFSO = Nothing
Else
    WScript.Echo "Usage from toolbar on [Склад и торговля]:"
    WScript.Echo "" & WScript.ScriptName & " /[CurrentDB] /[ID]"
End If

WScript.Quit 0

...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904476
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища
Код: vbnet
1.
2.
' rem слова http://support.microsoft.com/kb/248738 (это я про поле qdfOrders.Time)
' rem этим Вы обойдёте часть граблей :)


Этот момент я уже исправил, и все опыты были произведены с переименованным полем - "ExecutionTime"
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904479
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

как я понял остальная часть кода осталась неизменной ???
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904486
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NecroTYN,
то, что Вы процитировали, - это примечания.

> как я понял остальная часть кода осталась неизменной ???
Если скрипт стал считать корректно, то предлагаю различия найти самостоятельно.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904494
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Урааааааааааа!!!!!!!!!!!!
Работает !!!!!!
на разных датах (включая со скрина) и с разным количеством дней - ВСЕ РАБОТАЕТ ПРАВИЛЬНО !!!!!!!!!!

...а в чем загвоздочка была ???
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904507
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в ADODB.Recordset.Source дата должна быть представлена в формате локали 'EN-US',
в ADODB.Recordset.Filter - в формате текущей локали системы.

Хрен бы когда подумал. Почему-то MS по-разному реализовали эти свойства.
...
Рейтинг: 0 / 0
Нужна помощь в создании VBS скрипта
    #37904534
NecroTYN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаХрен бы когда подумал. Почему-то MS по-разному реализовали эти свойства.
Огромное спасибо за уделенное внимание, и поздравляю с приобретенным опытом !!!
... может еще обращусь...
...
Рейтинг: 0 / 0
68 сообщений из 68, показаны все 3 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нужна помощь в создании VBS скрипта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]