Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/03/2011, 17h17   #1
Nouveau Membre du Club
 
Avatar de Cabos
 
Homme Francois
Responsable de service informatique
Inscription : novembre 2010
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme Francois
Âge : 43
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique

Informations forums :
Inscription : novembre 2010
Messages : 33
Points : 37
Points : 37
Par défaut Problème avec Findfirst

Bonjour,

Après avoir longuement cherché sur ce forum, j'ai toujours un souci avec l'instruction FindFirst.

Quand j'exécute le code suivant (objectif : pointer sur un enregistrement précis dans une table) :

Dim R_BL as Recordset

....

critere = "[lf_nummer] = BL-" & refcol
R_BL.FindFirst critere

je reçois systématiquement le message :

"Opération non autorisée pour ce type d'objet".

J'ai essayé avec d'autres syntaxes genre :

critere = "lf_nummer LIKE " & chr(34) & "BL-" & refcol & chr(34) mais sans plus de succès (même message).

Est-ce un problème de type de Recordset ? Si c'est le cas, comment aurais-je du déclarer R_BL ?

Il me manque énormément de bases sur les Recordset et leur manipulation, donc même un début de piste serait bon à prendre.

Je vous remercie d'avance de toute l'aide que vous pourrez m'apporter.
Cabos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 18h17   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Essaie en déclarant le recordset comme ça :
Code :
Dim R_BL As DAO.Recordset
Et pour le critère :
Code :
critere = "[lf_nummer] = ""BL-" & refcol & """"
ou
Code :
critere = "[lf_nummer] = " & Chr(34) & "BL-" & refcol & Chr(34)
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/03/2011, 18h18   #3
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 742
Points : 10 742
Envoyer un message via MSN à jpcheck
salut,

comme je crois comprendre que ton champs [lf_nummer] est une chaine de caracteres, essaie avec
Code :
critere = "[lf_nummer] = 'BL-" & refcol & "'"
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/03/2011, 17h11   #4
Nouveau Membre du Club
 
Avatar de Cabos
 
Homme Francois
Responsable de service informatique
Inscription : novembre 2010
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme Francois
Âge : 43
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique

Informations forums :
Inscription : novembre 2010
Messages : 33
Points : 37
Points : 37
Merci de votre aide messieurs,

C'est effectivement un champ texte, j'ai donc couplé vos deux remarques et modifié comme suit le code :

Code :
1
2
3
4
5
6
7
 
Dim R_BL as DAO.Recordset
 
....
 
critere = "[lf_nummer] = 'BL-" & refcol & "'"
R_BL.FindFirst critere
Et j'obtiens le même résultat : "Opération non autorisée pour ce type d'objet".

Je vais tout de même ré-essayer une exécution pas à pas, pour vérifier que c'est bien toujours cette partie du code qui bloque, et pas la suite...
Cabos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 18h44   #5
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

C'est peut-être un problème de type de recordset.
FindFirst n'est supporté que par les types Dynaset et Snapshot.

Essaie avec un recordset de type Dynaset (constante dbOpenDynaset).
(Voir exemple ici)

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/03/2011, 16h32   #6
Nouveau Membre du Club
 
Avatar de Cabos
 
Homme Francois
Responsable de service informatique
Inscription : novembre 2010
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme Francois
Âge : 43
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique

Informations forums :
Inscription : novembre 2010
Messages : 33
Points : 37
Points : 37
C'est effectivement un problème de type, résolu par le type Dynaset.

Non seulement j'ai résolu mon problème, mais j'y vois aussi un peu plus clair sur les types de Recordset et les options possibles.

Merci encore de votre aide messieurs.

Je place le sujet en résolu.
Cabos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h08.


 
 
 
 
Partenaires

Hébergement Web