Использую вызовы Dll не только для диалоговых окон. Написано много программного под Access97 где вызываю Dll API, а так же DLL разработанные на Builder для ускорения работы приложения и выполнения функций, которые в Access реализовывать не очень удобно. Не хочется при переходе на новую версию Access переписывать все, что наработано ранее.
Использую windowsXP. В системе установлен Aceess97 и AccessXP одновременно. При копировании кода из одного приложения в другое получаем нормальную работу под Aceess97 и отсутствие результатов под AceessХР. В FAQ ничего не нашел. Неужели придется остаться под Aceess97. У клиентов периодически его сносят под новую версию, приходится приходить у устанавливать Aceess97. Очень неудобно!
Даже простейшие функции самого Access не работают 
| Код | 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 |