IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

[VBA] aucun enregistrement dans un recordset


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Points : 18
    Points
    18
    Par défaut [VBA] aucun enregistrement dans un recordset
    j'ai un bouton qui exécute le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub Commande319_Click()
     
    Dim rst As DAO.Recordset
    Dim db As DAO.Database
     
    'ouverture de la base de donnée
     
    Set db = DBEngine.OpenDatabase("Y:\Outil RIM\Ratio2BIS.mdb")
    Set db = CurrentDb
     
    Set rst = db.OpenRecordset("Select Heur9,Heur10,Heur11,Heur12,Heur13,Heur14,Heur22 From chiffre Where Date2005 = #" & Me.date_ref & "#", dbOpenDynaset)
    MsgBox " le chiffre de 9 heures est : " & rst.Fields("Heur9").Value, vbOKOnly
     
    'fermeture du recordset
    rst.Close
    db.Close
    Set rst = Nothing
    Set db = Nothing
     
    End Sub
    seulement au moment d'éxécuter ce code il me met le message d'erreur 3021 " pas d'enregistrement courant " ( les lignes que la faq conseil de supprimer, ces lignes ne sont pas présentent dans mon programme)

    D'après l'aide d'access, il y a aucun enregistrement dans mon recordset !

    si quelqu'un à une idée sur le problème ?

    Merci pour vos réponses.

  2. #2
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    As-tu testé ta requête pour voir si elle retourne quelque chose ???

    Car si elle ne te retourne rien c'est normal que tu aies ce message ....

    Teste ta requête dans l'éditeur de requête Access et regarde si il y a des enregistrements qui viennent à l'écran ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ("Select Heur9,Heur10,Heur11,Heur12,Heur13,Heur14,Heur22 From chiffre Where Date2005 = #" & Me.date_ref & "#", dbOpenDynaset)
    Si je ne m'abuse pour dire & en SQL il faut utiliser le mot clé AND

    Donc voici comment je ferais ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ("Select Heur9,Heur10,Heur11,Heur12,Heur13,Heur14,Heur22 From chiffre Where (Date2005 = '#' " & Me.date_ref AND " ' ' "# ' ", dbOpenDynaset)
    Védifie aussi tes guillemets ...

    Je te mets un exemple d'une de mes requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ("SELECT * FROM TB_VBA WHERE (fk_formulaire_vba LIKE '" & int_PkFormulaire & "') AND (fk_departement_vba LIKE '" & int_Departement & "')AND (fk_provenance_vba is null) AND (fk_destination_vba LIKE '" & int_Destination & "')AND (fk_description_vba is null);")
    J'espère que j'ai pu t'aider ...
    A la prochaine --- :-)
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Première chose :

    Pourquoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set db = DBEngine.OpenDatabase("Y:\Outil RIM\Ratio2BIS.mdb") 
    Set db = CurrentDb
    Soit tu ouvres une base différentes de currentdb soit currentdb mais pas les deux dans le même objet database, c'est completement inutile voire incohérent.

    Pour tester si un recordset est vide ou plei, il faut tester la propriété EOF à l'ouverture

Discussions similaires

  1. compter un nombre d'enregistrement dans un recordset
    Par adelsunwind dans le forum IHM
    Réponses: 2
    Dernier message: 21/10/2008, 19h11
  2. Trouver la position d'un enregistrement dans un recordset
    Par zooffy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2007, 14h49
  3. position d'un enregistrement dans un RecordSet
    Par zooffy dans le forum ASP
    Réponses: 2
    Dernier message: 23/11/2006, 17h13
  4. position d'un enregistrement dans un recordset
    Par jessy212 dans le forum Access
    Réponses: 4
    Dernier message: 31/08/2006, 10h56
  5. VBA - DAO - recherche dans un recordset
    Par Sebimpro dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/07/2006, 08h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo