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 :

verifier si une table est vide


Sujet :

IHM

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Points : 68
    Points
    68
    Par défaut verifier si une table est vide
    Bonjour,

    Après m'être balladée sur le site à la recherche d'une réponse, je préfère la poser en direct !
    Dans un formulaire, j'ai tapé du code pour faire des imports de données excel vers des tables Access. Jusque la pas de souci.
    Je voudrais pouvoir faire apparaître un message genre "attention la table de destination contient des enregistrements" au moment ou je clic sur le bouton d'import.
    Il faudrait qu'access puisse "regarder" dans une table si elle est vide ou non, et si elle contient des info, annuler l'opération.....

    Je ne maîtrise pas assez.... mais je suis sure que quelqu'un saura me guider

    D'avance merci !

    Mumu64

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Tu as un super article sur DAO : http://warin.developpez.com/access/dao
    Intéresses toi à la propriété RecordCount.


  3. #3
    Membre du Club
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    Salut Lou Pitchoun,

    Je te remercie pour le lien que je me suis empressée d'aller visiter mais je ne sais pas trop mettre en oeuvre un recordcount.....
    Voici mon exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub import1_Click()
     
    If Me.Recordset.RecordCount = 0 Then
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "matable.xls", True
    ElseIf Me.Recordset.RecordCount = 1 Then
    "annule le processus"
    End If
    Me.année_en_cours_ssform.Requery
     
    End Sub
    Pourrais-tu me dire à quoi correspond le recordset. Il faut bien que je le déclare. Et comment je peux lui indiquer de tout annuler si la table contient des enregistrements ??

    Je te remercie de te pencher sur mon problème.

    Mumu64

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    La déclaration d'un Recordset se fait de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim rst As DAO.Recordset
    Pense à cocher la référence Microsoft DAO x.xx (où x.xx représente une version installé sur ton pc qui dépend de ta version Access)

    Un recordset représente un jeu d'enregistrement (table ou requête) qui peut également servir comme source d'un formulaire ou état.

    Le recordset que tu utilises dans ton code est le jeu d'enregistrement de ton formulaire
    Me représente l'objet courant, ici ton formulaire.

    Ensuite, l'annulation de ton action est mal placée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub import1_Click()
     
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("Nom de ta table Access")
     
    ' On teste si le recordset possède des enregistrements
    If rst.EOF Then
    MsgBox "Il y a des enregistrements"
    Else
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "matable.xls", True
    End If
    Me.année_en_cours_ssform.Requery
     
    End Sub

  5. #5
    Membre du Club
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    Je te remercie pour ces explications très claires !

    Le problème c'est que ça ne marche pas. La table est vide et j'ai le message :
    Il y a des enregistrements

    donc je me suis dit que j'allais apporter ma touche dans ton code et j'ai changé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If rst.EOF Then...
    End If
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If rst.RecordCount = 1 Then.....
    End If
    Et il importe chaque fois, en ajoutant des lignes même si la table est pleine.....
    Hum.... SOS

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Je me suis trompé effectivement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub import1_Click()
     
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("Nom de ta table Access")
     
    ' On teste si le recordset possède des enregistrements
    If Not rst.EOF Then
    MsgBox "Il y a des enregistrements"
    Else
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "matable.xls", True
    End If
    Me.année_en_cours_ssform.Requery
     
    End Sub
    Sinon en utilisant Recordcount, il faut que tu fasses un test supérieur à 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If rst.RecordCount > 0 Then

  7. #7
    Membre du Club
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    SUPER ça marche comme je l'imaginais !!

    Je te remercie vraiment d'avoir passé du temps sur mon problème !

    @ +
    Mumu64

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

Discussions similaires

  1. tester si une table est vide
    Par majudis dans le forum IHM
    Réponses: 1
    Dernier message: 07/12/2009, 12h10
  2. vérifier si une table est vide avant insertion
    Par cashmoney dans le forum JDBC
    Réponses: 7
    Dernier message: 21/04/2009, 17h54
  3. Comment savoir si le champ d'une table est vide?
    Par CleeM dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/07/2007, 11h35
  4. Tester si une table est vide
    Par rsc dans le forum SQL
    Réponses: 2
    Dernier message: 01/07/2004, 16h25
  5. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17

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