Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1034 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL / Excel] 100 grosses requêtes à faire et VBA ne veut pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL / Excel] 100 grosses requêtes à faire et VBA ne veut pas

n°1804278
JacenX
Light Years Ahead
Posté le 24-10-2008 à 16:41:30  profilanswer
 

Bonjour,
 
Je dois régulièrement importer les résultats de 100 requêtes SQL dans Excel.  
J'ai essayé d'utiliser VBA et ODBC pour faire une macro mais certaines requétes sont trop "tordues" et ça ne passe pas.  
Y'aurait-il un programme qui permette de faire des requêtes à la chaîne et de tout envoyer vers Excel?  
J'ai bien vu SQL batch suite sur google mais ce n'est qu'un shareware, le site du créateur est fermé et il est donc impossible d'acheter la version définitive...
 
Merci!

mood
Publicité
Posté le 24-10-2008 à 16:41:30  profilanswer
 

n°1804297
couak
Posté le 24-10-2008 à 17:15:54  profilanswer
 

rien à voir avec SQL, tout dépend de la manière dont tu veux le faire et avec quoi
perso j'aurais fait un script perl qui permettrait de prendre une requête SQL en paramètre et qui ressort le résultat au format CSV

n°1804371
Ptit loup
Quand c'est flou, y'a un loup
Posté le 24-10-2008 à 21:11:38  profilanswer
 

Excel gère très bien les requêtes SQL, même tordues !! tu pourrais faire voir ton code VBA et ta requête ?

n°1804387
JacenX
Light Years Ahead
Posté le 24-10-2008 à 22:21:44  profilanswer
 

Merci pour votre aide!
Bah mon code c'est du truc de bourrin qui connait rien VBA (macro enregistrée quoi :o)

With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        "ODBC;DSN=Firebird;Driver=Firebird/InterBase(r) driver;Dbname=server:C:\interbase.Ib;CHARSET" _
        ), Array("=NONE;;UID=admin" )), Destination:=Range("A1" ))
        .CommandText = Array( _
        "select sum((amccomprimento/1000000)*(amclargura/1000000)*m.medvalormm*c.cambitola/1000*amcpecas)" & Chr(13) & "" & Chr(10) & "from amarrado a, cabamarra c, medidas m, amacelulas ac, producaoindustrial pi, prodindamarrado pa, ind" _
        , _
        "ustrializacao i" & Chr(13) & "" & Chr(10) & "where pi.pridata between '05/01/2008' and '05/31/2008'" & Chr(13) & "" & Chr(10) & "and (pi.maqcodigo=44 or pi.maqcodigo=41)" & Chr(13) & "" & Chr(10) & "and pa.piaentsai='E'" & Chr(13) & "" & Chr(10) & "and piaindproduto = i.indcodigo" & Chr(13) & "" & Chr(10) & "and pi.pricodigo=pa.pricodigo" & Chr(13) & "" _
        , _
        "" & Chr(10) & "and pa.amacodigo=a.amacodigo" & Chr(13) & "" & Chr(10) & "and a.indcodigo=1" & Chr(13) & "" & Chr(10) & "and i.sticodigo=2" & Chr(13) & "" & Chr(10) & "and pi.ultatualizacao > '04/01/2008'" & Chr(13) & "" & Chr(10) & "and a.amacodigo=ac.amacodigo " & Chr(13) & "" & Chr(10) & "and a.camcodigo=c.camcodigo " & Chr(13) & "" & Chr(10) & "and c.medbit=m.medcodigo " & Chr(13) & "" & Chr(10) & "and a" _
        , "mccomprimento>=2100000" & Chr(13) & "" & Chr(10) & "and camtipo not in ('M', '2', 'S', '3')" )
        .Name = "interbase"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With


MS query me retourne un résultat nul alors que le résultat... n'est pas nul.


Message édité par JacenX le 24-10-2008 à 22:22:27

---------------
Light Years Away.
n°1804703
Ptit loup
Quand c'est flou, y'a un loup
Posté le 26-10-2008 à 13:51:41  profilanswer
 

et avec une requête plus simple, il te retourne qq chose ?
le truc que je me dit... c'est est-ce que le format de date est bien pris en compte entre autre... ?
 
(c'est des italiens qui ont fait la base de données ???)

n°1804722
JacenX
Light Years Ahead
Posté le 26-10-2008 à 16:16:39  profilanswer
 

oui avec des requêtes simples j'ai les résultats escomptés.


---------------
Light Years Away.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL / Excel] 100 grosses requêtes à faire et VBA ne veut pas

 

Sujets relatifs
[Résolu]Faire évoluer une requête SQLfeuille excel -> mysql + adobe indesign
Passage de vba excel à vba accessExcel macro filtre sur onglet
SQL COPY PostgresMacro excel called from Matlab?
Equivalent de la fonction TEXTE d Excel ?code vba protection feuille excel sauf userform
Regrouper plusieurs classeurs excel en 1 seul 
Plus de sujets relatifs à : [SQL / Excel] 100 grosses requêtes à faire et VBA ne veut pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR