Base de données SQL
Résolu
chevrotine22
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
Mutumbo -
Mutumbo -
Bonjour a tous,
j'ai crée une suite de macro excel qui me permettent d'extraire des données sur différentes périodes.
Le seul probleme c'est que je ne peux effectuer qu'une seul requete, si j'en execute une autre l'erreur suivante apparait
Erreur d'execution '-2147417848 (80010108)'
Erreur automation
l'objet invoqué c'est deconnecté de ses clients
Voici le code, si quelqu'un a une solution merci
(la partie souligné correspond au bout de code qui bug)
Sub Pression_BàV()
'
' Pression_BàV Macro
'
Raz 'efface les données précédentes
'
' Requete ODBC
Sheets("PressionBaV").Select
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"ODBC;DSN=supervision_l2;", Destination:=Range("PressionBaV!$A$1")).QueryTable
.CommandText = Array( _
"SELECT process_0.fchmitimestamp, process_0.P_BAV, process_0.T_BAV" & Chr(13) & "" _
& Chr(10) & "FROM supervisionl2.process process_0" & Chr(13) & "" _
& Chr(10) & "WHERE (process_0.fchmitimestamp>={ts '" _
& CStr(Format(Date - nb_jour, "yyyy-mm-dd")) & " 00:00:00'})" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = _
"pression_et_temperature_boite_a_vent"
.Refresh BackgroundQuery:=False
End With
'format
Columns("A").Select 'Je selectionne la colonne A
Selection.NumberFormat = "m/d/yyyy h:mm" 'je change le format de la colonne A en date
Columns("B:C").Select 'Je selectionne les colonnes B a H
Selection.NumberFormat = "General" 'je change le format des colonnes B a H en standard
' Création du graphique
Sheets("Carte-de-controle-BaV").Select
ActiveChart.SetSourceData Source:=Sheets("PressionBaV").Range( _
"pression_et_temperature_boite_a_vent#All")
End Sub
Sub Raz()
'effacement des anciennes donées Pression BàV
Sheets("PressionBaV").Select
Cells.Select
Selection.Delete Shift:=xlUp
Sheets("Parametres").Select
End Sub
Function nb_jour() As Integer
'
' Determiner quel jour on est
'
Dim queljour As String 'Je definit une variable nomé queljour de type string
queljour = Format(Date, "dddd") 'J'assigne a la variable queljour le jour en cours
If queljour = "lundi" Then 'si la variable queljour = lundi alors
nb_jour = 3 'j'attribue 3 à la fonction nb_jour
Else ' sinon
nb_jour = 1 'j'attribue 1 à la fonction nb_jour
End If 'fin de la boucle
End Function
Sub enregistre()
'
'enregistre la periode choisi par l'utilisateur
debut
fin
End Sub
Function debut() As Date
'
'determiner la periode du rapport
'
Dim X As String
X = Sheets("Parametres").Range("E10") & " " & Sheets("Parametres").Range("F10") & " " & Sheets("Parametres").Range("G10")
debut = CDate(X)
End Function
Function fin() As Date
'
'determiner la periode du rapport
'
Dim Y As String
Y = Sheets("Parametres").Range("E12") & " " & Sheets("Parametres").Range("F12") & " " & Sheets("Parametres").Range("G12")
fin = CDate(Y)
End Function
Function filtreinf() As String
'
'determiner le filtre SQL
'
If Feuil6.OptionButton2.Value = True Then
filtreinf = CStr(Format(debut, "yyyy-mm-dd")) 'convertie la date en format texte
Else
filtreinf = CStr(Format(Date - nb_jour, "yyyy-mm-dd")) 'convertie la date en format texte
End If
End Function
Function filtresup() As String
'
'determiner le filtre SQL
'
If Feuil6.OptionButton2.Value = True Then
filtresup = CStr(Format(fin, "yyyy-mm-dd")) 'convertie la date en format texte
Else
filtresup = CStr(Format(Now, "yyyy-mm-dd")) 'convertie la date en format texte
End If
End Function
j'ai crée une suite de macro excel qui me permettent d'extraire des données sur différentes périodes.
Le seul probleme c'est que je ne peux effectuer qu'une seul requete, si j'en execute une autre l'erreur suivante apparait
Erreur d'execution '-2147417848 (80010108)'
Erreur automation
l'objet invoqué c'est deconnecté de ses clients
Voici le code, si quelqu'un a une solution merci
(la partie souligné correspond au bout de code qui bug)
Sub Pression_BàV()
'
' Pression_BàV Macro
'
Raz 'efface les données précédentes
'
' Requete ODBC
Sheets("PressionBaV").Select
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"ODBC;DSN=supervision_l2;", Destination:=Range("PressionBaV!$A$1")).QueryTable
.CommandText = Array( _
"SELECT process_0.fchmitimestamp, process_0.P_BAV, process_0.T_BAV" & Chr(13) & "" _
& Chr(10) & "FROM supervisionl2.process process_0" & Chr(13) & "" _
& Chr(10) & "WHERE (process_0.fchmitimestamp>={ts '" _
& CStr(Format(Date - nb_jour, "yyyy-mm-dd")) & " 00:00:00'})" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = _
"pression_et_temperature_boite_a_vent"
.Refresh BackgroundQuery:=False
End With
'format
Columns("A").Select 'Je selectionne la colonne A
Selection.NumberFormat = "m/d/yyyy h:mm" 'je change le format de la colonne A en date
Columns("B:C").Select 'Je selectionne les colonnes B a H
Selection.NumberFormat = "General" 'je change le format des colonnes B a H en standard
' Création du graphique
Sheets("Carte-de-controle-BaV").Select
ActiveChart.SetSourceData Source:=Sheets("PressionBaV").Range( _
"pression_et_temperature_boite_a_vent#All")
End Sub
Sub Raz()
'effacement des anciennes donées Pression BàV
Sheets("PressionBaV").Select
Cells.Select
Selection.Delete Shift:=xlUp
Sheets("Parametres").Select
End Sub
Function nb_jour() As Integer
'
' Determiner quel jour on est
'
Dim queljour As String 'Je definit une variable nomé queljour de type string
queljour = Format(Date, "dddd") 'J'assigne a la variable queljour le jour en cours
If queljour = "lundi" Then 'si la variable queljour = lundi alors
nb_jour = 3 'j'attribue 3 à la fonction nb_jour
Else ' sinon
nb_jour = 1 'j'attribue 1 à la fonction nb_jour
End If 'fin de la boucle
End Function
Sub enregistre()
'
'enregistre la periode choisi par l'utilisateur
debut
fin
End Sub
Function debut() As Date
'
'determiner la periode du rapport
'
Dim X As String
X = Sheets("Parametres").Range("E10") & " " & Sheets("Parametres").Range("F10") & " " & Sheets("Parametres").Range("G10")
debut = CDate(X)
End Function
Function fin() As Date
'
'determiner la periode du rapport
'
Dim Y As String
Y = Sheets("Parametres").Range("E12") & " " & Sheets("Parametres").Range("F12") & " " & Sheets("Parametres").Range("G12")
fin = CDate(Y)
End Function
Function filtreinf() As String
'
'determiner le filtre SQL
'
If Feuil6.OptionButton2.Value = True Then
filtreinf = CStr(Format(debut, "yyyy-mm-dd")) 'convertie la date en format texte
Else
filtreinf = CStr(Format(Date - nb_jour, "yyyy-mm-dd")) 'convertie la date en format texte
End If
End Function
Function filtresup() As String
'
'determiner le filtre SQL
'
If Feuil6.OptionButton2.Value = True Then
filtresup = CStr(Format(fin, "yyyy-mm-dd")) 'convertie la date en format texte
Else
filtresup = CStr(Format(Now, "yyyy-mm-dd")) 'convertie la date en format texte
End If
End Function
A voir également:
- Base de données SQL
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Tnt base de données vide - Forum TV & Vidéo