2008-11-28 7 views
1

Je reçois une erreur d'exécution 13 à la fin du code ci-dessous:Accès: Erreur d'exécution 13 incompatibilité de type

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) 

L'erreur se produit au Set rs2 = CurrentDb.OpenRecordset (strsql2)

Can Quelqu'un voit où je vais mal?

Répondre

2

Vous confondez ADO et DAO. Dans ce cas, rs2 devrait être un jeu d'enregistrements 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) 
+0

En fait, je suis en train de modifier le code donné dans Teh fil « Comment exécuter une boucle de requêtes en matière d'accès » donc je suivrais cette morue e par une condition comme rs2.Open strSQL & « » & rs ! [requête] que je suppose que peut être fait seulement avec – tksy

+0

Vous devez ranger votre code et mettre en place des types de jeux d'enregistrements appropriés pour chaque jeu d'enregistrements. L'exemple de code fourni dans ce thread concerne l'utilisation d'un schéma ADO pour obtenir des tables qui contiennent un champ particulier afin d'éviter l'erreur que vous obteniez. Un jeu d'enregistrements ADO peut ne pas être nécessaire. – Fionnuala

+0

Puis-je utiliser rs2.Open strSQL & "" & rs! [Requête] dans DAO – tksy

3

CurrentDB.OpenRecordset renvoie une instance de DAO.Recordset. Vous essayez d'affecter le résultat à ADODB.RecordSet

Modifier la définition de RS2 à

dim rs2 as DAO.Recordset

Questions connexes