Bonjour à tous,
Je fais appel à vos connaissances car voici deux jours que je suis coincé, je m'explique:
J'ai un fichier excel qui est relié à microsoft Query pour enregistrer les données du serveur SQL.
Ces données sont issues d'un automate qui gère une production dans l'entreprise. A travers le fichier Excel, je regarde le taux de production, d'une date donnée à une heure donnée. Ces dates et heures sont définies dans MS Query par le code SQL suivant:
SET NOCOUNT ON DECLARE @StartDate DateTime DECLARE @EndDate DateTime SET @EndDate = CONVERT(varchar(30), GETDATE(), 112) + ' 04:00:00.000' SET @StartDate = DateAdd(d,-2,@EndDate) SET NOCOUNT OFF SELECT TagName, DateTime, Value FROM v_AnalogHistory WHERE TagName IN ('Traca_Ensach_Rodez') AND wwVersion = 'Latest' AND wwRetrievalMode = 'Cyclic' AND wwResolution = 10000 AND DateTime >= @StartDate AND DateTime <= @EndDate UNION SELECT TagName, DateTime, Value FROM ManualAnalogHistory WHERE TagName IN ('Traca_Ensach_Rodez') AND DateTime >= @StartDate AND DateTime <= @EndDate ORDER BY DateTime ASC
Mon problème c'est que je veux pouvoir changer l'heure ( en rouge) quand je le souhaite à traves un VBA sans intervenir dans MS Query...
Voici ce que j'ai déjà fais mais je suis coincer:
Private Sub CommandButton1_Click()
Dim x
Dim y
Dim Z
Range("Y1").Select
With Selection.QueryTable
.Connection = _
"ODBC;DRIVER=SQL Server;(adresse serveur);UID=wwUser;PWD=wwUser;APP=Microsoft Office XP;WSID=(nom du poste);DATABASE=Runtime"
.CommandText = Array( _
"SET NOCOUNT ON DECLARE @StartDate DateTime DECLARE @EndDate DateTime SET @EndDate = CONVERT(varchar(30), GETDATE(), 112) + ' x:y:z.000' SET @StartDate = DateAdd(d,-2,@EndDate) SET NOCOUNT OFF " _
, _
" SELECT TagName, DateTime, Value FROM v_AnalogHistory WHERE TagName IN ('Traca_Ensach_Rodez') AND wwVersion = 'Latest' AND wwRetrievalMode = 'Cyclic' AND wwResolution = 10000 AND DateTime " _
, _
">= @StartDate AND DateTime <= @EndDate UNION SELECT TagName, DateTime, Value FROM ManualAnalogHistory WHERE TagName IN ('Traca_Ensach_Rodez') AND DateTime >= @StartDate AND DateTime <= @En" _
, "dDate ORDER BY DateTime ASC")
.Refresh BackgroundQuery:=True
End Sub
End With
If x > 23 Or y > 59 Or Z > 59 Then
MsgBox "heure non valide"
End If
Je vous remercie d'avance pour vos diverse interventions
Je fais appel à vos connaissances car voici deux jours que je suis coincé, je m'explique:
J'ai un fichier excel qui est relié à microsoft Query pour enregistrer les données du serveur SQL.
Ces données sont issues d'un automate qui gère une production dans l'entreprise. A travers le fichier Excel, je regarde le taux de production, d'une date donnée à une heure donnée. Ces dates et heures sont définies dans MS Query par le code SQL suivant:
SET NOCOUNT ON DECLARE @StartDate DateTime DECLARE @EndDate DateTime SET @EndDate = CONVERT(varchar(30), GETDATE(), 112) + ' 04:00:00.000' SET @StartDate = DateAdd(d,-2,@EndDate) SET NOCOUNT OFF SELECT TagName, DateTime, Value FROM v_AnalogHistory WHERE TagName IN ('Traca_Ensach_Rodez') AND wwVersion = 'Latest' AND wwRetrievalMode = 'Cyclic' AND wwResolution = 10000 AND DateTime >= @StartDate AND DateTime <= @EndDate UNION SELECT TagName, DateTime, Value FROM ManualAnalogHistory WHERE TagName IN ('Traca_Ensach_Rodez') AND DateTime >= @StartDate AND DateTime <= @EndDate ORDER BY DateTime ASC
Mon problème c'est que je veux pouvoir changer l'heure ( en rouge) quand je le souhaite à traves un VBA sans intervenir dans MS Query...
Voici ce que j'ai déjà fais mais je suis coincer:
Private Sub CommandButton1_Click()
Dim x
Dim y
Dim Z
Range("Y1").Select
With Selection.QueryTable
.Connection = _
"ODBC;DRIVER=SQL Server;(adresse serveur);UID=wwUser;PWD=wwUser;APP=Microsoft Office XP;WSID=(nom du poste);DATABASE=Runtime"
.CommandText = Array( _
"SET NOCOUNT ON DECLARE @StartDate DateTime DECLARE @EndDate DateTime SET @EndDate = CONVERT(varchar(30), GETDATE(), 112) + ' x:y:z.000' SET @StartDate = DateAdd(d,-2,@EndDate) SET NOCOUNT OFF " _
, _
" SELECT TagName, DateTime, Value FROM v_AnalogHistory WHERE TagName IN ('Traca_Ensach_Rodez') AND wwVersion = 'Latest' AND wwRetrievalMode = 'Cyclic' AND wwResolution = 10000 AND DateTime " _
, _
">= @StartDate AND DateTime <= @EndDate UNION SELECT TagName, DateTime, Value FROM ManualAnalogHistory WHERE TagName IN ('Traca_Ensach_Rodez') AND DateTime >= @StartDate AND DateTime <= @En" _
, "dDate ORDER BY DateTime ASC")
.Refresh BackgroundQuery:=True
End Sub
End With
If x > 23 Or y > 59 Or Z > 59 Then
MsgBox "heure non valide"
End If
Je vous remercie d'avance pour vos diverse interventions