Error '3251'

Loic_7447 Mensajes publicados 32 Fecha de registro   Estado Miembro Última intervención   -  
f894009 Mensajes publicados 17417 Fecha de registro   Estado Miembro Última intervención   -
Hola a todos,

He creado un formulario para añadir líneas a una tabla de mi BBD.

Entre estas líneas, hay un campo "Proveedor".
Deseo que cuando alguien ingrese en este campo un proveedor que aún no existe en la BBD, se le dirija a otro formulario para introducir la información de este nuevo proveedor.

Para ello, he escrito este código (integrado en el código principal del formulario):
Set rsref = db.OpenRecordset("tFournisseurs") rsref.FindFirst ("Fournisseur='" + CStr(Me.txt_fournisseur) + "'") If rsref.NoMatch Then MsgBox ("Proveedor no registrado, será dirigido a la página de adición") DoCmd.OpenForm ("fAjout_Fournisseur") End If


Pequeño problema, me muestra el mensaje: "Error de ejecución '3251': operación no autorizada para este tipo de objeto."
El depurador me indica la línea 2 (
rsref.findfirst...
).

Aquí está el código completo:
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 ("Por favor, complete todos los campos") 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 ("Referencia añadida con éxito") 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 ("Proveedor no registrado, será dirigido a la página de adición") 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


Espero que puedan ayudarme a resolver este problema!

2 respuestas

  1. f894009 Mensajes publicados 17417 Fecha de registro   Estado Miembro Última intervención   1 717
     
    Hola,

    He hecho pruebas con su sintaxis, ¡sin errores!

    Siguiente:
    Tengo el error, pero necesitaría su archivo para confirmar.
    0
  2. Loic_7447 Mensajes publicados 32 Fecha de registro   Estado Miembro Última intervención  
     
    Lo siento, no puedo acceder a enlaces externos.
    0
    1. f894009 Mensajes publicados 17417 Fecha de registro   Estado Miembro Última intervención   1 717
       
      Hola,

      ¡Eviten poner a "" los cuadros de texto antes de usarlos!

       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 ("Por favor, complete todos los campos") 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 ("Referencia añadida con éxito") ' RAZ AQUÍ 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) + "'") 'por lo tanto error 
      0