Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / с VBA на VBS / 25 сообщений из 32, страница 1 из 2
19.01.2005, 18:04:21
    #32873149
Nusik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Здравствуйте, спецы.

Созрел такой вопрос.

Был проект на VBA, все работало, все было ок.
Потребовалось перенести процедуру из этого проекта на VBS. Эта процедура использует класс.
Так вот, при переносе, процедура перенеслась нормально, а класс выдает ошибку.

Вот кусочек скрипта. Ошибка в строке Private Declare Function....
Может быть кто-нибудь может объяснить что не так.

Помогите!!!!

Class CNetUrl

Private Declare Function InternetCrackUrl Lib "wininet.dll" _
Alias "InternetCrackUrlA" (ByVal lpszUrl As String, ByVal dwUrlLength As Long,_ ByVal dwFlags As Long, lpUrlComponents As URL_COMPONENTS) As Long

Private Declare Function InternetCanonicalizeUrl Lib "wininet.dll" _
Alias "InternetCanonicalizeUrlA" (ByVal lpszUrl As String,ByVal lpszBuffer As String, _
lpdwBufferLength As Long, ByVal dwFlags As Long) As Long

Private Declare Function InternetCreateUrl Lib "wininet.dll" _
Alias "InternetCreateUrlA" (lpUrlComponents As URL_COMPONENTS, _
ByVal dwFlags As Long, ByVal lpszUrl As String, lpdwUrlLength As Long) As Long
.....
....
...
End Class
...
Рейтинг: 0 / 0
19.01.2005, 18:10:41
    #32873165
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
в VBS есть тип данных только Variant, т.е "as Long" там не прокатит


--------------
crazy about...
...
Рейтинг: 0 / 0
19.01.2005, 18:12:09
    #32873168
bibikoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
ВБС не позволяет вызывать АПИ функции - никак

можно написать обертку АПИ функции в виде КОМобъекта
а из ВБС вызывать уже КОМобъект - он это умеет
...
Рейтинг: 0 / 0
19.01.2005, 18:12:33
    #32873170
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
2 KELME: Не гони. Всё там есть.
...
Рейтинг: 0 / 0
19.01.2005, 18:37:05
    #32873240
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Proga2 KELME: Не гони. Всё там есть.

cмотри тут

VBScript has only one data type called a Variant. A Variant is a special kind of data type that can contain different kinds of information, depending on how it is used. Because Variant is the only data type in VBScript, it is also the data type returned by all functions in VBScript.
...
Рейтинг: 0 / 0
19.01.2005, 18:58:10
    #32873274
bibikoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
господа, имхо дискуссия о вариантах и лонгах оффтоп
вопрос был о другом

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsgrpnonfeatures.asp
...
Рейтинг: 0 / 0
19.01.2005, 19:00:52
    #32873280
Nusik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
То есть так что-ли писать??
К сожалению с VBS сталкиваюсь во второй раз..

Class CNetUrl


Private Declare Function InternetCrackUrl Lib "wininet.dll" _
Alias "InternetCrackUrlA" (ByVal lpszUrl As String, ByVal dwUrlLength As Long,_ ByVal dwFlags As Long, lpUrlComponents As URL_COMPONENTS) As Variant

Private Declare Function InternetCanonicalizeUrl Lib "wininet.dll" _
Alias "InternetCanonicalizeUrlA" (ByVal lpszUrl As String,ByVal lpszBuffer As String, _
lpdwBufferLength As Long, ByVal dwFlags As Long) As Variant

Private Declare Function InternetCreateUrl Lib "wininet.dll" _
Alias "InternetCreateUrlA" (lpUrlComponents As URL_COMPONENTS, _
ByVal dwFlags As Long, ByVal lpszUrl As String, lpdwUrlLength As Long) As Variant
.....
....
...
End Class
...
Рейтинг: 0 / 0
19.01.2005, 19:03:44
    #32873284
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
без as Variant
--------------
crazy about...
...
Рейтинг: 0 / 0
19.01.2005, 19:07:39
    #32873290
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Сразу не понял, прошу прощения, думал, что автор говорит о проекте VB в STUDIO.
P.S. О кстати, если это скрипт могу помочь. Но теперь только завтра, пора домой.
...
Рейтинг: 0 / 0
19.01.2005, 19:08:30
    #32873293
bibikoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
да как не пиши - нет такого ключевого слова "declare" в ВБСкрипте :)
...
Рейтинг: 0 / 0
20.01.2005, 09:59:15
    #32873797
Nusik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Уважаемый Proga
Если можете, то помогите, пожалуйста. Может быть подкинетепримерчик описания класса на VBS.. Очень нужно, вся работа стоит.
Заранее спасибо.
...
Рейтинг: 0 / 0
20.01.2005, 10:51:44
    #32873972
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Вообщем порылся тут немного, и совет такой напиши свой COM-объект на VB(ActiveX), зарегестрируй на всех клиентских машинах его, и при написании на VBScript, ссылайся на него как на класс.
Предложенный тобой вариант не прокатит, т.к. возможности VBS ограничены.
Либо учи WMI, но это для меня "высший пилотаж", с этим пока плохо знаком, единственное могу помочь, прилагаю файл сам поймёшь, когда посмотришь, выкину тебе на мыло.
...
Рейтинг: 0 / 0
20.01.2005, 12:01:48
    #32874238
Nusik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Уважаемый Proga
Можно вот в этом месте поподробнее и с примером.

В этом я чайник......

"напиши свой COM-объект на VB(ActiveX), зарегестрируй на всех клиентских машинах его, и при написании на VBScript, ссылайся на него как на класс"
...
Рейтинг: 0 / 0
20.01.2005, 12:39:42
    #32874386
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Nusik, извини конечно, но специально для тебя, VB ставить не буду, а для инфы поставь себе VB6, почитай книжку какую-нибудь умную, спросить на форуме по VB, да и напиши свой COM, а лучше брось своё извращение, и напиши нормальный проект на VB, и функционала по-более и самому интересно будет. VBS штука сложная, не очень приспособленная для написания клиента, в силу своей обрезанности (кастрированный VB)
...
Рейтинг: 0 / 0
20.01.2005, 12:46:58
    #32874412
Nusik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Уважаемый Proga!

На VB, Access2003 проект уже есть, там все работает, все отлично. Но в зависимости от того, когда придет сотрудник он этот проект запускает и данные обрабатываются только когда сотрудник есть.

Задачка заключалась именно в том, чтобы реализовать это на VBS и включить автоматически скрипт 1 раз в день, чтобы обработка данных не зависела от прихода сотрудника и к приходу всех данные были бы уже обработаны.

Поэтому может хоть ссылочку на пример......, please
...
Рейтинг: 0 / 0
20.01.2005, 12:59:37
    #32874459
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
если надо в базе покавыряться, то можно так например, но это всего лишь способ, а остальное сам.
Код: plaintext
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.
Const adOpenStatic =  3 
Const adOpenOptimistic =  3 
Const adUseClient =  3 
call con()

sub con

dim str
set t=Createobject("adodb.connection")
set rst=CreateObject("adodb.recordset")
str="PROVIDER=SQLOLEDB.1;PASSWORD=;" & _
         "PERSIST SECURITY INFO=FALSE;USER ID=sa;" & _
         "INITIAL CATALOG=mybase;DATA SOURCE=server1"
t.ConnectionString =str
t.Open 
i= 1 
rst.open "select * from CFO" ,t,adOpenstatic,adOpenOptimistic,adcmdtext
do until rst.EOF
	msgbox rst.Fields.Item("Otvet").Value
rst.MoveNext 
loop
rst.close
t.close
set rst=nothing
set t=nothing
end sub
...
Рейтинг: 0 / 0
20.01.2005, 13:04:52
    #32874476
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
NusikУважаемый Proga!

На VB, Access2003 проект уже есть, там все работает, все отлично. Но в зависимости от того, когда придет сотрудник он этот проект запускает и данные обрабатываются только когда сотрудник есть.

Задачка заключалась именно в том, чтобы реализовать это на VBS и включить автоматически скрипт 1 раз в день, чтобы обработка данных не зависела от прихода сотрудника и к приходу всех данные были бы уже обработаны.

Поэтому может хоть ссылочку на пример......, please
ну и запускайте автоматически проект Access 2003 один раз в день
на кой VBS то сдался?
...
Рейтинг: 0 / 0
20.01.2005, 13:09:10
    #32874498
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
если у тебя Win2000 и выше, используй WinHTTP.
Описание есть тут

--------------
crazy about...
...
Рейтинг: 0 / 0
20.01.2005, 13:10:21
    #32874505
Nusik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
ЛП

А как запустить проект Access автоматически? Там просто модуль, не зависящий от событий пользователя. Нужно ручками влезть в код и запустить?
...
Рейтинг: 0 / 0
20.01.2005, 13:11:39
    #32874513
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
через Task Scheduler
--------------
crazy about...
...
Рейтинг: 0 / 0
20.01.2005, 13:11:53
    #32874516
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Подсказка: макрос Autoexec
...
Рейтинг: 0 / 0
20.01.2005, 13:13:27
    #32874522
Nusik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Спасибо всем, попробую разобраться!!!!!!!!
...
Рейтинг: 0 / 0
20.01.2005, 13:14:39
    #32874527
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
А не проще из скрипта Аксесс запустить, скажем так?

Код: plaintext
1.
2.
3.
4.
5.
    Set app = CreateObject("access.application")
    app.OpenCurrentDatabase "bla-bla.mdb"
    rc = app.Run("myfunc")
    app.quit  2 
    set app=nothing
...
Рейтинг: 0 / 0
20.01.2005, 13:18:08
    #32874538
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
Alexey ShА не проще из скрипта Аксесс запустить, скажем так?
А зачем запускать аксес из скрипта, если можно запустить сам аксес?
Или скрипт может сделать что-то, чего принципиально нельзя сделать из аксеса?
...
Рейтинг: 0 / 0
20.01.2005, 13:21:02
    #32874556
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с VBA на VBS
2 ЛП: ТЫ не прав, например обновление клиентской части. Из акса будешь обновлять самого себя, ну-ну?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / с VBA на VBS / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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