Страница: 1 |
Вопрос: Access97 в AccessXP | Добавлено: 17.03.06 08:19 |
Автор вопроса: ![]() |
Программирую в Access97, решил перейти на AccessXP. Столкнулся с проблеммой :-((
Не работает нижеприведенный код вызова DLL пример: Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Public Sub RApp() Dim Ret As Long Dim hWnd As Long hWnd = 0 Ret = ShellExecute(hWnd, "Open", "NOTEPAD.EXE", vbNullString, vbNullString, vbNormalFocus) Ret = Shell("NOTEPAD.EXE") End Sub В Access97 все работает . В AccessXP вызовы обеих функций возвращают 0. Написано много программного под Access97 где вызываю Dll API, а так же DLL разработанные на Builder для ускорения работы приложения и выполнения функций, которые в Access реализовывать не очень удобно. Не хочется при переходе на новую версию Access переписывать все, что наработано ранее. Использую windowsXP. В системе установлен Aceess97 и AccessXP одновременно. При копировании кода из одного приложения в другое получаем нормальную работу под Aceess97 и отсутствие результатов под AceessХР. В FAQ ничего не нашел. Неужели придется остаться под Aceess97. У клиентов периодически его сносят под новую версию, приходится приходить у устанавливать Aceess97. Очень неудобно! |
Ответы | Всего ответов: 6 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 17.03.06 12:01 |
Фссуыы XP: всё работает как надо
'Module1
Option Compare Database Option Explicit Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, _ ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal _ lpDirectory As String, ByVal nShowCmd As Long) As Long Public Sub RApp() Dim Ret As Long Dim hWnd As Long hWnd = 0 Ret = ShellExecute(hWnd, "Open", "NOTEPAD.EXE", vbNullString, vbNullString, vbNormalFocus) Ret = Shell("NOTEPAD.EXE" ![]() End Sub Открывает два блокнота, всё как и надо. Чего он там возвращает - явно то, что надо. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 315-333-933 Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #2 | Добавлено: 17.03.06 14:24 |
Что больше всего и смущает! Возврат 0 - нехватка ресурсов (см API). Должен возвращать идентификатор процесса. В 97 возвращает то, что надо Опробовал на двух машинах дома и на работе, с разными правами и админа и пользователя(WINDOWSXP), использовал два разных дистрибутива OfficeXP. Может надо подключить какую библиотеку, или поставить где галочку? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 17.03.06 14:33 |
Работает у меня в OfficeXP, самом обычном. OS Win2K, но это тоже не имеет значения.. Кто его знает, что-то с софтом. Ты это совй поект не можешь наладить или даже в пустой базе в коде модуля это не проходит? Чтото нездоровое и фиг знает что. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 315-333-933 Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #4 | Добавлено: 17.03.06 16:57 |
Ставлю с 0 OfficeXP даже не пользуюсь ломалкой (пробовал и с ломалкой), создаю новую базу данных, в ней единственный модуль, с показанным содержимым, не работает. Подозреваю, что у меня действительно какой то плохой дистрибутив. 2000 год без сервиспаков. Второй дистрибутив брал у знакомого, по моему дистрибутив давал ему я ранее ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 315-333-933 Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #5 | Добавлено: 22.03.06 14:50 |
Уже едет крыша ;-[]
Взял новый дистрибутив Office2003. Новее некуда! Устанавливаю, создаю новую базу данных. В базе создаю единственный модуль В который помещаю приведенную выше программу. Не работает. При отладке вызов обеих функций возвращают 0. По описанию ShellExecuteA в SDK 0-нехватка ресурсов. Для проверки запускаю Access97, все отлично работает |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 315-333-933 Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #6 | Добавлено: 22.03.06 15:39 |
Продолжение.. Беру текст программы, иду по другим компьютерам с установленным Office версии более
97. Везде где есть Access создаю новую базу данных, создаю модуль копирую текст, и о чудо, все работает, причем везде, в любой версии. Оказывается не работает на двух моих компьютерах, рабочем в офисе, и дома. Причем операционные системы с разных дистрибутивов, практически не связаные, кроме похожего набора программных продуктов. По результатам опроса Умных ( в отличии от меня) людей, никто не догадался включить автоматическое обновление WIDOWSXP, как рекомендует microsoft. Слова закончились, остались..... Если кто сталкивался отзовитесь!! |
Страница: 1 |
|