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

IHM Discussion :

Pour ne pas afficher le formulaire si table vide !!!???


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 52
    Points : 25
    Points
    25
    Par défaut Pour ne pas afficher le formulaire si table vide !!!???
    Bonjour,

    D'habitude, pour permettre de ne pas afficher un formulaire si sa table est vide, je mettais ce code dans l'évènement sur ouverture.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        DoCmd.RunCommand acCmdRefresh
        Dim a As Recordset
        Set a = Me.RecordsetClone
        If a.RecordCount = 0 Then MsgBox "No data"
    Je viens de passer en access 2003 et ca ne semble plus fonctionner ??

    Y a t'il une autre méthode ??

    Merci les z'amis .... du web ...

    Chrisssssssss ....

    [EDIT]
    rajout des tags code par obipadawan
    [/EDIT]

  2. #2
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut Pour ne pas afficher le form
    salut
    Je te propose de lancer une requete sur la tble à l'ouverture du formulaire.
    Dans l'evenement sur ouverture comme tu l'as fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim a As Recordset, StrSql as string
    StrSql ="Select MaTable.* From MaTable;"
    Set a = currentdb.openrecordset(StrSql)
    If a.RecordCount = 0 Then MsgBox "No data"

  3. #3
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    salut,
    Il faudrait peut-être ajouter
    après MsgBox "...". Mais je ne vois pas pourquoi ça marchait sur une version < 2003 et pas sur access 2003
    8)
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  4. #4
    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
    Tu n'oublieras pas non plus d'ajouter une référence DAO à ton projet.
    Outils--> Réference coches microsoft DAO 3.X

    Quant au déclaration des variables, pour éviter des conflits dans les bibliothèques, il vaut mieux donner la librairie devant le type.
    Et tu peux aussi utiliser la propriété EOF de l'objet recordset.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim rst As DAO.Recordset, StrSql as string 
    StrSql ="Select MaTable.* From MaTable;" 
    Set rst = currentdb.openrecordset(StrSql) 
    If rst.eof Then MsgBox "No data" 
    set rst=nothing

  5. #5
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Exact tof',
    perso j'ai plutôt tendance à utiliser ceci sans recordset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Private Sub Form_Open(Cancel As Integer)
     
        With CodeContextObject
           If (.RecordsetClone.RecordCount = 0) Then
              Msgbox "..."            
                 Cancel = True 
         End If
       End With
    End Sub
    8)
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  6. #6
    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
    Oui, mais là tu as déjà chargé le formulaire. Qu'en utilisant un recordset, tu peux le faire sur le bouton du formulaire appelant et ainsi empécher le chargement. Donc, gain de ressource

  7. #7
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Je le fais avec bouton de form appelant et sur l'événement Open pas Load.
    ça charge le form qd même ds ce cas précis à ton avis? (Question pas ironie )
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  8. #8
    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
    Citation Envoyé par l'aide
    Open Þ Load Þ Resize Þ Activate Þ Current
    Donc a prioiri, il ne se load pas. Ceci dit, il doit quand même utiliser de la ressource. Et vu que tu peux cloner son recordset,c'est que ses données sont chargées non ?

  9. #9
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Ok tof' j'en prends note.
    Merci pour tes lumières.
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  10. #10
    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
    Et pour plus de précisions :

    L'événement Open se produit lorsqu'un formulaire est ouvert, avant affichage du premier enregistrement. Pour les états, l'événement Open se produit avant l'aperçu ou l'impression de l'état.

    L'événement Load se produit lorsqu'un formulaire est ouvert et que ses enregistrements sont affichés.
    Donc en fait, je ne pense pas avoir plus raison que toi. Nos deux code doivent revenir au même. Et le mien peut être moins efficace car :

    Sur mon bouton j'ouvre un recordset, si la table est pleine, j'affiche le formulaire puis je recharge un autre recordset. Donc deux recordsets en tout.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 52
    Points : 25
    Points
    25
    Par défaut C bon !!!!!!
    En fait, je pense avoir trouvé ma solution ...

    Le fait de déclarer ma variable en variant et non en recordset et ca marche nikel ...

    Merci de vos aides les z'ammissss ...

    chr ...

  12. #12
    Membre éprouvé
    Avatar de Maître Kenobi
    Homme Profil pro
    Technicien Gestion de Données Techniques sous SAP
    Inscrit en
    Juillet 2002
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Gestion de Données Techniques sous SAP
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2002
    Messages : 672
    Points : 1 219
    Points
    1 219
    Par défaut
    juste une petite precision pour Chrissrare, dans tes futurs messages, n'oublies pas les balises code stp ! thanks
    Que la Force soit avec vous !
    En autoformation : Linux, Python, Bases de données open source, Unity 3D, GODOT, ...

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

Discussions similaires

  1. [Joomla!] Comment faire pour ne pas afficher le template Joomla
    Par fuhraih dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 16/02/2009, 16h49
  2. Ne pas afficher un formulaire principale
    Par anouar_chaieb dans le forum IHM
    Réponses: 5
    Dernier message: 20/01/2009, 20h24
  3. Réponses: 3
    Dernier message: 29/01/2008, 11h32
  4. Réponses: 8
    Dernier message: 30/11/2007, 14h15
  5. Réponses: 2
    Dernier message: 26/03/2007, 17h25

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