[VB Access] - Problème de Recordset

skanel Messages postés 13 Statut Membre -  
 mohammed -
Bonjour,

J'ai un GROS problème! Je cherche à travailler sur une série de table en lecture et en écriture, mais une erreur apparaît invariablement lors de l'initialisation d'un Recorset (Erreur d'exécution 3001 : Argument non valide).

Voilà mes déclarations :

Private Sub C_Lancement_Click()

Dim MaDB As DAO.Database
Dim TRefer As Recordset
Dim Temp1 As Recordset
Dim Temp2 As Recordset
Dim Result As Recordset

Dim URR As String, FullName As String, TypeCarte As String
Dim PartNumber As String, Lot As String, Quantite As String
Dim Total As String

'***** INITIALISATION DES VARIABLES *****
Set MaDB = CurrentDb()
Set TRefer = MaDB.OpenRecordset("T_URR_Lots", OpenRecordset)        'Première ligne d'apparition de l'erreur
Set Temp1 = MaDB.OpenRecordset("T_Temp1", OpenRecordset)
Set Temp2 = MaDB.OpenRecordset("T_Temp2", OpenRecordset)
Set Result = MaDB.OpenRecordset("T_Resultat", dbOpenRecordset)


J'ai déjà regardé partout où je pouvais, j'ai rajouté toutes les bibliothèques qui allaient bien (Microsoft DAO 3.6 Object Library et Microsoft ActiveX Data Objects 2.5 Library), mais il n'y a toujours pas moyen de résoudre mon problème.

QUE DOIS-JE FAIRE??? AIDEZ-MOI, SVP!!

9 réponses

  1. mouste2
     
    Salut ,

    Tu étais sur la bonne piste lorsque tu as été dans les bibliothèques...
    En fait il existe un "conflit" entre "recordset" de la référence DAO (celui que tu utilises) et celui de la référence ADO.
    Donc tu vas dans les refs et tu décoches "Microsoft ActiveX Data Object library" et normalement c'est ok.
    1
  2. skanel Messages postés 13 Statut Membre
     
    Hello

    En effet, ça marche maintenant... Sauf que je ne sais pas coment on récupère des valeurs...

    Je voudrais ranger des valeurs de la table, que je lis grâce à
    Do While TRefer.EOF = False
    , récupérer les valeur des champs de TRefer. J'ai 4 champs (URR, Lot, Département et FullName) que j'aimerai ranger dans des variables locales (portant le même nom).

    J'ai bêtement fait URR = TRefer.URR mais c'est sans succès.

    Je dois avouer que je suis une débutante et que ça fait que 2 semaines que je bosse là dessus, alors je m'excuse si la question est un peu bêbête.

    Merci pour la premuère réponse et d'avance aussi !
    0
  3. mouste2
     
    Salut,

    A mon avis tu devrais te trouver un tutorial sur le vba ;).
    Pour récupérer les valeurs d'un objet de type recordset:

    Trefer.Fields("nomDuChamp").Value
    0
  4. JAROD
     
    merci les gars vous m'avez permis de resoudre un probleme d'acces aux données qui me fatiguais depuis.
    1000 fois merci pour l'info sur les librairies
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. skanel Messages postés 13 Statut Membre
     
    Justement, je cherche un bon tutoriel VBA qui a tout dedans, peut-être que tu saurais me dire lequel est le mieux?... :D

    Et merci pour ta patiente, ô sage maître du VB
    0
  7. khaliltarek
     
    surement que tu dois avoir un recordset de trop . tu dois decocher une des references pour pouvoir enlever le mauvais recordset.

    la methode que tu peus utiliser est
    Set MaDB = CurrentDb()
    Set TRefer = MaDB.OpenRecordset("T_URR_Lots")
    0
  8. mohammed
     
    salut,
    je crois que les recordset sont déclarer comme suit:
    Dim TRefer As DAO.Recordset
    Dim Temp1 As DAO.Recordset
    Dim Temp2 As DAO.Recordset
    Dim Result As DAO.Recordset
    a+.
    Merci
    0