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

Macros et VBA Excel Discussion :

VBA ADO avec Excel sur le serveur marche pas [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut VBA ADO avec Excel sur le serveur marche pas
    Bonjour,
    Mon code fonctionne très bien sur ma machine, mais j'ai un probleme des
    que je passe sur le serveur :
    maintenant j'ai l'erreur : -2147217904
    voici ma chaine de connection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set cn = New ADODB.Connection
        With cn
            .Provider = "MSDASQL"
            .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
    "DBQ=" & targetFile & "; ReadOnly=False;IMEX=1;"
            .Open
        End With
    ce qui donne un parametre de connexion SUR MON POSTE:
    "Provider=MSDASQL.1;Extended Properties="DBQ=D:\RH\Entrées 2010.xls;Driver={Microsoft Excel Driver (*.xls)};DriverId=790;MaxBufferSize=2048;PageTimeout=5;ReadOnly=0;""
    Faut il modifier un parametre de la connexion ? (a la limite je fais un replace)

    Merci de vos idées

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    a chaud

    targetFile est bien le même sur le serveur???
    donc, le drive D existe bien sur les deux machones et pointe sur le même endroit?

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    En fait "targetfile" est le chemin d'accès au fichier qui est spécifié par l'utilisateur via un Application.GetOpenFilename qui remplit une cellule nommée que je récupère comme chemin.

    Donc normalement spécifié correctement.

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    je me pose une question

    tu n'essaye pas d'ouvrir un fichier genre "blabla.xlsx"???
    je pense qu'il attends plutot "blabla.xls"

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Bonjour,

    En fait il se connecte une premiere fois (lors du parcours de la premiere feuille) puis il ne veut plus se connecter.
    C'est peut être du à ma gestion du RecordSet
    Mais je ne peux tout tester en live, (mon accès au réseau est limité)
    Je vous met le code, merci de votre retour :
    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
    cpt_Mois = 0
    Nb = ActiveWorkbook.Sheets.Count
    While mois < Nb
        For cpt_BU = 0 To 7
        Set sh = ActiveWorkbook.Sheets(mois)
        With sh
                feuille = .Name
                strQuery = "select Nom,[Trig#_Recruteur],[REM annuelle]/12 from " & "[" & feuille & "$] where [BL/BU]=" & "'" & lesBU(cpt_BU) & "'"
                Set rs = New ADODB.Recordset
                rs.Open strQuery, cn, adOpenDynamic, adLockReadOnly
               ThisWorkbook.Sheets(1).Cells(7 + cpt_BU * 25, 2 + cpt_Mois * 7).CopyFromRecordset rs
                rs.Close
            Set rs = Nothing
     
            End With
        Next cpt_BU
    mois = mois + 1
    cpt_Mois = cpt_Mois + 1
    Wend

  6. #6
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    Je n'ai pas tester, mais pourrais-tu essayer ce code?

    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
    Sub testADO()
    Set rs = New ADODB.Recordset
    cpt_Mois = 0
     
     
    For mois = 1 To ActiveWorkbook.Sheets.Count
        For cpt_BU = 0 To 7
            Set sh = ActiveWorkbook.Sheets(mois)
            strQuery = _
                "SELECT Nom,[Trig#_Recruteur],[REM annuelle]/12 " & _
                "FROM " & "[" & sh.Name & "$] " & _
                "WHERE [BL/BU]=" & "'" & lesBU(cpt_BU) & "';"
            rs.Open strQuery, cn, adOpenDynamic, adLockReadOnly
            ThisWorkbook.Sheets(1).Cells(7 + cpt_BU * 25, 2 + cpt_Mois * 7).CopyFromRecordset rs
            rs.Close
        Next cpt_BU
        cpt_Mois = cpt_Mois + 1
    Next mois
     
    End Sub

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

Discussions similaires

  1. requete marche sur le serveur marche pas sur le site
    Par ben_skywalker dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/12/2008, 12h07
  2. Ouverture d'un fichier excel sur un serveur
    Par Drost dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/11/2007, 14h34
  3. Problème d'envoie de mail avec PHP sur le serveur Linux
    Par Nessma dans le forum Administration système
    Réponses: 0
    Dernier message: 03/09/2007, 16h06
  4. Réponses: 1
    Dernier message: 11/08/2007, 04h21
  5. [Upload] transférer un fichier excel sur le serveur
    Par essono dans le forum Langage
    Réponses: 5
    Dernier message: 31/01/2007, 19h35

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