DOCUMENT:Q149558 07-MAY-2001 [visualc] TITLE :HOWTO: Create an .MDB File for Microsoft Access Databases PRODUCT :Microsoft C Compiler PROD/VER::3.0,3.5,3.51,3.6 OPER/SYS: KEYWORDS:kbprogramming kbDAOsearch kbDatabase kbMFC kbODBC kbVC kbGrpDSVCDB ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - The DAO SDK, versions 3.0, 3.5, 3.51, 3.6 ------------------------------------------------------------------------------- SUMMARY ======= Prior to the release of the Microsoft ODBC Desktop Driver Pack version 2.0, there was no way to programmatically create a Microsoft Access database (an .mdb file). For more details about this, please see the following article in the Microsoft Knowledge Base: Q118609 HOWTO: Create an .MDB File for Microsoft Access Databases With the release of the version 2.0 driver pack and higher, MFC ODBC applications can now create .mdb files. Additionally, with the incorporation of DAO into Visual C++ 4.x or higher, you have another way to create Microsoft Access databases programmatically. MORE INFORMATION ================ Using the Microsoft Access ODBC Driver to Create .MDB Files ----------------------------------------------------------- Kyle Geiger's book "Inside ODBC" provides a sample program, ODBCACC, that nicely demonstrates how to use the ODBC installer DLL API function SQLConfigDataSource to create an .mdb file. The syntax of the function call is: BOOL SQLConfigDataSource(hwndParent, fRequest, lpszDriver, lpszAttributes) Where: hwndParent is either NULL if no dialogs are to be displayed or a valid hwnd to act as parent to any driver generated dialogs. fRequest is ODBC_ADD_DSN to specify creation of the .mdb file. lpszDriver is Microsoft Access Driver (*.mdb). lpszAttributes is "CREATE_DB=.mdb \0" where the combination identifies where the file should be created and is language sorting order (for example, General). must be specified even if the .mdb is to be created in the current working directory. Use standard relative path syntax. NOTE: Unlike most other ODBC API functions, SQLConfigDataSource returns a boolean value. This return value is TRUE if the .mdb was created, FALSE if creation failed. To use the installer DLL functions, you must: - Use #include . - Link with Odbcinst.lib for 16-bit applications. - Link with Odbccp32.lib for 32-bit applications. NOTE: The functionality of SQLConfigDataSource is available through the ODBC Administrator. If you choose to add a new Microsoft Access datasource, the driver dialog includes a Create button that you can use to create an .mdb file interactively. Using DAO to Create .MDB Files ------------------------------ DAO allows applications developed with Visual C++ 4.x to interface with the Microsoft Jet database engine directly. This allows more efficient manipulation of Microsoft Access objects than can be achieved through ODBC, including the creation of .mdb files. For a sample program that demonstrates how to create databases and other objects, search the Microsoft Knowledge Base for the DAOTABLE sample. Sample Code ----------- Use of SQLConfigDataSource ODBC installer DLL API function: BOOL fCreated; fCreated = SQLConfigDataSource(NULL, ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)", "CREATE_DB=.\\ATest.mdb General\0" ); This will create ATest.mdb in the application's working directory using general sorting. REFERENCES ========== "Inside ODBC" by Kyle Geiger, Microsoft Press ISBN 1-55615-815-7. For more information, please see the following article in the Microsoft Knowledge Base in the ODBC collection: Q126606 INFO: Accessing CREATE_DB, REPAIR_DB, and COMPACT_DB Additional query words: data base creation creating kbvc151 kbvc152 kbvc200 kbvc210 kbvc220 kbvc400 kbvc500 kbvc600 ====================================================================== Keywords : kbprogramming kbDAOsearch kbDatabase kbMFC kbODBC kbVC kbGrpDSVCDB Technology : kbAudDeveloper kbDAOsearch kbSDKDAOSearch kbSDKSearch kbSDKDAO300 kbSDKDAO350 kbSDKDAO360 kbSDKDAO351 Version : :3.0,3.5,3.51,3.6 Issue type : kbhowto ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2001.