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 access 2000] fermeture d'un recordset


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 54
    Points : 63
    Points
    63
    Par défaut [VBA access 2000] fermeture d'un recordset
    re salut à tous,

    en fait j'ai utilisé un recordset dans ma procedure (de la même manière que d'habitude ) mais là je peut pas le fermer quand j'esseye il me dit objet manquant? alors que les autres fois il me le ferme... et donc la procédure marche très bien avec 'clefrecordset1.Close (donc inactif).
    mais pour ma culture j'aimerai savoir pourquoi sa bloque en fait.

    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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    Private Sub Update_clef_classe()
    'mise a jour du menu deroulant clef_classe
    Dim Text1 As String
    Dim SQL2 As String
    Dim SQL3 As String
    'je vais vérifier qu'il existe bien un enregistrement dans la table classe
    'pour l'espèce recherché
    Text1 = " UNION SELECT [Clef_classe], [Nom], [Debut], [Fin] FROM [ref_classe] WHERE [Nom] = 'INDIFFERENT'"
    If Not IsNull(Me!Clef_espece.Value) Then
    Dim cnn1 As ADODB.Connection
    Set cnn1 = CurrentProject.Connection
    Dim clefrecordset1 As New Recordset
    clefrecordset1.ActiveConnection = cnn1
    SQL2 = "SELECT [Classe] FROM [ref_espece]"
    SQL2 = SQL2 & " WHERE [ref_espece].[Clef_espece] = " & espece.Value
    clefrecordset1.Open (SQL2)
        If Not IsNull(clefrecordset1.Fields("Classe").Value) And clefrecordset1.Fields("Classe").Value = False Then
        'il n'y a pas d'enregistrement j'utilise alors les valeurs par défaut
        SQL3 = "SELECT  [Clef_classe], [Nom] "
        SQL3 = SQL3 & " FROM [ref_classe] WHERE [Debut] IS NULL AND [Clef_espece] IS NULL "
        SQL3 = SQL3 & " ORDER BY [Clef_classe], [Nom] "
        Me!ref_classe_Nom.RowSourceType = "Table/Query"
        Me!ref_classe_Nom.RowSource = SQL3
        Else
        'maintenant j'ai des enregistements dans la table classe
        'si j'ai rentré un age je l'utilise pour préciser la recherche
            If Not IsNull(Me!Age_precis.Value) Then
                Select Case Me!Sexe.Value
                'cas ou le sexe est M
                Case "M"
                    SQL3 = "SELECT  [Clef_classe], [Nom], [Debut], [Fin] "
                    SQL3 = SQL3 & " FROM [ref_classe] WHERE Clef_espece = " & espece.Value
                    SQL3 = SQL3 & " AND Sexe <> 'F'"
                    SQL3 = SQL3 & " AND " & Me!Age_precis.Value & " BETWEEN [Debut] AND [Fin]"
                    SQL3 = SQL3 & " ORDER BY [Fin], [Debut],[Nom], [Clef_classe]"
                    SQL3 = SQL3
                    Me!ref_classe_Nom.RowSourceType = "Table/Query"
                    Me!ref_classe_Nom.RowSource = SQL3
                Case "F"
                'cas ou le sexe est F
                    SQL3 = "SELECT  [Clef_classe], [Nom], [Debut], [Fin] "
                    SQL3 = SQL3 & " FROM [ref_classe] WHERE Clef_espece = " & espece.Value
                    SQL3 = SQL3 & " AND Sexe <> 'M' "
                    SQL3 = SQL3 & " AND " & Me!Age_precis.Value & " BETWEEN [Debut] AND [Fin]"
                    SQL3 = SQL3 & " ORDER BY [Fin], [Debut],[Nom], [Clef_classe]"
                    SQL3 = SQL3
                    Me!ref_classe_Nom.RowSourceType = "Table/Query"
                    Me!ref_classe_Nom.RowSource = SQL3
                Case Else
                'cas ou le sexe est ni M ni F
                    SQL3 = "SELECT  [Clef_classe], [Nom], [Debut], [Fin] "
                    SQL3 = SQL3 & " FROM [ref_classe] WHERE Clef_espece = " & espece.Value
                    SQL3 = SQL3 & " AND " & Me!Age_precis.Value & " BETWEEN [Debut] AND [Fin]"
                    SQL3 = SQL3 & " ORDER BY [Fin], [Debut],[Nom], [Clef_classe]"
                    SQL3 = SQL3
                    Me!ref_classe_Nom.RowSourceType = "Table/Query"
                    Me!ref_classe_Nom.RowSource = SQL3
                End Select
            Else
            'cas ou je n'ai pas rentré d'age
            'cas ou le sexe est M
                Select Case Me!Sexe
                Case M
                'cas ou le sexe est M
                    SQL3 = "SELECT  [Clef_classe], [Nom], [Debut], [Fin] "
                    SQL3 = SQL3 & " FROM [ref_classe] WHERE Clef_espece = " & espece.Value
                    SQL3 = SQL3 & " AND Sexe <> F "
                    SQL3 = SQL3 & " ORDER BY [Fin], [Debut],[Nom], [Clef_classe]"
                    SQL3 = SQL3 & Text1
                    Me!ref_classe_Nom.RowSourceType = "Table/Query"
                    Me!ref_classe_Nom.RowSource = SQL3
                Case F
                    'cas ou le sexe est F
                    SQL3 = "SELECT  [Clef_classe], [Nom], [Debut], [Fin] "
                    SQL3 = SQL3 & " FROM [ref_classe] WHERE Clef_espece = " & espece.Value
                    SQL3 = SQL3 & " AND Sexe <> M "
                    SQL3 = SQL3 & " ORDER BY [Fin], [Debut],[Nom], [Clef_classe]"
                    SQL3 = SQL3 & Text1
                    Me!ref_classe_Nom.RowSourceType = "Table/Query"
                    Me!ref_classe_Nom.RowSource = SQL3
                Case Else
                    'cas ou le sexe est ni M ni F
                    SQL3 = "SELECT  [Clef_classe], [Nom], [Debut], [Fin] "
                    SQL3 = SQL3 & " FROM [ref_classe] WHERE Clef_espece = " & espece.Value
                    SQL3 = SQL3 & " ORDER BY [Fin], [Debut],[Nom], [Clef_classe]"
                    SQL3 = SQL3 & Text1
     
                    Me!ref_classe_Nom.RowSourceType = "Table/Query"
                    Me!ref_classe_Nom.RowSource = SQL3
                End Select
            End If
        End If
    End If
        'clefrecordset1.Close
        SQL2 = ""
        SQL3 = ""
        Set cnn1 = Nothing
    End Sub

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,
    Si Me!Clef_espece.Value est Null, le code ne passe pas par
    Dim clefrecordset1 As New Recordset
    clefrecordset1.ActiveConnection = cnn1

    ...
    clefrecordset1.Open (SQL2)
    Il faudrait descendre le dernier End If après les quatre lignes que tu as mis en rouge tout en bas.

    Bon courage

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 54
    Points : 63
    Points
    63
    Par défaut
    merci de ta réponse sa marche

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

Discussions similaires

  1. [VBA Access 2000] Problème de recordset
    Par yoann7 dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/03/2009, 10h22
  2. VBA ACCESS 2000 - modifier champs du recordset
    Par DYV007 dans le forum VBA Access
    Réponses: 0
    Dernier message: 04/03/2008, 15h38
  3. Problème de date en vba-access 2000
    Par rob2-9 dans le forum Access
    Réponses: 1
    Dernier message: 30/08/2006, 12h13
  4. Aide VBA - Access 2000
    Par amahe dans le forum Access
    Réponses: 1
    Dernier message: 13/08/2006, 10h55
  5. [VBA access 2000]problème surement très bête
    Par herendel dans le forum Access
    Réponses: 5
    Dernier message: 27/04/2006, 14h40

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