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 :

Problème Extraction requête ACCESS lié à SQL server sous EXCEL [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é
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2011
    Messages : 163
    Par défaut Problème Extraction requête ACCESS lié à SQL server sous EXCEL
    Bonjour,

    Je vous présente mon problème.

    J'ai une base access, dans cette base toute mes tables sont sont liées à SQL server.
    J'ai une requête avec paramètre qui fonctionne. Le problème, je dois à chaque fois entrer un mot de passe pour pouvoir lancer ma requête pour qu'elle puisse se connecter au table SQL server.

    Mon problème provient de se mot de passe, je monte un outil sous excel qui m'extrait cette requête automatiquement, le problème je ne sais pas en vba comment intégrer la prise en charge du mot de passe pour pouvoir l extraire automatiquement. Pour le moment je me retrouve avec une erreur " Erreur d execution 1004" Erreur générale ODBC"

    Voici le code que j'utilise pour faire mon extraction ( ce code fonctionne car je l'utilise pour d'autre requête access qui ne sont pas lié à SQL server )

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    'Procédure qui permet d'extraire les données de la base Zotra via un Query
    Private Sub extraction_dqy(flag, chemin_fichier_dqy, fichier_dqy, param1, param2, param3, param4, chemin_base_access, chemin_fichier_model, fichier_model, requete)
     
        'On intègre dans les variables (xlodbc, num, base, res) les différentes informations à injecter dans le DQY par la suite
        xlodbc = "XLODBC"
        num = 1
        base = "DSN=MS Access Database;DBQ=" & chemin_base_access & ";DefaultDir=" & chemin_fichier_model & ";DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"
     
     
        If flag = 0 Then
            res = "EXEC " & requete & " '" & param1 & "','" & param2 & "'"
        ElseIf flag = 1 Then
            res = "EXEC " & requete & " '" & param1 & "','" & param2 & "','" & param3 & "','" & param4 & "'"
        End If
     
     
     
            'On intègre les informations dans le fichier DQY
            'For Output As permet, à l'ouverture du fichier DQY de supprimer sont contenus et d'intégrer les nouvelles informations
            intFic = FreeFile
            Open chemin_fichier_dqy & fichier_dqy For Output As intFic
            Print #intFic, xlodbc
            Print #intFic, num
            Print #intFic, base
            Print #intFic, res
            Close intFic
     
      If flag = 0 Then
     
            'On lance l'éxécution du fichier DQY
            With ActiveSheet.QueryTables.Add(Connection:= _
                "FINDER;" & chemin_fichier_dqy & fichier_dqy & "", _
                Destination:=Range("A1"))
                .Name = "saison"
                .FieldNames = True
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .BackgroundQuery = True
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = True
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .PreserveColumnInfo = True
                .Refresh BackgroundQuery:=False
            End With
     
        ElseIf flag = 1 Then
     
     
            Sheets("feuil2").Select
     
            'On lance l'éxécution du fichier DQY
            With ActiveSheet.QueryTables.Add(Connection:= _
                "FINDER;" & chemin_fichier_dqy & fichier_dqy & "", _
                Destination:=Range("A1"))
                .Name = "saison_histo"
                .FieldNames = True
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .BackgroundQuery = True
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = True
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .PreserveColumnInfo = True
                .Refresh BackgroundQuery:=True
            End With
     
        End If
     
     
    End Sub
    Si quelqu’un peut m'éclairer pour résoudre se problème.

    Cordialement

    Shakapouet

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2011
    Messages : 163
    Par défaut
    J'ai trouvé le problème , relié la table access que j'utilise pour ma requete en enregistrant le mot de passe avt l'import dans access

  3. #3
    Invité
    Invité(e)
    Par défaut
    Dans Access, supprime tes tables oui refais tes liaisons en cochant la case mémoriser mot de passe!

    Je t'invite vivement à mettre un mot de passe sur ton. Base Access; car il manquerait plus d'avoir accès en libre service à Sql Server via ta base Access.

    Tu pourras gérer le mot de passe d'Access dans Excel sans avoir à ressaigner le mot de passe d'Sql serveur!

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

Discussions similaires

  1. Actualisation d'une Tableau SQL server sous excel en VBA
    Par Surinox dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/06/2015, 09h03
  2. Migration requétes access vers SQL server.
    Par un2troi dans le forum Access
    Réponses: 3
    Dernier message: 09/11/2007, 01h57
  3. [vba] Problème de pass d'access vers sql server
    Par fix105 dans le forum Access
    Réponses: 5
    Dernier message: 22/02/2006, 16h31
  4. Problème Access to Sql Server
    Par vuldos dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/08/2004, 15h56

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