Erreur '3251'

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

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

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

    Suite:
    Ai l'erreur, mais faudrait votre fichier pour confirmer
    1. Voici mon fichier : https://we.tl/t-3sWJzkh4ny

      L'erreur se trouve dans le formulaire "#Ajout_ref".
      1. 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