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 :

[VBA] Recordset public, requête SQL associée public aussi ?


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut [VBA] Recordset public, requête SQL associée public aussi ?
    Bonjour,

    Dans mon formulaire, quand j'ai sélectionné un élément de ma liste modifialble je veux vérifier si mon recordset (dépendant de cet élément) créé publiquement dans une procédure fonctionne, j'utilise recordCount et une MsgBox et il y a une erreur sur la ligne qui correspond à la MsgBox

    Comment se fait-ce ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    re,

    sans ton code cela risque d'être dur pour t'aider

    Dolphy

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    voilà le code : (cmb_IDEq est une liste déroulante, allKindDisp est une procédure d'affichage indépendante de la MsgBox et chk_allKind est une checkBox)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub cmb_IDEq_Change()
    AllKindDisp
    Me.chk_allKind.Enabled = True
    MsgBox rsPFT.RecordCount
    End Sub
    et là c'est la procédure dans laquelle je crée le recordset :

    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
    Public Sub Update_All_Same_Proj_Fam_Type()
    Dim IDETemp As Integer
    Dim SQL As String
    Dim SQLallUpd As String
    Public rsPFT As DAO.Recordset
    Dim DB As DAO.Database
    Set DB = CurrentDb
    Dim rst As DAO.Recordset
     
    SQL = " SELECT  [Equipments].[IDEquipment] FROM Equipments"
    SQL = SQL & " WHERE [Equipments].[IDFamily] IN (SELECT [Equipments].[IDFamily] FROM Equipments "
    SQL = SQL & " WHERE [Equipments]![IDEquipment] = "
    SQL = SQL & cmb_IDEq & ") And [Equipments].[IDType] IN (SELECT [Equipments].[IDType] FROM Equipments "
    SQL = SQL & " WHERE [Equipments]![IDEquipment] = "
    SQL = SQL & cmb_IDEq & ") And [Equipments]![IDEquipment] <> "
    SQL = SQL & cmb_IDEq & ";"
     
     
    Set rsPFT = DB.OpenRecordset(SQL, dbOpenDynaset)
     
     
        If rsPFT.RecordCount = 0 Then
               MsgBox "No similar equipment"
        Else
     
            Set rst = CurrentDb.OpenRecordset("EquipmentCharacteristics")
            rsPFT.MoveFirst
     
            While Not (rsPFT.EOF)
                rst.AddNew
                rst!IDEquipment = rsPFT.Fields("IDEquipment").Value
                rst!IDCharacteristic = Chr(34) & cmb_IDcharacteristic & Chr(34)
                rst!CharacValue = Chr(34) & txt_value & Chr(34)
                rst.Update
                rsPFT.MoveNext
            Wend
     
     End If
     
    End Sub
    Merci d'avance :p

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public rsPFT As DAO.Recordset
    doit être déclaré dans l'entête d'un module.

    Starec

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    Salut,

    Je l'ai déclaré en tête de module, mais il y a une erreur 91 maintenant : objet non défini, il faut aussi que je le définisse en tête de module ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu coché la référence Microsoft DAO 3.6 Object Library ?

    Starec

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    Pardon c'est la variable Objet ou variable de bloc With qui n'est pas définie ! Je m'ai gourré

    Chef Oui Library cochée Chef !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Il faut que tu mettes ta msgbox dans ta routine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update_All_Same_Proj_Fam_Type
    et qu'avant tu l'appelles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Update_All_Same_Proj_Fam_Type()
    Starec

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    Tu veux dire qu' à la place actuelle de l'appelle de la MsgBox je mets Call Update_machin et que dans Update_machin je mets la MsgBox ?

    (parce que si j'appelle Update_machin la précodéure d'ajout va s'effectuer, alors que ce que je veux c'est voir si le le recodrset rsPFT est créé)

Discussions similaires

  1. [XL-2010] VBA Excel 2010 - Requête SQL Noms de champs + données
    Par ChipsAlaMenthe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/05/2015, 19h04
  2. [XL-2007] Problème requête SQL en VBA // nb recordset
    Par Ahlina dans le forum Excel
    Réponses: 1
    Dernier message: 31/03/2013, 06h27
  3. [Access2003/VBA]Evolution de requète SQL
    Par cotmar dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/08/2006, 00h00
  4. [Access2003/VBA]Evolution de requète SQL
    Par cotmar dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/08/2006, 11h02
  5. [VBA - ACCESS 2002] Problème RecordSet/Requête SQL
    Par SamLeChiseuji dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 16/06/2006, 10h01

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