Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 访问:运行时错误13类型不匹配_Ms Access - Fatal编程技术网

Ms access 访问:运行时错误13类型不匹配

Ms access 访问:运行时错误13类型不匹配,ms-access,Ms Access,我在以下代码的末尾遇到运行时错误13: 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.OpenRecordse

我在以下代码的末尾遇到运行时错误13:

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)
次合理性检查()
Dim rs作为DAO.Recordset
将rs2设置为ADODB.记录集
dimdb作为数据库
作为字符串的Dim strsql
作为字符串的Dim strsql2
将tdf调暗为TableDef
Set db=opendatabase(“C:\Codebook.mdb”)
Set rs=db.OpenRecordset(“plausen1”)
Set rs2=CreateObject(“ADODB.Recordset”)
rs2.ActiveConnection=CurrentProject.Connection
对于CurrentDb.TableDefs中的每个tdf
如果左(tdf.Name,4)“MSys”,则
先走一步
strsql=“从[”&tdf.Name&“]WHERE中选择*”
做而不做
出错时继续下一步
strsql2=“从GHds 0所在的表中选择*
Set rs2=CurrentDb.OpenRecordset(strsql2)
错误发生在Set rs2=CurrentDb.OpenRecordset(strsql2)处


有人能看出我的错误吗?

CurrentDB.OpenRecordset返回DAO.Recordset的实例。您正在尝试将结果分配给ADODB.Recordset

将rs2定义更改为


作为DAO.Recordset的dim rs2

CurrentDB.OpenRecordset返回DAO.Recordset的实例。您正在尝试将结果分配给ADODB.Recordset

将rs2定义更改为


作为DAO.Recordset的dim rs2

您将ADO和DAO混为一谈。在这种情况下,rs2应该是DAO记录集

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)
次合理性检查()
Dim rs作为DAO.Recordset
作为DAO.Recordset的Dim rs2
dimdb作为数据库
作为字符串的Dim strsql
作为字符串的Dim strsql2
将tdf调暗为TableDef
Set db=opendatabase(“C:\Codebook.mdb”)
Set rs=db.OpenRecordset(“plausen1”)
对于CurrentDb.TableDefs中的每个tdf
如果左(tdf.Name,4)“MSys”,则
先走一步
strsql=“从[”&tdf.Name&“]WHERE中选择*”
做而不做
出错时继续下一步
strsql2=“从GHds 0所在的表中选择*
Set rs2=CurrentDb.OpenRecordset(strsql2)

您将ADO和DAO混为一谈。在这种情况下,rs2应该是DAO记录集

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)
次合理性检查()
Dim rs作为DAO.Recordset
作为DAO.Recordset的Dim rs2
dimdb作为数据库
作为字符串的Dim strsql
作为字符串的Dim strsql2
将tdf调暗为TableDef
Set db=opendatabase(“C:\Codebook.mdb”)
Set rs=db.OpenRecordset(“plausen1”)
对于CurrentDb.TableDefs中的每个tdf
如果左(tdf.Name,4)“MSys”,则
先走一步
strsql=“从[”&tdf.Name&“]WHERE中选择*”
做而不做
出错时继续下一步
strsql2=“从GHds 0所在的表中选择*
Set rs2=CurrentDb.OpenRecordset(strsql2)

实际上,我正试图修改线程“如何在access中运行查询循环”中给出的代码,因此我将遵循这个条件,如rs2。打开strSQL&&&rs![查询]我想这只能通过ADO完成。您需要整理代码并为每个记录集设置合适的记录集类型。我在该线程中提供的示例代码涉及使用ADO模式来获取包含特定字段的表,以避免出现错误。ADO记录集可能不是必需的。我可以使用rs2吗?打开strSQL&“&rs!”![query]在DAO中,是否可以以我认为你的意思的方式查询记录集,但如果没有一个示例,很难说你想做什么。实际上,我正在尝试修改线程“如何在access中运行查询循环”中给出的代码,因此我将遵循这个条件,如rs2。打开strSQL&&&rs![查询]我想这只能通过ADO完成。您需要整理代码并为每个记录集设置合适的记录集类型。我在该线程中提供的示例代码涉及使用ADO模式来获取包含特定字段的表,以避免出现错误。ADO记录集可能不是必需的。我可以使用rs2吗?打开strSQL&“&rs!”![query]在DAOor中,是否有可能以我认为您的意思的方式查询记录集,但如果没有示例说明您想做什么,就很难说了。