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

Access Discussion :

mise à jour variable clé ou création avec outil externe


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut mise à jour variable clé ou création avec outil externe
    Bonjour,

    Je suis une nouvelle utilisatrice Access.

    J'aimerais utiliser une fonction qui a été créer pour mettre à jour une variable dans Excel, dans Access.

    Voici la fonction:

    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
     
    Option Explicit
    'Excel VBA Function to call the AphiaNameService
    Public Function getAphiaID(ScientificName As String) As Single
      Dim objSClient As SoapClient30
      Dim AphiaID As Single
     
      Set objSClient = New SoapClient30
      Call objSClient.MSSoapInit(par_WSDLFile:="http://www.marinespecies.org/aphia.php?p=soap&wsdl=1")
     
      'Call the web service
      AphiaID = objSClient.getAphiaID(ScientificName, True)
      Set objSClient = Nothing
     
      getAphiaID = AphiaID
    End Function
    Pour le moment, je l'ai mise dans un module.

    Je voulais créer une macro pour créer une nouvelle variable (qui je croyais était plus facile que de mettre ma variable clé à jour dans ma table où elle est unique ainsi que toute les autres tables associées).

    Voici la macro que j'ai transformée en visual basic pour vous la montrer (avec ses erreurs)

    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
     
    Option Compare Database
     
    '------------------------------------------------------------
    ' getAphiaID1
    '
    '------------------------------------------------------------
    Function getAphiaID1()
    On Error GoTo getAphiaID1_Err
     
        With CodeContextObject
            Dim nouveau_Aphia_ID As Variant
            DoCmd.OpenTable "espece_general", acViewNormal, acEdit
            nouveau_Aphia_ID = getAphiaID(.espece_general.ScientificName_accepted)
            DoCmd.RepaintObject acTable, "espece_general"
            Exit Function
        End With
     
     
    getAphiaID1_Exit:
        Exit Function
     
    getAphiaID1_Err:
        MsgBox Error$
        Resume getAphiaID1_Exit
     
    End Function
    Merci de votre aide ou pour vos suggestions.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Je ne saisi pas bien ton code.
    Tu semble mettre à jour une valeur dans la table de référence "espece_general".

    Si oui, voici du code qui fait cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim db as dao.database:set db=currentdb
    dim r as dao.recordset:set r=db.openRecordset("espece_general", dbOpenDynaset)
    r.edit
    r![nouveau_Aphia_ID]=getAphiaID(CodeContextObject.espece_general.ScientificName_accepted)
    r.update
    db.close:set db=nothing
    Aussi dans tes modules ajoute au début, sous Option Compare.

    Cela oblige à déclarer les variables ce qui permet d'attraper certains bugs parfois vicieux ou une faute de frappe change complètement le comportement de ton programme car au lieu de récupérer la valeur attendue tu récupères la valeur par défaut (0, chaîne vide, Null) attribuée par le compilateur.

    Dans les options de l'éditeur de code, il ya une option pour que cette directive soit ajoutée automatiquement.

    Autre chose, les objets VBA (appellés "modules de classe") sont EXTRÈMENT limités. VBA, c'est un langage procédural (comme COBOL ou BASIC) qui utilise des objets. Pas un VRAI langage objet comme VB.Net ou JAVA.

    A+

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse, je suis en train de l'étudier un peu pour pouvoir bien écrire par moi-même.

    Il y a un "bug" pour le moment, mais je vais travailler un peu là dessus avant de poser d'autres questions.


    Lysandre

Discussions similaires

  1. Réponses: 15
    Dernier message: 12/12/2011, 17h07
  2. [DOM] Parser un fichier xml avec mise à jour variable
    Par toussef dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 20/01/2010, 11h48
  3. Réponses: 2
    Dernier message: 22/06/2008, 15h06
  4. Problème de mise à jour des champs Auto incrémentés avec VB6.
    Par NHenry dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/05/2007, 16h06
  5. SSIS : mise à jour variable
    Par kaboume dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/08/2006, 11h25

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