En VBA, j'ai une requête pour obtenir des données... mon souci est que je ne
comprend pas un résultat...
C'est une requête assez simple avec une jointure entre deux tables...
Si j'utilise cette requête :
Req = "SELECT dossiers.RaisonSociale, MAX(Factures.datefac) AS
Date_derniere_Facture FROM bdd.dbo.dossiers dossiers, bdd.dbo.Factures
Factures WHERE Dossiers.NEnreg =Factures.NEnregDos GROUP BY
dossiers.RaisonSociale"
J'obtiens bien ma liste de dossiers avec la dernière date de facture... mais
si je veux tout les champs de la table dossiers :
Req = "SELECT dossiers.*, MAX(Factures.datefac) AS Date_derniere_Facture
FROM bdd.dbo.dossiers dossiers, bdd.dbo.Factures Factures WHERE
Dossiers.NEnreg =Factures.NEnregDos GROUP BY dossiers.RaisonSociale"
Là, je me retrouve avec une page vide...
Pour la connexion entre Excel et SQL j'utilise:
With
ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=BdDCpta;Description=BdDCpta;UID=aa;PWD="
& MdP & ";APP=Microsoft Office
2003;WSID=ADMINFO;DATABASE=bdd;LANGUAGE=Français;Network=DBMSSOCN;Regional=yes",
Destination:=Range("A1"))
.CommandText = Req
.Name = "Liste Dossiers"
.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
Hum... je sais que mon souci est limite hors sujet sur le newsgroup Excel...
mais là c'est du VBA et du SQL et sur le newsgroup SQL je serais sûrement
également limite...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour,
Pour obtenir le code et le texte de ta requête, tu lances l'enregistreur de macro et tu exécutes manuellement ta requête utilisant MsQuery. Je ne suis pas certain pour Excel 2007, mais c'est vrai pour les autres versions d'Excel.
"HD" a écrit dans le message de groupe de discussion : hsb1qh$r85$ Bonjour,
En VBA, j'ai une requête pour obtenir des données... mon souci est que je ne comprend pas un résultat...
C'est une requête assez simple avec une jointure entre deux tables...
Si j'utilise cette requête : Req = "SELECT dossiers.RaisonSociale, MAX(Factures.datefac) AS Date_derniere_Facture FROM bdd.dbo.dossiers dossiers, bdd.dbo.Factures Factures WHERE Dossiers.NEnreg úctures.NEnregDos GROUP BY dossiers.RaisonSociale" J'obtiens bien ma liste de dossiers avec la dernière date de facture... mais si je veux tout les champs de la table dossiers : Req = "SELECT dossiers.*, MAX(Factures.datefac) AS Date_derniere_Facture FROM bdd.dbo.dossiers dossiers, bdd.dbo.Factures Factures WHERE Dossiers.NEnreg úctures.NEnregDos GROUP BY dossiers.RaisonSociale" Là, je me retrouve avec une page vide...
Pour la connexion entre Excel et SQL j'utilise: With ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN½DCpta;Description½DCpta;UIDª;PWD=" & MdP & ";APP=Microsoft Office 2003;WSIDMINFO;DATABASE½d;LANGUAGE=Français;NetworkÛMSSOCN;Regional=yes", Destination:=Range("A1")) .CommandText = Req .Name = "Liste Dossiers" .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:úlse End With
Hum... je sais que mon souci est limite hors sujet sur le newsgroup Excel... mais là c'est du VBA et du SQL et sur le newsgroup SQL je serais sûrement également limite...
Merci pour votre aide -- @+ HD
Bonjour,
Pour obtenir le code et le texte de ta requête,
tu lances l'enregistreur de macro et tu exécutes manuellement
ta requête utilisant MsQuery. Je ne suis pas certain pour Excel 2007,
mais c'est vrai pour les autres versions d'Excel.
"HD" <hd@anti.spam.fr> a écrit dans le message de groupe de discussion :
hsb1qh$r85$1@saria.nerim.net...
Bonjour,
En VBA, j'ai une requête pour obtenir des données... mon souci est que je ne
comprend pas un résultat...
C'est une requête assez simple avec une jointure entre deux tables...
Si j'utilise cette requête :
Req = "SELECT dossiers.RaisonSociale, MAX(Factures.datefac) AS
Date_derniere_Facture FROM bdd.dbo.dossiers dossiers, bdd.dbo.Factures
Factures WHERE Dossiers.NEnreg úctures.NEnregDos GROUP BY
dossiers.RaisonSociale"
J'obtiens bien ma liste de dossiers avec la dernière date de facture... mais
si je veux tout les champs de la table dossiers :
Req = "SELECT dossiers.*, MAX(Factures.datefac) AS Date_derniere_Facture
FROM bdd.dbo.dossiers dossiers, bdd.dbo.Factures Factures WHERE
Dossiers.NEnreg úctures.NEnregDos GROUP BY dossiers.RaisonSociale"
Là, je me retrouve avec une page vide...
Pour la connexion entre Excel et SQL j'utilise:
With
ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN½DCpta;Description½DCpta;UIDª;PWD="
& MdP & ";APP=Microsoft Office
2003;WSIDMINFO;DATABASE½d;LANGUAGE=Français;NetworkÛMSSOCN;Regional=yes",
Destination:=Range("A1"))
.CommandText = Req
.Name = "Liste Dossiers"
.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:úlse
End With
Hum... je sais que mon souci est limite hors sujet sur le newsgroup Excel...
mais là c'est du VBA et du SQL et sur le newsgroup SQL je serais sûrement
également limite...
Pour obtenir le code et le texte de ta requête, tu lances l'enregistreur de macro et tu exécutes manuellement ta requête utilisant MsQuery. Je ne suis pas certain pour Excel 2007, mais c'est vrai pour les autres versions d'Excel.
"HD" a écrit dans le message de groupe de discussion : hsb1qh$r85$ Bonjour,
En VBA, j'ai une requête pour obtenir des données... mon souci est que je ne comprend pas un résultat...
C'est une requête assez simple avec une jointure entre deux tables...
Si j'utilise cette requête : Req = "SELECT dossiers.RaisonSociale, MAX(Factures.datefac) AS Date_derniere_Facture FROM bdd.dbo.dossiers dossiers, bdd.dbo.Factures Factures WHERE Dossiers.NEnreg úctures.NEnregDos GROUP BY dossiers.RaisonSociale" J'obtiens bien ma liste de dossiers avec la dernière date de facture... mais si je veux tout les champs de la table dossiers : Req = "SELECT dossiers.*, MAX(Factures.datefac) AS Date_derniere_Facture FROM bdd.dbo.dossiers dossiers, bdd.dbo.Factures Factures WHERE Dossiers.NEnreg úctures.NEnregDos GROUP BY dossiers.RaisonSociale" Là, je me retrouve avec une page vide...
Pour la connexion entre Excel et SQL j'utilise: With ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN½DCpta;Description½DCpta;UIDª;PWD=" & MdP & ";APP=Microsoft Office 2003;WSIDMINFO;DATABASE½d;LANGUAGE=Français;NetworkÛMSSOCN;Regional=yes", Destination:=Range("A1")) .CommandText = Req .Name = "Liste Dossiers" .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:úlse End With
Hum... je sais que mon souci est limite hors sujet sur le newsgroup Excel... mais là c'est du VBA et du SQL et sur le newsgroup SQL je serais sûrement également limite...
Merci pour votre aide -- @+ HD
HD
Pour obtenir le code et le texte de ta requête, tu lances l'enregistreur de macro et tu exécutes manuellement ta requête utilisant MsQuery. Je ne suis pas certain pour Excel 2007, mais c'est vrai pour les autres versions d'Excel.
Arfff... c'est vrai que je n'ai pas pris l'habitude d'utiliser MsQuery... alors que c'est effectivement bien pratique pour constituer rapidement une requête... en tout cas, ça m'a permi de voir que pour que tout mes champs apparaissent il faut qu'ils soient tous dans le GROUP BY.... j'ai fait un copier/coller des champs à afficher que j'ai placé dans le GROUP BY (sauf le MAX(datFac)) est maintenant tout ressort bien...
Merci à toi MichDenis lol -- @+ HD
Pour obtenir le code et le texte de ta requête,
tu lances l'enregistreur de macro et tu exécutes manuellement
ta requête utilisant MsQuery. Je ne suis pas certain pour Excel 2007,
mais c'est vrai pour les autres versions d'Excel.
Arfff... c'est vrai que je n'ai pas pris l'habitude d'utiliser MsQuery...
alors que c'est effectivement bien pratique pour constituer rapidement une
requête... en tout cas, ça m'a permi de voir que pour que tout mes champs
apparaissent il faut qu'ils soient tous dans le GROUP BY.... j'ai fait un
copier/coller des champs à afficher que j'ai placé dans le GROUP BY (sauf le
MAX(datFac)) est maintenant tout ressort bien...
Pour obtenir le code et le texte de ta requête, tu lances l'enregistreur de macro et tu exécutes manuellement ta requête utilisant MsQuery. Je ne suis pas certain pour Excel 2007, mais c'est vrai pour les autres versions d'Excel.
Arfff... c'est vrai que je n'ai pas pris l'habitude d'utiliser MsQuery... alors que c'est effectivement bien pratique pour constituer rapidement une requête... en tout cas, ça m'a permi de voir que pour que tout mes champs apparaissent il faut qu'ils soient tous dans le GROUP BY.... j'ai fait un copier/coller des champs à afficher que j'ai placé dans le GROUP BY (sauf le MAX(datFac)) est maintenant tout ressort bien...
Merci à toi MichDenis lol -- @+ HD
HD
J'ai put voir où était le souci... Il faut préciser chaque champs que l'on a à l'affichage dans le GROUP BY... si il en manque un ça coince...
-- @+ HD
J'ai put voir où était le souci... Il faut préciser chaque champs que l'on a
à l'affichage dans le GROUP BY... si il en manque un ça coince...