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

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

Был проект на 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
с VBA на VBS
    #32873165
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в VBS есть тип данных только Variant, т.е "as Long" там не прокатит


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

можно написать обертку АПИ функции в виде КОМобъекта
а из ВБС вызывать уже КОМобъект - он это умеет
...
Рейтинг: 0 / 0
с VBA на VBS
    #32873170
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 KELME: Не гони. Всё там есть.
...
Рейтинг: 0 / 0
с VBA на VBS
    #32873240
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
с VBA на VBS
    #32873274
bibikoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
господа, имхо дискуссия о вариантах и лонгах оффтоп
вопрос был о другом

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsgrpnonfeatures.asp
...
Рейтинг: 0 / 0
с VBA на VBS
    #32873280
Nusik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть так что-ли писать??
К сожалению с 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
с VBA на VBS
    #32873284
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
без as Variant
--------------
crazy about...
...
Рейтинг: 0 / 0
с VBA на VBS
    #32873290
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу не понял, прошу прощения, думал, что автор говорит о проекте VB в STUDIO.
P.S. О кстати, если это скрипт могу помочь. Но теперь только завтра, пора домой.
...
Рейтинг: 0 / 0
с VBA на VBS
    #32873293
bibikoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да как не пиши - нет такого ключевого слова "declare" в ВБСкрипте :)
...
Рейтинг: 0 / 0
с VBA на VBS
    #32873797
Nusik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Proga
Если можете, то помогите, пожалуйста. Может быть подкинетепримерчик описания класса на VBS.. Очень нужно, вся работа стоит.
Заранее спасибо.
...
Рейтинг: 0 / 0
с VBA на VBS
    #32873972
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем порылся тут немного, и совет такой напиши свой COM-объект на VB(ActiveX), зарегестрируй на всех клиентских машинах его, и при написании на VBScript, ссылайся на него как на класс.
Предложенный тобой вариант не прокатит, т.к. возможности VBS ограничены.
Либо учи WMI, но это для меня "высший пилотаж", с этим пока плохо знаком, единственное могу помочь, прилагаю файл сам поймёшь, когда посмотришь, выкину тебе на мыло.
...
Рейтинг: 0 / 0
с VBA на VBS
    #32874238
Nusik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Proga
Можно вот в этом месте поподробнее и с примером.

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

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

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

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

Поэтому может хоть ссылочку на пример......, please
...
Рейтинг: 0 / 0
с VBA на VBS
    #32874459
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если надо в базе покавыряться, то можно так например, но это всего лишь способ, а остальное сам.
Код: 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
с VBA на VBS
    #32874476
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NusikУважаемый Proga!

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

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

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

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

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

Код: 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
с VBA на VBS
    #32874538
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey ShА не проще из скрипта Аксесс запустить, скажем так?
А зачем запускать аксес из скрипта, если можно запустить сам аксес?
Или скрипт может сделать что-то, чего принципиально нельзя сделать из аксеса?
...
Рейтинг: 0 / 0
с VBA на VBS
    #32874556
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ЛП: ТЫ не прав, например обновление клиентской части. Из акса будешь обновлять самого себя, ну-ну?
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / с VBA на VBS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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