Article ID: 249638
Article Last Modified on 10/17/2003
APPLIES TO
- Microsoft Data Access Components 2.5
- Microsoft Open Database Connectivity Driver for Access 4.0
This article was previously published under Q249638
SYMPTOMS
If you submit a LEFT OUTER JOIN query to the Microsoft Access ODBC driver and a Boolean ("Yes/No") column is one of the columns in the fields list, the following error message occurs when you reference the resulting Microsoft ActiveX Data Objects (ADO) recordset:
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
This problem was corrected in MDAC version 2.6.
MORE INFORMATION
Steps to Reproduce Behavior
- Start Microsoft Visual Basic 6.0 and choose a Standard EXE project.
- Add the following Project references:
- Microsoft ActiveX Data Objects 2.5 Library
-and-
- Microsoft ADO Ext. 2.5 for DDL and Security
- Microsoft ActiveX Data Objects 2.5 Library
Paste the following code into the Load event of the default form:
Dim strSQL As String Dim cat As New ADOX.Catalog Dim tbl As New ADOX.Table Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset On Error Resume Next Kill "x.mdb" On Error GoTo 0 cat.Create "Provider=Microsoft.jet.oledb.4.0;data source=x.mdb;" tbl.Columns.Append "cChar", adVarWChar, 5 tbl.Columns.Append "cBool", adBoolean tbl.Name = "tOne" tbl.Keys.Append "PK1", adKeyPrimary, "cChar" cat.Tables.Append tbl Set tbl = Nothing tbl.Columns.Append "cChar2", adVarWChar, 5 tbl.Columns.Append "cChar3", adVarWChar, 5 tbl.Name = "tTwo" tbl.Keys.Append "PK2", adKeyPrimary, "cChar2" cat.Tables.Append tbl Set tbl = Nothing Set cat = Nothing Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.CursorLocation = adUseClient cn.Open "Provider=MSDASQL.1;Driver={Microsoft Access Driver (*.mdb)};DBQ=x.mdb;" 'Errors 'cn.Open "provider=Microsoft.jet.oledb.4.0;data source=x.mdb" 'Works cn.Execute "INSERT INTO tOne VALUES ('aaaaa',0)" cn.Execute "INSERT INTO tOne VALUES ('bbbbb',1)" cn.Execute "INSERT INTO tOne VALUES ('ccccc',0)" cn.Execute "INSERT INTO tTwo VALUES ('aaaaa',1)" cn.Execute "INSERT INTO tTwo VALUES ('ddddd',1)" cn.Execute "INSERT INTO tTwo VALUES ('eeeee',1)" strSQL = "SELECT cChar2, cChar3, cChar, cBool " & _ "FROM tOne LEFT OUTER JOIN tTwo ON tOne.cChar = tTwo.cChar2" rs.Open strSQL, cn, adOpenStatic, adLockOptimistic, adCmdText MsgBox rs.RecordCount 'Errors here!
- Press F5 to run the project.RESULT: The error message described in the "Symptoms" section occurs.
Keywords: kbbug kbfix kbjet kbmdac260fix kbmdacnosweep KB249638