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

VBA Access Discussion :

Problème attribution valeur recordset variable


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 298
    Par défaut Problème attribution valeur recordset variable
    Bonjour tous le modne,
    je voudrais attribuer la vlauer d'un recordset à une variable.

    Dans mons cas le recordset voulu correspond au resultat de count d'une requête sql.

    Mais si il n'y à aucun enregistrement, cela plante.

    J'ai essayer avec On error goto mais sa ne done rien.

    Je vous join le code ci dessou :

    ne chercher pas d'erreur dans le reste du code car celui ci fonctionquand ce cas particulier n'arrive pas.
    L'erreur est bien au niveau du test

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
     
    Private Sub Emplacement_AfterUpdate()
     
    Dim db As Database
    Dim rq As Recordset
    Dim rq1 As Recordset
    Dim resultat As Integer
    Dim Nombre_A As Integer
    Dim Chrono As Long
    Dim datev As Date
    Set db = CurrentDb()
     
     
    datev = Forms.Formulaire_Principal.Dejeuner.Form.Date.Value
    Chrono = Forms.Formulaire_Principal.Dejeuner.Form.Chrono.Value
     
    Set rq = db.OpenRecordset("SELECT Date, Chrono,Count(ID_Employe) FROM CRP WHERE Chrono = " & Chrono & "And Date = #" & datev & "# GROUP BY Date, Chrono")
    Set rq1 = db.OpenRecordset("SELECT Date, Chrono,Count(ID_Employe) FROM Accompagnement WHERE Chrono = " & Chrono & "And Date = #" & datev & "# GROUP BY Date, Chrono")
     
     
     
    On Error GoTo sierreurrq1
        Nombre_A = rq1(2)
     
    rq:
    On Error GoTo sierreurrq
        resultat = rq(2)
     
     
    calcul:
     
         If Forms.Formulaire_Principal.Rang.Value = "Rang 1" Or Forms.Formulaire_Principal.Rang.Value = "Rang A" Then
           If Forms.Formulaire_Principal.Dejeuner.Form.Emplacement.Value = "RMH" Then
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_B.Value = Forms.Formulaire_Principal.Nombre.Form.Nombre_personne.Value + Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Invite_La_hague.Value + Nombre_A
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_2.Value = 0
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_1.Value = 0
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_A.Value = 0
           End If
     
           If Forms.Formulaire_Principal.Dejeuner.Form.Emplacement.Value = "Restaurant 2" Then
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_2.Value = Forms.Formulaire_Principal.Nombre.Form.Nombre_personne.Value + Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Invite_La_hague.Value + Nombre_A
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_B.Value = 0
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_1.Value = 0
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_A.Value = 0
           End If
     
           If Forms.Formulaire_Principal.Dejeuner.Form.Chauffeur.Value = "Oui" Then
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Plat_Jour.Value = 1 + resultat
           Else
              Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Plat_Jour.Value = resultat
           End If
     
        ElseIf Forms.Formulaire_Principal.Rang.Value = "Rang 2" Or Forms.Formulaire_Principal.Rang.Value = "Rang 3" Then
              If Forms.Formulaire_Principal.Dejeuner.Form.Emplacement.Value = "RMH" Then
                    Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_A.Value = Forms.Formulaire_Principal.Nombre.Form.Nombre_personne.Value + Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Invite_La_hague.Value + resultat + Nombre_A
                    Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_1.Value = 0
                    Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_B.Value = 0
                    Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_2.Value = 0
              End If
     
              If Forms.Formulaire_Principal.Dejeuner.Form.Emplacement.Value = "Restaurant 2" Then
                    Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_1.Value = Forms.Formulaire_Principal.Nombre.Form.Nombre_personne.Value + Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Invite_La_hague.Value + resultat + Nombre_A
                    Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_A.Value = 0
                    Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_B.Value = 0
                    Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Menu_2.Value = 0
              End If
     
              If Forms.Formulaire_Principal.Dejeuner.Form.Chauffeur.Value = "Oui" Then
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Plat_Jour.Value = 1
              Else
                Forms.Formulaire_Principal.Dejeuner.Form.Nombre_Plat_Jour.Value = 0
           End If
     
        End If
     
        Exit Sub
     
    sierreurrq1:
        Nombre_A = 0
        GoTo rq
     
    sierreurrq:
        resultat = 0
        GoTo calcul
     
     
    End Sub
    J'attribue donc à resultat et à Nombre_A la valeur du recordset.
    Si aucun enregistrement n'eest compté, je voudrais que la valeur de ces variables sois à 0.

    merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Par défaut
    essayes ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if rq.EOF = false then
     resultat = rq(0)    ' valeur si resultat
     nombre_A = rq(0)
    else
     nombre_A = 0     ' valeur si aucun résultat
    end if

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 298
    Par défaut
    merci beaucoup ça fonctione nickel.

  4. #4
    Membre chevronné
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Par défaut
    de rien ! Penses a mettre résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pthread et problème de valeur de variables globales
    Par arkerone dans le forum POSIX
    Réponses: 8
    Dernier message: 13/04/2011, 23h07
  2. Réponses: 2
    Dernier message: 11/02/2008, 22h02
  3. Réponses: 4
    Dernier message: 31/07/2007, 21h52
  4. [MySQL] problème avec la récupération des valeurs des variables POST
    Par Jasmine80 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 11/05/2007, 16h08
  5. Problème de valeur null dans un recordset
    Par Petzouille57 dans le forum Access
    Réponses: 3
    Dernier message: 19/05/2005, 11h27

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