J
Julien
Guest
Salut à tous,
J'ai crée une connection ODBC à partir d'Excel sur une base de données Oracle. Jusqu'ici, tout va bien... Selement voilà, j'ai l'impression qu'Excel n'envoie qu'une partie des requêtes car je pense que son buffer d'émission est vérouillé à un certain nombre de caractères (la requête)... D'où mon problème... J'ai besoin de de faire des requêtes plus longues (requêtes qui marchent à partir d'Oracle)!!!!
Help!!!!
Exemple qui marche :
Range("A10").Select
Selection.Clear
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER={Microsoft ODBC pour Oracle};UID=toto;PWD=toto;SERVER=Q;", _
Destination:=Range("A10"))
.CommandText = Array( _
"SELECT .*" & Chr(13) & "" & Chr(10) & "FROM OP.Histperation H" & Chr(13) & "" & Chr(10) & "WHERE (H.DATE_Operation >= {ts '" & annee_d & "-" & mois_d & "-" & jour_d & " 00:00:00'}) AND (H.DATE_OPERATION <= {ts '" & annee_f & "-" & mois_f & "-" & jour_f & " 00:00:00'}) And ((H.POSTE like 'DVD%') Or (H.POSTE like 'Livre%') Or (H.POSTE like 'CD%') Or (H.POSTE like 'Cassette%'))")
.Name = "Lancer la requête"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Exemple qui ne marche pas :
Range("A10").Select
Selection.Clear
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER={Microsoft ODBC pour Oracle};UID=toto;PWD=toto;SERVER=Q;", _
Destination:=Range("A10"))
.CommandText = Array( _
"SELECT Historique.*" & Chr(13) & "" & Chr(10) & "FROM OP.Histperation Historique" & Chr(13) & "" & Chr(10) & "WHERE (Historique.DATE_Operation >= {ts '" & annee_d & "-" & mois_d & "-" & jour_d & " 00:00:00'}) AND (Historique.DATE_OPERATION <= {ts '" & annee_f & "-" & mois_f & "-" & jour_f & " 00:00:00'}) And ((Historique.POSTE like 'DVD%') Or (Historique.POSTE like 'Livre%') Or (Historique.POSTE like 'CD%') Or (Historique.POSTE like 'Cassette%'))")
.Name = "Lancer la requête"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Merci.
J'ai crée une connection ODBC à partir d'Excel sur une base de données Oracle. Jusqu'ici, tout va bien... Selement voilà, j'ai l'impression qu'Excel n'envoie qu'une partie des requêtes car je pense que son buffer d'émission est vérouillé à un certain nombre de caractères (la requête)... D'où mon problème... J'ai besoin de de faire des requêtes plus longues (requêtes qui marchent à partir d'Oracle)!!!!
Help!!!!
Exemple qui marche :
Range("A10").Select
Selection.Clear
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER={Microsoft ODBC pour Oracle};UID=toto;PWD=toto;SERVER=Q;", _
Destination:=Range("A10"))
.CommandText = Array( _
"SELECT .*" & Chr(13) & "" & Chr(10) & "FROM OP.Histperation H" & Chr(13) & "" & Chr(10) & "WHERE (H.DATE_Operation >= {ts '" & annee_d & "-" & mois_d & "-" & jour_d & " 00:00:00'}) AND (H.DATE_OPERATION <= {ts '" & annee_f & "-" & mois_f & "-" & jour_f & " 00:00:00'}) And ((H.POSTE like 'DVD%') Or (H.POSTE like 'Livre%') Or (H.POSTE like 'CD%') Or (H.POSTE like 'Cassette%'))")
.Name = "Lancer la requête"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Exemple qui ne marche pas :
Range("A10").Select
Selection.Clear
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER={Microsoft ODBC pour Oracle};UID=toto;PWD=toto;SERVER=Q;", _
Destination:=Range("A10"))
.CommandText = Array( _
"SELECT Historique.*" & Chr(13) & "" & Chr(10) & "FROM OP.Histperation Historique" & Chr(13) & "" & Chr(10) & "WHERE (Historique.DATE_Operation >= {ts '" & annee_d & "-" & mois_d & "-" & jour_d & " 00:00:00'}) AND (Historique.DATE_OPERATION <= {ts '" & annee_f & "-" & mois_f & "-" & jour_f & " 00:00:00'}) And ((Historique.POSTE like 'DVD%') Or (Historique.POSTE like 'Livre%') Or (Historique.POSTE like 'CD%') Or (Historique.POSTE like 'Cassette%'))")
.Name = "Lancer la requête"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Merci.