DOCUMENT:Q285345 30-DEC-2001 [foxpro] TITLE :PRB: Error with DSN-Less Connection to FoxPro Table Through DAO PRODUCT :Microsoft FoxPro PROD/VER::5.0,5.0a,6.0 OPER/SYS: KEYWORDS:kbJET kbGrpDSVBDB kbDSupport ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual FoxPro for Windows, versions 5.0, 5.0a, 6.0 - Microsoft Visual Basic Professional Edition for Windows, version 6.0 - Microsoft Visual Basic Enterprise Edition for Windows, version 6.0 ------------------------------------------------------------------------------- SYMPTOMS ======== When you use a DSN-less connection to connect to a Visual FoxPro free table through Data Access Objects (DAO), you may receive the following error message: Run-time error '3000': Reserved error (-7778); there is no message for this error. RESOLUTION ========== To use a DSN-less connection with a Visual FoxPro free table, you must create an Open Database Connectivity (ODBC) workspace. For sample code, refer to the "More Information" section. MORE INFORMATION ================ Steps to Reproduce Behavior --------------------------- 1. Open a new Standard EXE project in Visual Basic. 2. Place a CommandButton control on the form. 3. Add the following code to the Command1_Click event: Dim dbCurrentDB As DAO.Database Dim rsTmp As Recordset Dim sConnect$, sDatabaseName$, sTable$, i% Dim wk As Workspace sTable = "select * from employees" ' Modify select to use your Visual FoxPro table. ' Modify SourceDB to correctly reflect the path (and path only) of your ' Visual FoxPro .dbf file. Do not include the file name. sConnect = "ODBC;SourceType=DBF;" _ & "SourceDB=c:\TestDir\dataDir\;" _ & "Driver={Microsoft Visual FoxPro Driver}" ' Uncomment the following two lines of code to resolve this error. ' Set wk = DBEngine.CreateWorkspace("", "admin", "", dbUseODBC) ' Set dbCurrentDB = wk.OpenDatabase("", False, False, sConnect) ' Comment the following line to resolve this error. Set dbCurrentDB = DBEngine.OpenDatabase("", False, False, sConnect) ' Fails here. Set rsTmp = dbCurrentDB.OpenRecordset(sTable, dbOpenSnapshot) For i = 0 To rsTmp.Fields.Count - 1 Debug.Print rsTmp.Fields(i).Name & " | "; Next Debug.Print "" rsTmp.Close dbCurrentDB.Close Set rsTmp = Nothing Set dbCurrentDB = Nothing 4. Modify SourceDB to correctly reflect the path of your Visual FoxPro .dbf file. The comments indicate where you must make the changes. NOTE: Only type the path to the .dbf file; do not type the file name. 5. Click the command button to run the code. Notice that you receive the above-mentioned error message. RESOLUTION: 6. To resolve this problem, create a workspace and successfully open a connection to the database. To do this, uncomment the following two lines ' Uncomment the following two lines of code to resolve this error. ' Set wk = DBEngine.CreateWorkspace("", "admin", "", dbUseODBC) ' Set dbCurrentDB = wk.OpenDatabase("", False, False, sConnect) and comment the following line: ' Comment the following line to resolve this error. Set dbCurrentDB = DBEngine.OpenDatabase("", False, False, sConnect) ' Fails here. 7. Click the command button to run the code. Notice that the Immediate window displays the data, and you do not receive the error message. REFERENCES ========== For additional information, click the article numbers below to view the articles in the Microsoft Knowledge Base: Q212886 ACC2000: Using File DSN to Import or Link a FoxPro ODBC Data Source Causes Reserved Error -7778 Q190663 PRB: Opening an ODBC Database Inside a Jet Workspace Hangs VB Q209953 ACC2000: How to Use the OpenDatabase Method to Open Password-Protected Databases Additional query words: Run-time error 3000 reserved -7778 ====================================================================== Keywords : kbJET kbGrpDSVBDB kbDSupport Technology : kbVFPsearch kbAudDeveloper kbVFP500 kbVFP600 kbVFP500a Version : :5.0,5.0a,6.0 Issue type : kbprb ============================================================================= 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.