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 :

Requête sur base HYPERFILE de WINDEV


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 204
    Points : 98
    Points
    98
    Par défaut Requête sur base HYPERFILE de WINDEV
    Bonjour à tous,

    A partir d'une application EXCEL, développée avec VBA, je dois aller rechercher des infos dans une table d'une base HyperFile.
    J'ai le bon driver qui va bien, mais je n'arrive pas à écrire le code correct qui pourrait me permettre une requête SQL.

    Quelqu'un a-t-il déjà eu le problème ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut
    Moi j'ai dû à executer des requetes sql en DAO si ça peut t'aider je te met mon code


    Cordialement

  3. #3
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Bonjour

    Il y a quelques post qui parle d'HyperFile et d'ODBC
    avec une petite recherche

    Si non tu peux commencer avec l'enregistreur de macro et Query

    Données-Données Externes-Créer une requête

    Tu dis

    Je connais un peu
    Je pourrais peu être t'aider

    Bon Courage
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 204
    Points : 98
    Points
    98
    Par défaut
    Merci pour vos réponses,

    effectivement il y a des post sur le sujet, mais leur lecture fait surtout apparaitre des problèmes.
    De plus c'est souvent dans le sens WINDEV vers EXCEL où là c'est assez facile.

    Donc, tout petit bout de code qui me permettrait d'entrevoir la solution serait le bienvenu.
    Merci par avance.

  5. #5
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Bonjour à toi et à tout le forum,

    Tu n'a pas bien lu les post je pense.

    Et c'est bien ds le sens Bases vers Excel que tu veux, puisque tu veux y faire une requête ou bien j'ai rien compris

    Reformule ton besoin stp

    Bon courage
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut
    Bon jte met un bout de code en DAO et à toi de l'adapter à ce que tu veux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSQL As String
    Set db = DAO.OpenDatabase("m:\Stage Yassine\Suivie de Production.mdb", False, False) ' Chemin de ta base 
    strSQL = "SELECT Sum(Heure) AS [SommeDeHeure], " & _
       "Sum(Compteur]) AS [SommeDeCompteur] " & _
       "FROM MaTable ;"
       Set rs = db.OpenRecordset(strSQL, DAO.dbOpenSnapshot)
    'rs.fields(0) =>pour recupérer la somme des heures
    'rs.fields(1) =>pour recupérer la somme du compteur
    'close recordset
    rs.Close
    j'espere que ça t aidera à avancer dans ton projet bonne chance

    Cordialement

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 204
    Points : 98
    Points
    98
    Par défaut
    Merci infiniment pour ce bout de code.

    Mais effectivement je me suis mal exprimé, car mon besoin est d'aller mettre à jour une table dans une base Hyperfile de WINDEV.

    J'ai essayé sour DAO, et là il m'ouvre bien la base, mais ensuite pour toute les requêtes, il me dit "Incompatibilité de type"
    Sous ADO, que je voudrais utiliser, le code suivant me dit pas de connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim cnx As New ADODB.Connection
    Dim rs As New ADODB.Recordset
     
    cnx.ConnectionString = "ODBC;DSN=Facturation;;ANA=C:\Mes Projets\Facturation\Facturation.wdd;;REP=c:\Facturation\;"
    Req = "select * from FACTURESCLIENTS where FACTURESNOMCLIENTS.NOMCLIENT = DUPONT Albert"
    cnx.Open
    rs.Open Req, cnx, adOpenStatic, adLockOptimistic
    If rs.RecordCount = 0 Then
      ' si pas d'enregistrement, alors c'est là que je devrais ajouter un enregistrement
    End If
    Le pire c'est que ne vois vraiment pas où cela queute ...car le code suivant fonctionne, mais uniquement en consultation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Nomcli = "DUPONT Albert"
     
        Req = "SELECT FACTURESCLIENTS.MONTANTTTC" & Chr(13) & "" & Chr(10) & "FROM C:\Mes Projets\Facturation\Facturation.wdd~FACTURESCLIENTS FACTURESCLIENTS WHERE FACTURESCLIENTS.NOMCLIENT = '" & Nomcli & "'"
        With ActiveSheet.QueryTables.Add(Connection:= _
            "ODBC;DSN=Facturation;;ANA=C:\Mes Projets\Facturation\Facturation.wdd;;REP=c:\Facturation\;" _
            , Destination:=Range("A1"))
            .CommandText = Req
            .Refresh BackgroundQuery:=False
        End With
    Merci pour votre aide.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 204
    Points : 98
    Points
    98
    Par défaut
    Bonjour à tous,

    je progresse... pas très vite, mais je progresse.

    j'ai réussi à remettre d'aplomb le code en DAO pour accéder à la base HyperFile de ma facturation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
           Set Facturation = OpenDatabase("Facturation", dbDriverNoPrompt, False, "ODBC;DSN=Facturation;;ANA=C:\Mes Projets\Facturation\Facturation.wdd")
            Set fa = Facturation.OpenRecordset("FacturesClients")
     
            fa.MoveLast
            fa.AddNew
    mais pourquoi me dit-il toujours que ma base est en lecture seule, je croyais que depuis la version 10 de Vindev, la base HF était accessible en écriture également.
    Faut-il spécifier quelquechose dans le OpenRecordSet (dbOpenTable, il en veut pas)

    Quelqu'un a-t-il la solution ?

    Merci par avance

  9. #9
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Bonjour

    Ton ODBC est avec quel Hyper Fil ?

    Essais avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set fa = Facturation.OpenRecordset("FacturesClients", Type:=dbOpenDynamic, lockedit:=dbPessimistic)
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 204
    Points : 98
    Points
    98
    Par défaut
    Merci Jean Pierre,

    Mon ODBC est avec HyperFile 7.

    j'avais essayé le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Set fa = Facturation.OpenRecordset("FacturesClients", dbOpenDynaset, dbPessimistic)
    puis le tien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            Set Fa = Facturation.OpenRecordset("FacturesClients", Type:=dbOpenDynamic, LockEdit:=dbPessimistic)
    ça me dit: argument non valide !

    Le pilote ODBC vient directement du CD de WINDEV 11.0, je pense que c'est le bon, mais des fois que .....

  11. #11
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    OK

    J'ai eu le même probleme avec HyperFile 7, il n'ouvre qu'en lecture seule
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

Discussions similaires

  1. Requêtes en VB6 sur base HyperFile
    Par amirad dans le forum HyperFileSQL
    Réponses: 4
    Dernier message: 05/01/2009, 14h49
  2. [MySQL] Récupération de recordset suite à requête sur base distante
    Par socca-dens dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/12/2006, 15h16
  3. Execution de requête sur base de données distante
    Par ~~PriVate JoKe~~ dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/11/2006, 21h59
  4. [4D et ASP.NET] Requête sur base 4D
    Par vinz81 dans le forum 4D
    Réponses: 2
    Dernier message: 25/09/2006, 09h16
  5. Requête sur base de données ACCESS
    Par JLamotte dans le forum Access
    Réponses: 1
    Dernier message: 21/11/2005, 10h50

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