Reputation: 3529
I am getting a runtime error 13 at the end of the following code:
Sub plausibilitaet_check()
Dim rs As DAO.Recordset
Dim rs2 As ADODB.Recordset
Dim db As database
Dim strsql As String
Dim strsql2 As String
Dim tdf As TableDef
Set db = opendatabase("C:\Codebook.mdb")
Set rs = db.OpenRecordset("plausen1")
Set rs2 = CreateObject("ADODB.Recordset")
rs2.ActiveConnection = CurrentProject.Connection
For Each tdf In CurrentDb.TableDefs
If Left(tdf.Name, 4) <> "MSys" Then
rs.MoveFirst
strsql = "SELECT * From [" & tdf.Name & "] WHERE "
Do While Not rs.EOF
On Error Resume Next
strsql2 = "select * from table where GHds <> 0"
Set rs2 = CurrentDb.OpenRecordset(strsql2)
The error occurs at Set rs2 = CurrentDb.OpenRecordset(strsql2)
Can someone see where I am going wrong?
Upvotes: 1
Views: 9472
Reputation: 91376
You are mixing up ADO and DAO. In this case rs2 should be a DAO recordset.
Sub plausibilitaet_check()
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim db As database
Dim strsql As String
Dim strsql2 As String
Dim tdf As TableDef
Set db = opendatabase("C:\Codebook.mdb")
Set rs = db.OpenRecordset("plausen1")
For Each tdf In CurrentDb.TableDefs
If Left(tdf.Name, 4) <> "MSys" Then
rs.MoveFirst
strsql = "SELECT * From [" & tdf.Name & "] WHERE "
Do While Not rs.EOF
On Error Resume Next
strsql2 = "select * from table where GHds <> 0"
Set rs2 = CurrentDb.OpenRecordset(strsql2)
Upvotes: 2
Reputation: 33484
CurrentDB.OpenRecordset returns an instance of DAO.Recordset. You are trying to assign the result to ADODB.Recordset
Change the rs2 definition to
dim rs2 as DAO.Recordset
Upvotes: 3