Bonjour le forum
Je souhaite interroger une source OBDC à partir de requêtes lancées via une macro Excel
J'ai trouvé le code ci dessous et je voulais savoir s'il suffit à interroger une source OBDC?
Private Sub RecupDonneesAchat()
Dim ReqSQL As Variant
Dim VerifCommand As String
ReqSQL = TexteRequeteAchat
With Sheets("RecupDonnees").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Inference;UID=EDI;PWD=EDI;DatabaseName=Inference;EngineName=sInference;AutoStop=NO;Integrated=No;Debug=NO;DisableMultiRowFe" _
), Array("tch=NO;CommLinks=SharedMemory,TCPIP{ServerPort=3333};Compress=NO")), _
Destination:=Sheets("RecupDonnees").Range("A6"))
.CommandText = ReqSQL
VerifCommand = CStr(.CommandText)
.Name = "Lancer la requête à partir de Inference"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Private Function TexteRequeteAchat()
Dim laRequete As String
laRequete = "select Sum (qte_recu), Sum(prix_net_HT)"
laRequete = laRequete & "from ligne_recep_fourn_disp"
laRequete = laRequete & "where date_recep like '" & CStr(cboChoixAnnee.Value) & "-" & CStr(Left(cboChoixMois.Value, 2)) & "'"
laRequete = laRequete & "and EAN13 IN (Select EAN13 from prod where code_rayon LIKE '" & ReqCodeRayon & "%')"
TexteRequeteAchat = laRequete
End Function
Par ailleurs je souhaite avoir quelques explications sur certains bouts de code et notamment sur les variables à changer
Selon moi les variables à changer sont les suivantes:
- DSN
- UID
- PWD
- DatabaseName
- EngineName
- Nom de la feuille où vont être copiées les données de la requête
Par ailleurs à quoi correspondent les variables DSN et EngineName?
Merci pour votre aide
Je souhaite interroger une source OBDC à partir de requêtes lancées via une macro Excel
J'ai trouvé le code ci dessous et je voulais savoir s'il suffit à interroger une source OBDC?
Private Sub RecupDonneesAchat()
Dim ReqSQL As Variant
Dim VerifCommand As String
ReqSQL = TexteRequeteAchat
With Sheets("RecupDonnees").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Inference;UID=EDI;PWD=EDI;DatabaseName=Inference;EngineName=sInference;AutoStop=NO;Integrated=No;Debug=NO;DisableMultiRowFe" _
), Array("tch=NO;CommLinks=SharedMemory,TCPIP{ServerPort=3333};Compress=NO")), _
Destination:=Sheets("RecupDonnees").Range("A6"))
.CommandText = ReqSQL
VerifCommand = CStr(.CommandText)
.Name = "Lancer la requête à partir de Inference"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Private Function TexteRequeteAchat()
Dim laRequete As String
laRequete = "select Sum (qte_recu), Sum(prix_net_HT)"
laRequete = laRequete & "from ligne_recep_fourn_disp"
laRequete = laRequete & "where date_recep like '" & CStr(cboChoixAnnee.Value) & "-" & CStr(Left(cboChoixMois.Value, 2)) & "'"
laRequete = laRequete & "and EAN13 IN (Select EAN13 from prod where code_rayon LIKE '" & ReqCodeRayon & "%')"
TexteRequeteAchat = laRequete
End Function
Par ailleurs je souhaite avoir quelques explications sur certains bouts de code et notamment sur les variables à changer
Selon moi les variables à changer sont les suivantes:
- DSN
- UID
- PWD
- DatabaseName
- EngineName
- Nom de la feuille où vont être copiées les données de la requête
Par ailleurs à quoi correspondent les variables DSN et EngineName?
Merci pour votre aide