powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нужна помощь в создании VBS скрипта
18 сообщений из 68, страница 3 из 3
Нужна помощь в создании 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
18 сообщений из 68, страница 3 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нужна помощь в создании VBS скрипта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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