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 :

Dmax à partir d'outlook 2003


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Par défaut Dmax à partir d'outlook 2003
    Bonjour,

    J'ai besoin que l'on m'aiguille sur une syntaxe dmax.

    A partir d'outlook, je cherche a me connecter à une bdd access 2003 et afficher la valeur la plus haute contenu dans un champ id-unik.

    Si je vais dans l'aide, la fonction Dmax correspond à ce que je veux (du moins je pense lol)

    ...Les fonctions DMin et DMax renvoient les valeurs minimale et maximale qui satisfont à critère...
    Comme d'hab, je dois merdouiller sur la syntaxe, la connexion, tout...

    Voila le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const MaDatabase = "c:\bdd\contacts.mdb"
    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
    Private Sub checkNbre()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strsql As String
     
    strsql = "Select * from contacts"
     
    Set db = OpenDatabase(MaDatabase)
    Set rs = db.OpenRecordset(strsql)
     
    MsgBox DMax("[ID_Unik]", "Contacts")
     
    Set db = Nothing
    Set rs = Nothing
     
    End Sub
    merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Par défaut
    j'ai modifié la chaine sql. Elle fonctionne sous access.

    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
     Private Sub checkNbre()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strsql As String
    
    strsql = "SELECT DISTINCTROW Max([Contacts].[ID_Unik]) AS [Max De ID_Unik]FROM Contacts;"
    
    Set db = OpenDatabase(MaDatabase)
    Set rs = db.OpenRecordset(strsql)
    
    MsgBox ?????????
    
    Set db = Nothing
    Set rs = Nothing
    
    End Sub
    Je reformule ma question :
    Comment récupérer le résultat de cette requete pour l'afficher dans un msgbox et éventuellement la stocker dans une variable ?

    merci d'avance

  3. #3
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 043
    Par défaut
    Comment récupérer le résultat de cette requete pour l'afficher dans un msgbox et éventuellement la stocker dans une variable ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim lMax as Long
     
    lMax =DMax("[ID_Unik]", "Contacts")
    MsgBox lMax
    et voilou

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Par défaut
    en fait, cela me fait une erreur 2950 - erreur réservé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
    15
    16
    17
    18
    Private Sub checkNbre()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strsql As String
    Dim lMax As Long
    strsql = "SELECT DISTINCTROW Max([Contacts].[ID_Unik]) AS [Max De ID_Unik]FROM Contacts;"
    
    Set db = OpenDatabase(MaDatabase)
    Set rs = db.OpenRecordset(strsql)
    
    lMax = DMax("[ID_Unik]", "Contacts") '<--erreur 2950 - erreur réservée
    
    MsgBox lMax
    
    Set db = Nothing
    Set rs = Nothing
    
    End Sub

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 043
    Par défaut
    Pourquoi tant de code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub checkNbre()
     
    Dim lMax As Long
     
    lMax = DMax("[ID_Unik]", "Contacts") '<--erreur 2950 - erreur réservée
     
    MsgBox lMax
     
    End Sub
    Question : que veux-tu faire avec ton id max , à part l'afficher ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Par défaut
    Pourquoi tant de code ?
    je tente de faire une base de donnée partagée ayant une synchro bidirectionnelle avec les contacts outlook locaux de plusieurs postes.

    La synchro fonctionne entre outlook et access, mais j'ai des soucis si une fiche est mal renseignée (Nom de famille manquant par ex.), cela me fout la grouille, création de doublons notament. Ma solution est de créer un ID unique qui sera stocké dans un champs personnalisé de la fiche contact.

    Pour répondre à ta question c'est parce qu'étant dans la partie vba d'outlook, je dois me connecter à la base access

    Dans la table contact de la bdd, j'ai un champ ID_unik (indexé sans doublons). La valeur est numérique. Un nouveau contact se verra attribué un nouvel id unique (incrémenent de +1 à l'enregistrement id_unik le plus fort, si par ex. c'est 18, le nouveau sera 19....) voila pourquoi j'ai besoin du résultat. Cela va me permettre de générer le nouvel ID.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/08/2011, 11h24
  2. VBA Créer un mail à partir d'un modèle Outlook 2003
    Par Daejung dans le forum VBA Outlook
    Réponses: 9
    Dernier message: 18/12/2008, 11h12
  3. Réponses: 4
    Dernier message: 30/05/2008, 10h29
  4. Hyperlink vers un formulaire acces, a partir de outlook
    Par The Vandals dans le forum Access
    Réponses: 2
    Dernier message: 21/10/2005, 19h44
  5. Outlook 2003 et Delphi 7
    Par Charette dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 30/08/2005, 13h39

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