Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #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
Автор ответа:
 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-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #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. Слова закончились, остались..... Если кто сталкивался отзовитесь!!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам