Страница: 1 |
Страница: 1 |
Вопрос: Access97 в AccessXP
Добавлено: 17.03.06 08:19
Автор вопроса: Serg_vnovg | ICQ: 315-333-933
Программирую в 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
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #1
Добавлено: 17.03.06 12:01
Фссуыы XP: всё работает как надо
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
Автор ответа:
Serg_vnovg
ICQ: 315-333-933
Вопросов: 1
Ответов: 4
Профиль | | #2
Добавлено: 17.03.06 14:24
Что больше всего и смущает! Возврат 0 - нехватка ресурсов (см API). Должен возвращать идентификатор процесса. В 97 возвращает то, что надо Опробовал на двух машинах дома и на работе, с разными правами и админа и пользователя(WINDOWSXP), использовал два разных дистрибутива OfficeXP. Может надо подключить какую библиотеку, или поставить где галочку?
Номер ответа: 3
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #3
Добавлено: 17.03.06 14:33
Работает у меня в OfficeXP, самом обычном. OS Win2K, но это тоже не имеет значения.. Кто его знает, что-то с софтом. Ты это совй поект не можешь наладить или даже в пустой базе в коде модуля это не проходит? Чтото нездоровое и фиг знает что.
Номер ответа: 4
Автор ответа:
Serg_vnovg
ICQ: 315-333-933
Вопросов: 1
Ответов: 4
Профиль | | #4
Добавлено: 17.03.06 16:57
Ставлю с 0 OfficeXP даже не пользуюсь ломалкой (пробовал и с ломалкой), создаю новую базу данных, в ней единственный модуль, с показанным содержимым, не работает. Подозреваю, что у меня действительно какой то плохой дистрибутив. 2000 год без сервиспаков. Второй дистрибутив брал у знакомого, по моему дистрибутив давал ему я ранее ) . Попробую найти поновее, и напишу в форум. Спасибо за поддержку. Продолжу только в понедельник. Рабочий день заканчивается.
Номер ответа: 5
Автор ответа:
Serg_vnovg
ICQ: 315-333-933
Вопросов: 1
Ответов: 4
Профиль | | #5
Добавлено: 22.03.06 14:50
Уже едет крыша ;-[]
Взял новый дистрибутив Office2003. Новее некуда!
Устанавливаю, создаю новую базу данных. В базе создаю единственный модуль В который помещаю приведенную выше программу. Не работает. При отладке вызов обеих функций возвращают 0. По описанию ShellExecuteA в SDK 0-нехватка ресурсов. Для проверки запускаю Access97, все отлично работает
Номер ответа: 6
Автор ответа:
Serg_vnovg
ICQ: 315-333-933
Вопросов: 1
Ответов: 4
Профиль | | #6
Добавлено: 22.03.06 15:39
Продолжение.. Беру текст программы, иду по другим компьютерам с установленным Office версии более
97. Везде где есть Access создаю новую базу данных, создаю модуль копирую текст, и о чудо, все
работает, причем везде, в любой версии. Оказывается не работает на двух моих компьютерах, рабочем
в офисе, и дома. Причем операционные системы с разных дистрибутивов, практически не связаные, кроме
похожего набора программных продуктов. По результатам опроса Умных ( в отличии от меня) людей, никто не догадался включить автоматическое обновление WIDOWSXP, как рекомендует microsoft. Слова закончились, остались..... Если кто сталкивался отзовитесь!!