Urgent ! problème avec openrecordset

Signaler
Messages postés
18
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
29 juillet 2004
-
Messages postés
48
Date d'inscription
lundi 1 septembre 2003
Statut
Membre
Dernière intervention
5 avril 2006
-
j'ai pb sur une requete que je fais dans un module d'access
et il me met l'erreur : erreur d'execution '13': incompatibilité de type
Pouvez vous m'aider ?
Merci.

Voici mon code:

Dim resultat As Recordset ' Résultat prendra la valeur de la requette "Recordset" "Set resultat = base.OpenRecordset(requete)"
Dim requete As String ' Variable caractère pour la requette SQL
Dim base As Database

Set base = CurrentDb ' La variable base récupère la base de donnée ouverte par strConnection

' Requette SQL générée dans ACCESS
requete = "SELECT T_User.Nom, T_User.[n° user] FROM T_User "

Set resultat = base.OpenRecordset(requete) 'l erreur est ici

resultat.MoveFirst ' Le pointeur se place a la fin de la table

While resultat.EOF = False
a.WriteLine ("-> " & resultat.Fields(0).Value)
f = groupe1(" ", resultat.Fields(1).Value)
resultat.MoveNext
Wend

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut sboiss
Essaye de faire
Dim resultat As New Recordset

Je ne connais pas trop la syntaxe de Access, mais avec les ADO, il faut utiliser le New.

A quelle ligne te donne t-il cette erreur ?

Vala
Jack
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Si tu utilises CurrentDB c que c du vba, je me trompe ?

Tu dis que ta requete est générée ds access : tu veux dire qu'elle existe ds l'onglet "requetes" de ta base ? ou que tu la créée par code vba ?
Et puis, scuses Jack mais le new ne sert qu'à éviter de faire un set variable ..... DAO, ADO ou autre et de coder direct variable ........

Cordialement

CanisLupus
Messages postés
48
Date d'inscription
lundi 1 septembre 2003
Statut
Membre
Dernière intervention
5 avril 2006

Essaye comme ca :

Dim resultat As Object
Dim requete As String

' Requette SQL générée dans ACCESS
requete = "SELECT T_User.Nom, T_User.[n° user] FROM T_User "

Set resultat = CurrentDb.OpenRecordset(requete)

resultat.MoveFirst '

While resultat.EOF = False
a.WriteLine ("-> " & resultat.Fields(0).Value)
f = groupe1(" ", resultat.Fields(1).Value)
resultat.MoveNext
Wend

resultat.close
set resultat = nothing

Voila.
En fait je ne sais pourquoi, quand on définie resultat comme un recordset, ca ne passe pas, alors que si un met object ca passe.

C'est Access