Erreur '3251'

Loic_7447 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai créer un formulaire pour ajouter des lignes à une table de ma BBD.

Parmi ces lignes, il y a un champs "Fournisseur".
Je souhaite que lorsque quelqu'un rentre dans ce champs un fournisseur qui n'existe pas encore dans la BBD, on le dirige vers un autre formulaire pour entrer les informations de ce nouveau fournisseur.

Pour ce faire, j'ai taper ce code (intégré dans le code principal du formulaire) :
Set rsref = db.OpenRecordset("tFournisseurs")
rsref.FindFirst ("Fournisseur='" + CStr(Me.txt_fournisseur) + "'")
    If rsref.NoMatch Then
        MsgBox ("Fournisseur non enregistré, Vous allez être dirigé vers la page d'ajout")
        DoCmd.OpenForm ("fAjout_Fournisseur")
    End If


Petit problème, il m'affiche ce message : "Erreur d’exécution '3251' : opération non autorisée pour ce type d'objet."
Le débogueur m'indique la ligne 2 (
rsref.findfirst...
).

Voici le code entier :
Option Compare Database
Option Explicit

Private Sub btn_ajouter_Click()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rsref As DAO.Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("#tStock_recherche")

    If Me.txt_reference = "" Or Me.txt_fournisseur = "" Or Me.txt_quantité = "" _
          Or Me.txt_outil = "" Or Me.txt_secteur = "" Or Me.txt_emplacement = "" Then
        MsgBox ("Veuillez renseigner toutes les cases")
    Else
        rs.AddNew
        rs!Référence = Me.txt_reference
        rs!Fournisseur = Me.txt_fournisseur
        rs!Quantité = Me.txt_quantité
        rs!Type = Me.txt_outil
        rs!Secteur = Me.txt_secteur
        rs!Emplacement = Me.txt_emplacement
        rs.Update
            MsgBox ("Référence ajoutée avec succès")
        txt_reference = ""
        txt_fournisseur = ""
        txt_quantité = ""
        txt_outil = ""
        txt_secteur = ""
        txt_emplacement = ""
    End If
    
Set rsref = db.OpenRecordset("tFournisseurs")
rsref.FindFirst ("Fournisseur='" + CStr(Me.txt_fournisseur) + "'")
    If rsref.NoMatch Then
        MsgBox ("Fournisseur non enregistré, Vous allez être dirigé vers la page d'ajout")
        DoCmd.OpenForm ("fAjout_Fournisseur")
    End If
   
rs.Close
rsref.Close
db.Close

DoCmd.OpenForm ("#fDétail_outil")

Set rs = Nothing
Set db = Nothing
Set rsref = Nothing

End Sub


J'espère que vous pourrez m'aider à résoudre ce problème !

2 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

J'ai fais des tests avec votre syntaxe, pas d'erreur!

Suite:
Ai l'erreur, mais faudrait votre fichier pour confirmer
0
Loic_7447 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
Voici mon fichier : https://we.tl/t-3sWJzkh4ny

L'erreur se trouve dans le formulaire "#Ajout_ref".
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Evitez de mettre a "" les textbox avant de vous en servir!

    If Me.txt_reference = "" Or Me.txt_fournisseur = "" Or Me.txt_quantité = "" _
          Or Me.txt_outil = "" Or Me.txt_secteur = "" Or Me.txt_emplacement = "" Then
        MsgBox ("Veuillez renseigner toutes les cases")
    Else
        rs.AddNew
        rs!Référence = Me.txt_reference
        rs!Fournisseur = Me.txt_fournisseur
        rs!Quantité = Me.txt_quantité
        rs!Type = Me.txt_outil
        rs!Secteur = Me.txt_secteur
        rs!Emplacement = Me.txt_emplacement
        rs.Update
            MsgBox ("Référence ajoutée avec succès")
        ' RAZ ICI
        txt_reference = ""
        txt_fournisseur = ""
        txt_quantité = ""
        txt_outil = ""
        txt_secteur = ""
        txt_emplacement = ""
    End If
    
Set rsref = db.OpenRecordset("tFournisseurs")
rsref.FindFirst ("Fournisseur='" + CStr(Me.txt_fournisseur) + "'")         'donc erreur
0