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 :

Importation fichier via HTTPS [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut Importation fichier via HTTPS
    Bonjour,

    Je fais actuellement un stage et pour mon projet, je dois quotidiennement me connecter sur un site en HTTPS pour importer un fichier.

    Je voudrai donc savoir s'il est possible d'avoir le code pour récupérer automatiquement ce fichier sachant que ce site nécessite un login et mot de passe qu'il faut rentrer dans un web form.

    Merci de votre aide!

    ps: je suis sur ACCESS 2003

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,

    est-ce que la solution proposee dans la concernant les FTP te conviendrait ?
    http://access.developpez.com/sources...hiers#EnvoiFTP
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut
    Je vais essayer demain et je vous tiendrai au courant, dans tous les cas, merci pour votre réponse rapide!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut
    Il faut preciser que je me connecte sur un serveur HTTPS; je suis débutant en VBA ACCESS, Toutefois, je vais essayer de changer ftp par https pour voir.

    Une autre question, je ne peux pas ajouter la référence wininet.dll dans mon projet. Est-ce normal?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut
    Malheureusement, je n'arrive toujours pas a télécharger ce fichier sur internet HTTPS.
    Avez vous une solution, cela pourrait grandement m'aider.

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,

    tu peux nous dire dans quelle mesure tu as tente d'adapter le code propose en lien plus haut stp ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre Expert
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 885
    Par défaut
    bonjour à tous
    Ajoute la reference ms winHTTP 5.1.. à tes references

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function AutentificationAvecWinHTTP()
        Dim whrReq As WinHttp.WinHttpRequest, strUrl As String
        Set whrReq = New WinHttp.WinHttpRequest
     
        strUrl = "https://www................................."
        whrReq.Open "GET", strUrl, False
     
        whrReq.Send
        MsgBox whrReq.Status
    End Function
    Quel message est renvoyé par msgbox?

    @+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut
    Salut a vous deux.

    En fait voila, je me connecte sur ce site : https://memberlch.uk.hibm.hsbc/Reporting , une fois que j'ai accepter le message de sécurité , j'ai un msgbox très simple qui me demande un login et un mot de passe pour me connecter au site, ensuite je peux enfin entrer dans la page et aller dans les liens de la page pour télécharger le fichier qu'il me faut.

    Je voulais donc un code VBA sur access 2003 (car je lie ce fichier a une table) qui puisse aller sur ce site, entrer le login et mot de passe(donc sans que j'ai besoin d'entrer le code et mot de passe manuellement et appuyer sur ok) et copier le fichier txt sur mon disque dur.

    Est ce que tu peux me donner le code en entier si possible keita?

    Je vais essayer déjà le bout de code demain et je vous tiendrai au courant.

    Merci pour aide.

  9. #9
    Membre Expert
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 885
    Par défaut
    Hello
    Est ce que tu peux me donner le code en entier si possible keita?
    Mais bien sûr que je le veux julienWUHAN;
    j'avais voulu seulement que tu testes le bout de code que je t'ai envoyé pour voir si ton pb pouvais être traité avec WinHTTP. Essayons comme ceci pour voir:
    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 Function AutentificationAvecWinHTTP()
        Dim whrReq As WinHttp.WinHttpRequest, strUrl As String
        Set whrReq = New WinHttp.WinHttpRequest
        Const HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0
        Const HTTPREQUEST_SETCREDENTIALS_FOR_PROXY = 1
     
        strUrl = "https://memberlch.uk.hibm.hsbc/Reporting"
        ' Assemble une requête HTTP.
        whrReq.Open "GET", strUrl, False
        whrReq.SetCredentials Me.txtLogin, Me.txtMotDePasse, HTTPREQUEST_SETCREDENTIALS_FOR_SERVER
        ' whrReq.SetCredentials Me.txtLogin, Me.txtMotDePasse, HTTPREQUEST_SETCREDENTIALS_FOR_PROXY
        whrReq.Send
        msgbox whrReq.Status & "  " & whrReq.StatusText
        ' Teste le statut du code retourné par le serveur.
        Select Case whrReq.Status
            Case 200    ' Document retrouvé; la requete a aboutit
                Me.txtMessage = whrReq.ResponseText
            Case 401    ' Le serveur demande une authentication
                MsgBox "Erreur d'authentification (serveur)." & vbCrLf & "Revoir le login et/ou le mot de passe.", vbExclamation, "Mon appli"
                Exit Function
            Case 407  ' Demande d'identification par le proxy
                MsgBox "Erreur d'authentification (proxy)." & vbCrLf & "Revoir le login et/ou le mot de passe.", vbExclamation, "Mon appli"
                Exit Function
        End Select
    End Function
    1/ Tu crées un form, 2 zones de texte (txtLogin et txtMotDePasse) et un bouton
    2/ tu appelles la function çi-dessus avec le bouton
    3/ C'est le retour donné par msgbox whrReq.Status & " " & whrReq.StatusText qui nous permettra de choisir entre les 2 constantes:
    Const HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0
    ou
    Const HTTPREQUEST_SETCREDENTIALS_FOR_PROXY = 1

    Une fois le code retour connu, tu pourras effacer la ligne du msgnox
    Tu devras peut être indiquer l'extension de Reporting.
    Si c'est une image, le code changera.
    j 'espère que ça va marcher.

    @+

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut
    Bonjour à vous tous!

    Merci infiniment à Keita pour ses précieux conseil et mille merci à LedZeppII pour son aide qui m'a permis de resoudre enfin mon problème.

    Le code marche parfaitement. Maintenant au lieu de l'ouvrir dans le textbox, je voudrais seulement le copier sur mon disque dur.

    Je vous envoye le code que j'ai modifié légerement pour mes besoins :

    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
     Const SSL_Ignore_InvalidDateOrExpired = &H2000      ' Invalid date or certificate expired
    Dim txtLogin, txtMotDePasse As String
     
    txtLogin = "Monlogin"
    txtMotDePasse = "Monpasse"
     
        strUrl = "https://memberlch.uk.hibm.hsbc/Reporting/HBF/SwapClear/Trade/REP00084%20-%20Trade%20Level%20Report%20(SCM)_%201.TXT"
     
     
        ' Assemble une requête HTTP.
     whrReq.Open "GET", strUrl, False
        whrReq.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = _
                      SSL_Ignore_UnknownCAorUntrustedRoot _
                    + SSL_Ignore_WrongUsage _
                    + SSL_Ignore_InvalidCN _
                    + SSL_Ignore_InvalidDateOrExpired
     
        whrReq.SetCredentials txtLogin, txtMotDePasse, HTTPREQUEST_SETCREDENTIALS_FOR_SERVER '  -----> changer
     
        ' whrReq.SetCredentials Me.txtLogin, Me.txtMotDePasse, HTTPREQUEST_SETCREDENTIALS_FOR_PROXY
     
        whrReq.Send
     
           ' Teste le statut du code retourné par le serveur.
     
        Select Case whrReq.Status
     
            Case 200    ' Document retrouvé; la requete a aboutit
     
           Me.txtMessage = whrReq.ResponseText   
     
            Case 401    ' Le serveur demande une authentication
     
                MsgBox "Erreur d'authentification (serveur)." & vbCrLf & "Revoir le login et/ou le mot de passe.", vbExclamation, "Mon appli"
     
                Exit Function
     
            Case 407  ' Demande d'identification par le proxy
     
                MsgBox "Erreur d'authentification (proxy)." & vbCrLf & "Revoir le login et/ou le mot de passe.", vbExclamation, "Mon appli"
     
                Exit Function
     
        End Select
     
     
    End Function
     
    Private Sub Commande4_Click()
    Call AutentificationAvecWinHTTP
    End Sub
    Je voudrais donc à la ligne Case 200 , copier ce fichier sous le nom de Monfichier.txt sur "C:\dossier "


    Merci encore une fois à vous tous !!!!!

  11. #11
    Membre Expert
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 885
    Par défaut
    bonjour
    Je voudrais donc à la ligne Case 200 , copier ce fichier sous le nom de Monfichier.txt sur "C:\dossier "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...................
    ...................
    Case 200    ' Document retrouvé; la requete a aboutit
     
           Me.txtMessage = whrReq.ResponseText   
           Open "C:\dossier\Monfichier.txt" For Output As #1
           Print #1, Me.txtMessage
           Close #1
    Ou bien pour ne pas passer par Me.txtMessage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...................
    ...................
    Case 200    ' Document retrouvé; la requete a aboutit        
    '       Me.txtMessage = whrReq.ResponseText   
           Open "C:\dossier\Monfichier.txt" For Output As #1
           Print #1, whrReq.ResponseText 
           Close #1
    @+

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut
    Merci INFINIMENT!! Mon problème est entièrement résolu cette fois ci!

    Encore Merci Keita et bonne journée à vous tous!!

    Ce forum est vraiment super!!

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

Discussions similaires

  1. télécharger fichier via HTTP(S)
    Par xx_FiFty_xx dans le forum C#
    Réponses: 1
    Dernier message: 10/06/2008, 07h49
  2. telechargement fichier via HTTP et URL
    Par maverick56 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 15/01/2008, 11h56
  3. Upload des fichiers via http
    Par yanis97 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/04/2007, 14h01
  4. Recupere un fichier via HTTP
    Par kedare dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 31/10/2006, 19h13
  5. Vérification de l'existance d'un fichier via HTTP
    Par mouste79 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 02/02/2006, 14h26

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