Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
C74322E1-A147-4A56-B14D-AEFBEF8AF3A3@microsoft.com...
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
C74322E1-A147-4A56-B14D-AEFBEF8AF3A3@microsoft.com...
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" a écrit dans le message de news:
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
7D38C31C-C1EB-4FE8-A03F-5D3A82A0102C@microsoft.com...
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:
Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
C74322E1-A147-4A56-B14D-AEFBEF8AF3A3@microsoft.com...
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" a écrit dans le message de news:
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Me voici comblé !
Code testé et approuvé ! Merci beaucoup !Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" a écrit dans le message de news:
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Me voici comblé !
Code testé et approuvé ! Merci beaucoup !
Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
7D38C31C-C1EB-4FE8-A03F-5D3A82A0102C@microsoft.com...
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:
Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
C74322E1-A147-4A56-B14D-AEFBEF8AF3A3@microsoft.com...
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Me voici comblé !
Code testé et approuvé ! Merci beaucoup !Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" a écrit dans le message de news:
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Ceci dit, j'ai encore une derniere chose...
Je tente d'ajouter un critere a la requete, mais lorsque je rentre le code
ci-dessous, j'ai une erreur de "Type Mismatch"
"WHERE (""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'}) AND
(AA-Request relations"".""handled_by_site""='SÖDERTÄLJE')"
Ai'je fait une erreur de syntaxe ???
Encore merci !Me voici comblé !
Code testé et approuvé ! Merci beaucoup !Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" a écrit dans le message de news:
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Ceci dit, j'ai encore une derniere chose...
Je tente d'ajouter un critere a la requete, mais lorsque je rentre le code
ci-dessous, j'ai une erreur de "Type Mismatch"
"WHERE (""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'}) AND
(AA-Request relations"".""handled_by_site""='SÖDERTÄLJE')"
Ai'je fait une erreur de syntaxe ???
Encore merci !
Me voici comblé !
Code testé et approuvé ! Merci beaucoup !
Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
7D38C31C-C1EB-4FE8-A03F-5D3A82A0102C@microsoft.com...
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:
Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
C74322E1-A147-4A56-B14D-AEFBEF8AF3A3@microsoft.com...
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Ceci dit, j'ai encore une derniere chose...
Je tente d'ajouter un critere a la requete, mais lorsque je rentre le code
ci-dessous, j'ai une erreur de "Type Mismatch"
"WHERE (""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'}) AND
(AA-Request relations"".""handled_by_site""='SÖDERTÄLJE')"
Ai'je fait une erreur de syntaxe ???
Encore merci !Me voici comblé !
Code testé et approuvé ! Merci beaucoup !Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" a écrit dans le message de news:
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Même apres correction des oublis de " ... j'ai la même erreur avec cd code...
"WHERE (""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'}) AND
(""AA-Request relations"".handled_by_site='SÖDERTÄLJE')"Ceci dit, j'ai encore une derniere chose...
Je tente d'ajouter un critere a la requete, mais lorsque je rentre le code
ci-dessous, j'ai une erreur de "Type Mismatch"
"WHERE (""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'}) AND
(AA-Request relations"".""handled_by_site""='SÖDERTÄLJE')"
Ai'je fait une erreur de syntaxe ???
Encore merci !Me voici comblé !
Code testé et approuvé ! Merci beaucoup !Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" a écrit dans le message de news:
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Même apres correction des oublis de " ... j'ai la même erreur avec cd code...
"WHERE (""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'}) AND
(""AA-Request relations"".handled_by_site='SÖDERTÄLJE')"
Ceci dit, j'ai encore une derniere chose...
Je tente d'ajouter un critere a la requete, mais lorsque je rentre le code
ci-dessous, j'ai une erreur de "Type Mismatch"
"WHERE (""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'}) AND
(AA-Request relations"".""handled_by_site""='SÖDERTÄLJE')"
Ai'je fait une erreur de syntaxe ???
Encore merci !
Me voici comblé !
Code testé et approuvé ! Merci beaucoup !
Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
7D38C31C-C1EB-4FE8-A03F-5D3A82A0102C@microsoft.com...
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:
Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" <Torkem@discussions.microsoft.com> a écrit dans le message de news:
C74322E1-A147-4A56-B14D-AEFBEF8AF3A3@microsoft.com...
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !
Même apres correction des oublis de " ... j'ai la même erreur avec cd code...
"WHERE (""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'}) AND
(""AA-Request relations"".handled_by_site='SÖDERTÄLJE')"Ceci dit, j'ai encore une derniere chose...
Je tente d'ajouter un critere a la requete, mais lorsque je rentre le code
ci-dessous, j'ai une erreur de "Type Mismatch"
"WHERE (""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'}) AND
(AA-Request relations"".""handled_by_site""='SÖDERTÄLJE')"
Ai'je fait une erreur de syntaxe ???
Encore merci !Me voici comblé !
Code testé et approuvé ! Merci beaucoup !Voici un bout de ta requête ... évidemment pas testé...
Sub Macro4()
Dim Requete As String
Dim LaDate As String
LaDate = Format(Date - 70, "yyyy-mm-dd 00:00:00")
Requete = _
"SELECT ""AA-Request relations"".""Create Date"", " & _
"""AA-Request relations"".handled_by_site " & _
Chr(13) & Chr(10) & _
" FROM ""AA-Request relations"" ""AA-Request relations"" " & _
Chr(13) & Chr(10) & _
"WHERE ""AA-Request relations"".""Create Date"">{ts '" & LaDate & "'} "
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC DataSource;ARServer=cyberdome;" & _
"UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array(Requete)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
"Torkem" a écrit dans le message de news:
Merci beaucoup !
J'ai un peu de mal a l'adapter a mon cas actuel...ca n'est pas tres facile,
je ne connais pas bien les regles du codage Vb...
Est ce que j'en demande trop si je te demande (ou quelqu'un d'autre) de
l'adapter a partir de la requete enregistree via une macro ?
Merci pour ton aide !
'----------------------------------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro recorded 2006-11-03 by sanyhi
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AR System ODBC Data
Source;ARServer=cyberdome;UID=sanyhi;PWD=sanyhi;ARAuthentication=;SERVER=NotTheServer" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ""AA-Request relations"".""Create Date"", ""AA-Request
relations"".handled_by_site" & Chr(13) & "" & Chr(10) & "FROM ""AA-Request
relations"" ""AA-Request relations""" & Chr(13) & "" & Chr(10) & "WHERE
(""AA-Request relations"".""Create Date"">{ts '2006-11-01 00:" _
, _
"00:00'}) AND (""AA-Request
relations"".handled_by_site='SÖDERTÄLJE')" & Chr(13) & "" & Chr(10) & "ORDER
BY ""AA-Request relations"".""Create Date""" _
)
.Name = "Query from AR System ODBC Data Source_1"
.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:úlse
End With
End Sub
'-----------------------------------------------------------------------------
"MichDenis" wrote:Voici un exemple de code pour une requête ODBC avec
la date -70 comme critère...
N.B. si tu utilises l'enregistreur macro pendant que tu fais ta requête
ce dernier te donnera l'essentiel du code .
Dans une fenêtre MsQuery, sur un champ date, ton critère se traduirait
comme ceci :
Champ : Les dates
Critère : >date-70
'------------------------------------------------------
Sub test()
Dim Requete As String
Dim Début As String
'Format particulier pour ta date de début
'Date d'aujourdhui - 70 -> ton critère
Début = Format(Date - 70, "yyyy-mm-dd 00:00:00")
'Tu adaptes le nom de la feuille et les champs de ton tableau
'dans la requête
requete = "SELECT `Feuil1$`.Société, `Feuil1$`.Date" & vbCrLf & _
"FROM `" & ThisWorkbook.FullName & "`.`Feuil1$`" & _
"`Feuil1$` WHERE (`Feuil1$`.date>{ts '" & Début & "'})"
With Worksheets("Feuil1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";" & _
"DefaultDir=" & ThisWorkbook.Path & "" _
), Array("cel;DriverIdy0;MaxBufferSize 48;" & _
"PageTimeout=5;")), Destination:=Worksheets("Feuil1").Range("D1"))
.CommandText = Array(requete)
.Name = "Lancer la requête à partir de Excel Files"
.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:úlse
End With
End Sub
'------------------------------------------------------
"Torkem" a écrit dans le message de news:
Bonjour !
J'ai creer un fichier Excel dans lequel j'importe des données via l'ODBC.
Mon probleme est que cette requete va m'importer un nombre assez consequent
d'enregistrements (35000 depuis le 1 Janvier 2006). Or, etant limite a 65000
enregistrement, il va arriver un moment ou j'aurait des problemes.
Les donnees dont j'ai besoin son uniquement celles des 70 derniers jours.
Mais, etant donne que les utilisateurs a qui ce fichier est dedie ne
connaissent rien a Excel, je me vois mal leur demander de modifier la requete
tous les mois, c'est pourquoi je voudrais integrer cette requete ODBC dans
une macro. Jusqu'ici, en fait, pas trop de soucis. Le seul truc est que je
voudrais integrer la variable "Aujourd'hui - 70 jours" dans cette requete
pour, du coup, n'importer que les 70 derniers jours de données.
Merci d'avance pour votre aide !