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 :

utiliser le max d'une clé


Sujet :

VBA Access

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut utiliser le max d'une clé
    bonjour,

    j'essaye d'ajouter un enregistrement dans une table. pour cela l'utilisateur me donne un nom et en cliquant sur un bouton ca va l'ajouter dans la table avec une clé que je calcule.

    pour cela j'ai essayé de faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    MaxSection = "select MAX(id_section) from section"
    Set rs = db.OpenRecordset(requete)
     
     
     
        If (Me.Texte22.Value <> "") Then
     
            rs.AddNew
            rs!id_section = MaxSection + 1
            rs!lib_section = Me.Texte22.Value
    ...
    ma clé est id_section et je cherche donc à récupérer le max auquel j'ajoute 1.

    le pb est que mon MaxSection est in Integer donc j'ai une 'erreur incompatibilité de type' sur ma premiere ligne.

    comment puis je faire? j'ai essayé de trouver comment convertir un string mais j'ai trouvé StrConv qui converti en minuscule ou en majuscule ou.... mais ca m'interessse pas

    donc :
    est ce bien comme ca que je dois faire? (recupérer le max et ajouter 1)?
    si oui,comment palier à mon probleme?

    merci

    edit : en fait mon pb vient du fait que maxsection contient la requete... comment faire pour qu'il contienne le resultat? (le max)

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Euh....

    Déja écrit comme ca, dans ton code, MaxSection, c'est du texte, et ca renvoie "select MAX(id_section) from section", et non pas le résultat de ta requête.

    Essai plutôt un (en activant les références DAO) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
     
    Set db = DBEngine.OpenDatabase(Application.CurrentProject.FullName) 
    Set rst = db.OpenRecordset("select MAX(id_section) from section")
     
    TonIndex = rst.Fields(0) + 1
     
    Set rst = Nothing
    Set db = Nothing
    Ce code sous entend que ta requête sql soit juste.

    Par contre pourquoi ne pas mettre ta clef en NuméroAuto, comme ca t'as pas a la calculer quand on ajoute un enregistrement (et puis ca reviens a prendre le max id_section et lui ajouter un...)

    A oui j'aillais oublier, rs renverra rien à mon avis, sauf si plus haut tu as définit pour requete une requête valide.

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

    Une autre méthode est d'utiliser la fonction de domaine DMax voir

    Starec

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    ah oui,

    je vais utiliser un numéroauto bonne idée, j'y pensais plus...

    merci

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

Discussions similaires

  1. Utiliser MAX dans une jointure
    Par gotcha5832 dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/07/2014, 01h00
  2. Utilisation de MAX avec String dans une requête SQL
    Par Sun03 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/04/2010, 12h22
  3. Utilisation de MAX() dans une boucle
    Par renaud26 dans le forum Langage
    Réponses: 5
    Dernier message: 21/04/2009, 15h32
  4. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  5. Réponses: 3
    Dernier message: 11/03/2004, 10h58

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