|
Besides the libraries used in Microsoft Access, the
Microsoft Windows operating system provides its own library of functions and
objects. This library is called the Win32 Application Programming Interface
or Win32 API, or simply Win32. The Win32 library is somehow available to
applications but its functions are not directly available for a database.
|
The Win32 library is made of procedures, functions,
and classes (mostly structures) that you can use to complement a project.
There are so many of these functions and objects that it is hard to know
most or all of them. The best way to get acquainted with them is to check
its documentation. To do this, you can visit the
MSDN web site. The
functions are stored in various sub-libraries called dynamic link
libraries (DLLs).
Before using a Win32 function in your code, you must
first have two pieces of information: the DLL in which the function was
created and the actual name of the desired function in that library.
Examples of DLLs are shfolder or Kernel32. Once you know the
name of the library and the name of the function you want to use, you must
import it in your Visual Basic code. The basic formula to follow is:
Private Declare Function Win32FunctionName Lib "LibraryName"
Alias "CustomName" (Arguments) As DataType
The Win32FunctionName factor is the name of the
function in the Win32 library. The LibraryName is the name of the
library. You can create a custom name for the function as the
CustomName factor. In the parentheses, you can enter the names and
types of the arguments. If the procedure returns a value, you can specify
its type after the As keyword.
Here is an example:
Option Compare Database
Option Explicit
Private Const MAX_PATH = 260
Private Const CSIDL_PERSONAL = &H5&
Private Const SHGFP_TYPE_CURRENT = 0
' We will use the Windows API to get the path to My Documents
Private Declare Function SHGetFolderPath Lib "shfolder" _
Alias "SHGetFolderPathA" _
(ByVal hwndOwner As Long, ByVal nFolder As Long, _
ByVal hToken As Long, ByVal dwFlags As Long, _
ByVal pszPath As String) As Long
Private Sub cmdCreateDatabase_Click()
Dim strMyDocuments As String
Dim strDbName As String
Dim valReturned As Long
Dim dbMVD As DAO.Database
' Initialize the string
strMyDocuments = String(MAX_PATH, 0)
' Call the Shell API function to get the path to My Documents
' and store it in the strMyDocuments folder
valReturned = SHGetFolderPath(0, CSIDL_PERSONAL, _
0, SHGFP_TYPE_CURRENT, strMyDocuments)
' "Trim" the string
strMyDocuments = Left(strMyDocuments, InStr(1, strMyDocuments, Chr(0)) - 1)
' Include the name of the database in the path
strDbName = strMyDocuments & "\Motor Vehicle Division.mdb"
' Create the database
Set dbMVD = CreateDatabase(strDbName, dbLangGeneral)
End Sub