استفاده از توابع API ويندوز در اكسس

جهت استفاده از توابع API ويندوز در قسمتهاي مختلف يك برنامه به زبان اكسس يا ويژوال بيسيك بايد الگوي تابع مورد نظر را در يك ماژول به صورت Public تعريف نماييد در اين الگو شما نام تابع و نام كتابخانه DLL كه تابع مورد نظر در آن تعريف شده را همراه با پارامترهاي ورودي/خروجي آن مشخص كنيد . همچنين ميتوانيد از يك نام دلخواه براي فراخواني تابع استفاده كنيد در اينصورت بايد نام اصلي يا مستعار تابع در كتابخانه مربوطه اش را بعد از عبارت Alias مشخص كنيد.
به عنوان مثال ShellExecuteA يكي از توابع كتابخانه اي ويندوز است كه با همين نام در كتابخانه shell32.dll تعريف شده است. با اين تابع شما قادر خواهيد بود يك فايل دلخواهتان را در محيط برنامه اي كه ويندوزتان براي آن پسوندفايل رجيستر شده، باز كنيد مثلا يك فايل PDF‌ را در محيط آكروبات.
براي استفاده از اين تابع الگوي آنرا به شكل زير در يك ماژول تعريف نماييد
Public Declare Function ShellExecuteA Lib "shell32.dll" (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

اگر بخواهيد از اين تابع با نام apiShellExecute در برنامه تان استفاده كنيد بايد به جاي الگوي فوق، الگوي زير را در ماژول استفاده كنيد.
Public Declare Function apiShellExecute 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

حال تابعي به نام ShellExecuteA يا apiShellExecute در قسمتهاي مختلف برنامه قابل فراخواني است. در اين مرحله بايد تابع را با پارامترهاي مناسب صدا زد. مثلا به شكل زير:
Dim Lret As Long, LshowHow As Long



Dim stFile As String
LshowHow = 1
stFile = "C:\WO-Status Count8605.pdf"
Lret = ShellExecuteA (hWndAccessApp, vbNullString, stFile, vbNullString, vbNullString, LshowHow )

يا
Lret = apiShellExecute (hWndAccessApp, vbNullString, stFile, vbNullString, vbNullString, LshowHow )