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 HD,
Attention, choisir une des 2 connections qui convient à ton environnement. Renseigner les variables convenablement
'---------------------------------------------------- Sub ExecuterUneRequete()
'Charger la référence suivante : 'Microsoft Activex Data objects 2.6 librairy
Dim Con As New ADODB.Connection Dim Rst As New ADODB.Recordset Dim Com As New ADODB.Command Dim BaseAccess As String, A As Integer Dim BaseAccessSecurity As String Dim Rg As Range
'Pour une connection "conventionnelle" à access con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & BaseAccess & ";"
'Pour établir une connexion si tu as une 'base système -> pour la sécurité 'con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & BaseAccess & ";" & _ "Jet OLEDB:System Database=" & BaseAccessSecurity & _ ",myUsername", "myPassword"
Com.ActiveConnection = con Com.CommandType = adCmdStoredProc
'"ReqDenis2Paramètres"= Nom de ta requête Com.CommandText = "ReqDenis2Paramètres" Set Rst = Com.Execute
If Rst.BOF = True And Rst.EOF = True Then MsgBox "Aucun enregistrement trouvé." Else 'Détermine où seront copiées les enregistrements With Worksheets(1) ' À déterminer nom feuille Set Rg = .Range("A1") End With 'Copie les en-têtes des champs du recordset 'en première ligne For a = 0 To Rst.Fields.Count - 1 Rg.Offset(0, a).Value = Rst.Fields(a).Name Next 'Copie tous les enregistrements vers Excel ... Rg.Offset(1).CopyFromRecordset Rst End If 'Libère l'espace mémoire utilisé Set Rg = Nothing Rst.Close: con.Close Set Com = Nothing Set Rst = Nothing: Set con = Nothing
End Sub '----------------------------------------------------
Salutations!
"HD" a écrit dans le message de news: e2WM1$ Bonjour,
Je me connecte à une base de donnée et je lance une requête "ReqTps" via ce script :
Mais m'est-il possible de lancer dorectement une requête que j'aurais mise dans le script... Sans faire appel à une requête se trouvant sur la base ?
Merci d'avance pour votre aide. -- @+ HD
Bonjour HD,
Attention, choisir une des 2 connections qui convient à ton environnement.
Renseigner les variables convenablement
'----------------------------------------------------
Sub ExecuterUneRequete()
'Charger la référence suivante :
'Microsoft Activex Data objects 2.6 librairy
Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Com As New ADODB.Command
Dim BaseAccess As String, A As Integer
Dim BaseAccessSecurity As String
Dim Rg As Range
'Pour une connection "conventionnelle" à access
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";"
'Pour établir une connexion si tu as une
'base système -> pour la sécurité
'con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";" & _
"Jet OLEDB:System Database=" & BaseAccessSecurity & _
",myUsername", "myPassword"
Com.ActiveConnection = con
Com.CommandType = adCmdStoredProc
'"ReqDenis2Paramètres"= Nom de ta requête
Com.CommandText = "ReqDenis2Paramètres"
Set Rst = Com.Execute
If Rst.BOF = True And Rst.EOF = True Then
MsgBox "Aucun enregistrement trouvé."
Else
'Détermine où seront copiées les enregistrements
With Worksheets(1) ' À déterminer nom feuille
Set Rg = .Range("A1")
End With
'Copie les en-têtes des champs du recordset
'en première ligne
For a = 0 To Rst.Fields.Count - 1
Rg.Offset(0, a).Value = Rst.Fields(a).Name
Next
'Copie tous les enregistrements vers Excel ...
Rg.Offset(1).CopyFromRecordset Rst
End If
'Libère l'espace mémoire utilisé
Set Rg = Nothing
Rst.Close: con.Close
Set Com = Nothing
Set Rst = Nothing: Set con = Nothing
End Sub
'----------------------------------------------------
Salutations!
"HD" <hd@anti.spam.fr> a écrit dans le message de news: e2WM1$BGFHA.1296@TK2MSFTNGP10.phx.gbl...
Bonjour,
Je me connecte à une base de donnée et je lance une requête "ReqTps" via ce
script :
Attention, choisir une des 2 connections qui convient à ton environnement. Renseigner les variables convenablement
'---------------------------------------------------- Sub ExecuterUneRequete()
'Charger la référence suivante : 'Microsoft Activex Data objects 2.6 librairy
Dim Con As New ADODB.Connection Dim Rst As New ADODB.Recordset Dim Com As New ADODB.Command Dim BaseAccess As String, A As Integer Dim BaseAccessSecurity As String Dim Rg As Range
'Pour une connection "conventionnelle" à access con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & BaseAccess & ";"
'Pour établir une connexion si tu as une 'base système -> pour la sécurité 'con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & BaseAccess & ";" & _ "Jet OLEDB:System Database=" & BaseAccessSecurity & _ ",myUsername", "myPassword"
Com.ActiveConnection = con Com.CommandType = adCmdStoredProc
'"ReqDenis2Paramètres"= Nom de ta requête Com.CommandText = "ReqDenis2Paramètres" Set Rst = Com.Execute
If Rst.BOF = True And Rst.EOF = True Then MsgBox "Aucun enregistrement trouvé." Else 'Détermine où seront copiées les enregistrements With Worksheets(1) ' À déterminer nom feuille Set Rg = .Range("A1") End With 'Copie les en-têtes des champs du recordset 'en première ligne For a = 0 To Rst.Fields.Count - 1 Rg.Offset(0, a).Value = Rst.Fields(a).Name Next 'Copie tous les enregistrements vers Excel ... Rg.Offset(1).CopyFromRecordset Rst End If 'Libère l'espace mémoire utilisé Set Rg = Nothing Rst.Close: con.Close Set Com = Nothing Set Rst = Nothing: Set con = Nothing
End Sub '----------------------------------------------------
Salutations!
"HD" a écrit dans le message de news: e2WM1$ Bonjour,
Je me connecte à une base de donnée et je lance une requête "ReqTps" via ce script :