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 :

Problème de version entre les références sur Win XP et celles de Win 8.1 [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2009
    Messages : 145
    Points : 75
    Points
    75
    Par défaut Problème de version entre les références sur Win XP et celles de Win 8.1
    Bonjour à tous,

    J'ai un soucis avec les références entre 2 OS, Windows XP mon poste de développement actuel et Windows 8.1 le futur poste.

    Avec Win XP j'utilise 2 références :
    Microsoft Excel 8 et Microsoft Word 8, pour des raisons de compatibilités dans mon parc.

    De ce fait tous les PC qui sont sous Windows XP et quelque soit la version d'office (de 97 à 2010), fonctionnent avec ma base de données Access 2010.

    Quand je génère et que je déploie le runtime à partir d'XP, je n'ai aucun soucis, ni sur les postes avec XP, ni avec Windows 8.1, chacun d'eux trouvent les réferences d'Office qu'il faut.

    Le seul soucis, c'est que je voudrais remplacer mon poste de développement sous Win XP par un Win 8.1.

    Hors quand je génère le runtime à partir du poste de développement Win 8.1 j'ai un problème de références avec tous mes PC sous XP, qui ne trouve pas bien sur les références d'Office 14.

    Y a t il une astuce pour que ça marche ? ou dois je rester sous XP tant que j'aurai un PC qui possède cet OS ?

    Peut on charger les références en fonction de l'OS ?

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    Je ne crois que cela vienne du fait que tu es sur un OS différent selon tes postes mais plutôt sur les versions d'Office que tu utilises.
    En effet, les références Office 14 sont celles d'Office 2010.
    Pour 2013, ce sont les références Office 15.

    Pour contourner ce type de problème, réalise tes développements en late binding.

    Le principe est de retirer les références Office externes à ton application (pour une application Access, tu décoches les références Word, Excel etc...) et les variables que tu déclares seront de type Object.

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2009
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Bonjour Gado,

    Tu as un exemple ? car je comprends pas bien...

    Avec les références, je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim wordapp As word.Application
    Dim worddoc As word.document
     
    Set wordapp = New word.Application
    Set worddoc = wordapp.Documents.Open(chemin_document & nomlettre)
    Merci

  4. #4
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    Malheureusement, ton exemple n'est pas assez complet pour bien te montrer comment le transformer...
    En voici un autre sur de l'Access vers Excel.
    Avec les références, tu as, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       Dim wksheet As Excel.Worksheet
    Dim wkbook as excel.workbook
    Dim wkApp as excel.application
    Dim rng as excel.range
     
    Set wkApp = CreateObject("Excel.Application")
    Set wkbook = wkApp.Workbooks.Open("filename") ' Ouverture d'un classeur excel
    Set wksheet = wkbook.Worksheets(wkbook.Worksheets.Count)
     
    rng.entirerow.Insert shift:=xldown ' Insertion d'une ligne
    rng.offset(0, 10).entirecolumn.Insert shift:=xlright  ' Insertion de colonne
    En late binding :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       Dim wksheet As object
    Dim wkbook as object
    dim wkApp as object
    Dim rng as object
     
    Set wkApp = CreateObject("Excel.Application")
    Set wkbook = wkApp.Workbooks.Open("filename") ' Ouverture d'un classeur excel
    Set wksheet = wkbook.Worksheets(wkbook.Worksheets.Count)
     
    rng.entirerow.Insert shift:=-4121 ' Insertion d'une ligne
    rng.offset(0, 10).entirecolumn.Insert shift:=-4152 ' Insertion de colonne
    Donc, tu pourras noter que tes variables Excel passent d'une variable référencée à une variable de type Object (plus besoin d'avoir la référence de cochée) et que les options des fonctions, ne sont plus des noms mais des numéros que tu mets.

    Ce que je fais en général, c'est que je développe dans un premier temps avec les références puis, après validation, je passe tout en late binding.
    Pour trouver les numéros des options, je passe le code en pas-à-pas et le passage de ma souris sur l'option me donne le numéro correspondant.

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2009
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Merci Gado pour tes explications, j'espère que je vais m'en sortir

    Heureusement que j'ai crée des functions, ça sera plus facile à gérer...

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2009
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Ca y est ça marche

    Encore merci, j'ai même déclaré en constante les paramètres qui servaient aux références, comme ça tout mon code est bon

    J'ai regénéré un runtime à partir de mon Win 8.1 vers les postes en XP et nickel ça fonctionne !

    Par contre, ça n'a rien à voir mais on sait jamais, sous XP quand je créais un document word à partir D'access 97, celui ci s'affichait devant la fenêtre d'Access, hors avec Windows 8.1, celui ci se met dans la barre de tache sans s'afficher, alors que le code est le même...

    Aprés avoir crée le document je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    wordapp.Visible = True
    wordapp.WindowState = wdWindowStateMaximize
    Une idée ?

  7. #7
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Selon les versions d'office, cela fonctionne bien.
    Mais pour le résoudre, je ne sais pas, dsl...
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2009
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Salut Gado,

    Pas grave, je vais aller demander dans la bonne section.

    Encore merci pour ton aide précieuse

    A+

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

Discussions similaires

  1. Spool, problème d'espace entre les colonnes
    Par moumoutte32 dans le forum SQL
    Réponses: 15
    Dernier message: 13/10/2011, 12h21
  2. Problème d'entête pour les news sur mon site
    Par jounax dans le forum Langage
    Réponses: 1
    Dernier message: 06/01/2008, 11h11
  3. [Conception]problème de relation entre les tables
    Par vaness76 dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/04/2007, 11h32
  4. Labyrinthe : problème de lien entres les cases
    Par spax dans le forum Prolog
    Réponses: 3
    Dernier message: 20/12/2006, 16h05
  5. [HTML & CSS] Problème d'espace entre les <li>
    Par Yoshidu62 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 17/05/2006, 18h53

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