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

Requêtes et SQL. Discussion :

Mise à jour de données à partir de données externes


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Mise à jour de données à partir de données externes
    Bonjour a tous,

    je suis en train de créer une application de base de données (Access 2007) à partir de données publiques accessibles par Internet contenu dans un fichier access 2003, zippé pour des raisons de place.
    Ces données publiques que j'ai dézippé et converti en access 2007 m'ont servi à générer l'application.
    Toutefois, j'ai un souci : les données publiques sont updatées régulièrement, et je souhaiterais mettre en place les mises à jour dans mon application.

    1. Est il possible avec Access 2007 d'ecrire une macro ou un module VBA permettant de faire un telechargement d'un fichier de reseau Internet ? de le dézipper ? d'importer les données dans de nouvelles tables, et de faire une requête de mise à jour des données de mon application... ?

    2. Si non, dois-je passer par une application externe qui lance la mise à jour (si elle doit être faite des données) (genre .Net) et en parallèle permet de lancer l'application Access ? Je sais que cette dernière solution est possible, mais j'aimerais l'éviter pour des raisons de temps de programmation.

    3. Dans le cas ou la macro citée en 1 serait possible, quelqu'un pourrait il m'orienter sur les démarches à effectuer ?

    Merci d'avance pour votre aide, positive ou non.

    cordialement

  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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 350
    Points
    34 350
    Par défaut
    salut,
    ca doit etre faisable en vba à mon avis.

    Où se situent ces données publiques ?
    Moyen de téléchargement disponible ? FTP ? HTTP ? cURL ?
    un fois le fichier téléchargé, on pourra aviser (manipulation bien expliquée dans nos tutoriaux)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    merci de m'avoir repondu.

    J'ai en effet cherche dans les tutoriaux, mais rien ne m'a saute aux yeux.

    Pour apporter quelques precisions: je telecharge via le protocole http un fichier .zip
    Je sais coder son telechargement et dezippage automatique avec .Net mais je ne sais pas si Access 2007 peut m'offrir cette opportunite (a priori j'ai rien vu de tel, mais j'ai peut etre pas assez bien cherche)

    Ensuite, je pense que le plus simple en matiere de mise a jour de la base de donnees est de provoquer l'import des donnees dans une nouvelle table de mon appli, verifier la coherence des donnees entre la nouvelle table et l'ancienne via une requete mise a jour. Ce que a priori je devrais parvenir a faire.

    Mon vrai probleme est de savoir si VBA gererait la fonction telechargement du fichier par le protocole HTTP et son dezippage. Dans ce cas quelles pourraient etre les fonctions a utiliser ?

    Merci d'avance pour votre aide.

  4. #4
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 350
    Points
    34 350
    Par défaut
    le dézippage on a des bouts de code tout faits oui,
    pour le téléchargement, je peux te proposer de nous montrer ton code .net et on l'adaptera ensemble

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Je suis au travail et n'ai pas acces a mon code ici bien sur.
    Mais je posterai cette partie ce soir,
    A bientot

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Rebonjour,

    voici le code épuré pour plus de clarté du téléchargement et dézippage...

    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
    Private Sub WebBrowser1_DocumentCompleted()
     
            Dim MAJourPapi As Integer = False
     
            Dim dateMAJ As Date
            Dim d As String
     
    	Dim Site as String="http://pagedefaut/site/"
    	Dim Urldefaut as String="http://urlpardefautdelappli/"
     
    	Dim DownloadedFile as String="htt://pagedefaut/site/telechargement/fichier.zip"
     
            Dim CodeSrc As String = Trim(Webbrowser1.Document.ActiveElement.InnerHtml)
     
            Dim CaseUrl As String = Webbrowser1.Url.ToString
     
            If CaseUrl = Site Then Exit Sub
     
            Select Case CaseUrl
     
                ' Il s'agit de l'adresse de depart, donc on cherche si une mise a jour existe
     
                Case Urldefaut
                    If CodeSrc.Contains("Base de données") Then
     
                        Dim position As Integer = InStrRev(CodeSrc, "Base de données", CodeSrc.Length)
     
                        If position > 0 Then
                            d = Mid(CodeSrc, position + "Base de données</A> (".Length, 10)
                            dateMAJ = CDate(d)
     
    			' On enregistre la date de la derniere mise a jour et on verifie si elle est posterieure a la derniere mise a jour
     
                            Dim ante As Integer = DateDiff(DateInterval.WeekOfYear, My.Settings.DerniereMAJ, dateMAJ)
                            If ante > 0 Then 
                                Dim rep As Integer = MsgBox("Une mise à jour de la base est disponible. Voulez-vous la telecharger ?", MsgBoxStyle.OkCancel, "Mise à jour disponible")
     
                                If rep = vbCancel Then
                                    UpdateDatabase = False
                                    Webbrowser1.Navigate(Urldefaut)
    				' on se positionne sur la page internet par defaut
                                    Exit Sub
                                Else
                                    UpdateDatabase = True
                                    My.Computer.Network.DownloadFile(DownloadedFile , My.Settings.ParamSourcesExport + "\Fichier.zip", "", "", True, 1000, True)
    				' On telecharge le fichier
                                     UpdateDatabaseForm.Show()
    				' PRocedure montrant un formulaire de mesure du telechargement pendant le telechargement pour faire patienter
                                    My.Settings.DerniereMAJ = Today
    				' On change la date de la derniere mise a jour
                                End If
     
                                Dim Chemin As String = My.Settings.ParamSourcesExport + "\Fichier.zip"
                                ' on recupere le chemin de sauvegarde du fichier
                                Dim CheminExtract As String = My.Settings.ParamSourcesExport
     
    			' On decompresse le fichier
     
                                Extractall(Chemin, CheminExtract, True)
     
                                MsgBox("Décompression terminée")
     
     
                                Webbrowser1.Navigate(Urldefaut)
     
                            End If
    		      End If
                    End If
     
                Case Else
     
                    ' pas de telechargement de la mise a jour, on peut donc sortir de la sub
                    Exit Select
     
            End Select
     
     
    End Sub

    A+

Discussions similaires

  1. [Toutes versions] Mise à jour d'une base de données à partir d'une autre
    Par Gado2600 dans le forum VBA Access
    Réponses: 0
    Dernier message: 10/06/2014, 10h52
  2. Réponses: 9
    Dernier message: 16/08/2013, 15h10
  3. Réponses: 0
    Dernier message: 10/12/2009, 18h03
  4. Réponses: 4
    Dernier message: 05/08/2009, 14h00

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