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 :

traduction de commandes [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Par défaut traduction de commandes
    Bonjour ,

    j'essaie de gérer mes requêtes et autres directement à partir de mon excel mais l'exercice de traduction s'avère infructueux. voila ci-dessous mon code qui ne fonctionne pas de tte évidence à cause de la ligne en rouge.
    quelle est la bonne synthaxe?


    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
    Private Sub Workbook_Open()
    
    Dim oDb As DAO.Database
    Dim LngNouvelleValeur As Long
    Dim StrSQL As String
    
    LngNouvelleValeur = 0
    Set oDb = CurrentDb
    StrSQL = "SELECT algorithme_mises.nid, Sum(algorithme_mises.montant) AS SommeDemontant FROM algorithme_mises, algorithme_enchere GROUP BY algorithme_mises.nid HAVING (((algorithme_mises.nid)>100))"
    
    Set oRst = oDb.OpenRecordset(StrSQL, dbOpenTable)
    
    While Not oRst.EOF
    LngNouvelleValeur = oRecordset.Value + LngNouvelleValeur
    oRecordset.MoveNext
    Wend
    InputBox (LngNouvelleValeur)
    
    'Libération des objets
    oRst.Close
    oDb.Close
    Set oRst = Nothing
    Set oDb = Nothing
    
    End Sub

    Sincèrement,

    Will

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Bonjour,

    Quel est le message d'erreur ?
    Ceci dit, il y a plus simple que de faire une boucle qui semble inutile dans le code présenté.
    [Access] Les bases du débogage => ici

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Bonjour,

    Qui est oRecordset ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LngNouvelleValeur = oRecordset.Value + LngNouvelleValeur
    oRecordset.MoveNext
    oRst n'est pas déclaré.

    Currentdb sous excel ? Ca existe ?

    La référence DAO est activé ?

    Le message d'erreur comme le suggère Kloun.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Par défaut erreur 424 après changement
    J'ai fait quelques petits changements mais j'ai cette erreur 424. Je suppose qu'effectivement CurrentDb n'est pas la bonne commande. Je veux prendre mes données de
    C:\Users\Raphaël Saclé\Documents\Base de données1.aacdb,
    comment faut-il procéder?

    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
    Private Sub Workbook_Open()
     
    Dim oDb As DAO.Database
    Dim LngNouvelleValeur As Long
    Dim StrSQL As String
    Dim oRst As DAO.Recordset
     
     
    LngNouvelleValeur = 0
    Set oDb = CurrentDb
    StrSQL = "SELECT algorithme_mises.nid, Sum(algorithme_mises.montant) AS SommeDemontant FROM algorithme_mises, algorithme_enchere GROUP BY algorithme_mises.nid HAVING (((algorithme_mises.nid)>100))"
     
    Set oRst = oDb.OpenRecordset(StrSQL, dbOpenTable)
     
    While Not oRst.EOF
    LngNouvelleValeur = oRst.Fields("SommeDeMontant").Value + LngNouvelleValeur
    oRst.MoveNext
    Wend
    InputBox (LngNouvelleValeur)
     
    'Libération des objets
    oRst.Close
    oDb.Close
    Set oRst = Nothing
    Set oDb = Nothing
     
    End Sub

  5. #5
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Bonjour,

    Il y a une erreur sur ouverture du recordset ==> un recordset contenant un ordre SQL ne s'ouvre pas comme une table (dbOpenTable) mais comme une requête sql , dbOpenSnapshot étant le plus judicieux dans ton cas, soit(en vert la correction):
    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
    Private Sub Workbook_Open()
     
    Dim oDb As DAO.Database
    Dim LngNouvelleValeur As Long
    Dim StrSQL As String
    Dim oRst As DAO.Recordset
     
     
    LngNouvelleValeur = 0
    Set oDb = CurrentDb
    StrSQL = "SELECT algorithme_mises.nid, Sum(algorithme_mises.montant) AS SommeDemontant FROM algorithme_mises, algorithme_enchere GROUP BY algorithme_mises.nid HAVING (((algorithme_mises.nid)>100))"
     
    Set oRst = oDb.OpenRecordset(StrSQL, dbOpenSnapshot)
     
    While Not oRst.EOF
    LngNouvelleValeur = oRst.Fields("SommeDeMontant").Value + LngNouvelleValeur
    oRst.MoveNext
    Wend
    InputBox (LngNouvelleValeur)
     
    'Libération des objets
    oRst.Close
    oDb.Close
    Set oRst = Nothing
    Set oDb = Nothing
     
    End Sub

  6. #6
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Le produit cartésien, c'est voulu ?
    [Access] Les bases du débogage => ici

  7. #7
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Par défaut
    j'ai toujours l'erreur 424 qui devient 3343 après changement de oDd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oDb = OpenDatabase("C:\Users\Rap\Documents\Base de données1.accdb")
    je pense qu'il y a une erreur à cette ligne mais ej ne sait aps comment savoir a quelle ligne est l'erreur.
    Quelqu'un y verait il plus clair ?

  8. #8
    Membre émérite Avatar de dumas.blr
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2010
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2010
    Messages : 599
    Par défaut
    1) Pour déclarer ta database, au lieu d'utiliser le currentdb
    utilise plutôt l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set Odb = DBEngine.Workspaces(0).Databases(0)
    2) comme précisait Loufab, le produit cartésien, ça va pas trop le faire
    Tu n'aurais pas oublié de faire ta jointure ?

    3) si tu souhaites ouvrir une autre Base se donnée, la commande appropriée serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oDb = dbengine.OpenDatabase("C:\Users\Rap\Documents\Base de données1.accdb")
    pour ces instructions, n'hésite pas à regarder d'abords l'aide en ligne de Access, qui est très bien faite, avant de poser la question sur le forum.

  9. #9
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    bjr,

    Merci de mettre le texte du message en entier plutôt que son numéro.
    On ne connait pas tous les messages par coeur.

    Dans outils => références : quelles sont les références cochées?
    Est-ce Microsoft DAO 3.6 Object Library?

    Si oui alors il faut essayer de le décocher et utiliser à la place :
    Microsoft Office 12.0 Access database engine Object

    Sinon je doute que DAO 3.6 puisse ouvrir un accdb.

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

Discussions similaires

  1. Avez vous la traduction des commande powershell en francais ?
    Par typhoons dans le forum Programmation système
    Réponses: 0
    Dernier message: 14/12/2013, 21h58
  2. Cherche logiciel de traduction en ligne de commande windows
    Par maxeur dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 13/07/2010, 09h56
  3. Réponses: 2
    Dernier message: 01/09/2006, 23h04

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