Bonjour,

BD : Oracle

Je fais un select via un recordset de type DAO. Quand je l'execute j'ai l'erreur 3146 avec en précision [Oracle][ODBC]Restricted data type attribute violation

J'ai recherché la colonne impacté est de type number(1,0) et est nullable.

voici le code que j'éxécute

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
  Set wrk = CreateWorkspace("NewODBCWorkspace", "admin", "", dbUseODBC)
  Set connectionFrom= wrk.OpenConnection("BASE", dbDriverComplete, , ConnFrom)
 
[...]
 
Requete = "select monchamp from matable"
 
[...]
Set Qdf1 = connectionFrom.CreateQueryDef(1, Requete)
 
Qdf1.Execute
 
Set rstResultat = Qdf1.OpenRecordset()
La même requête dans un queryTable fonctionne parfaitement

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
With sh.QueryTables.Add(Connection:=Array(ConnFrom), Destination:=sh.Range(FirstColumnFrom))
.CommandText = Requete
.Name = "xxxx"
.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:=False
End With
Auriez vous une idée du pourquoi? Et sinon, peut on utiliser plusieurs requetes via un querry table pour modifier les variables de session par exemple.

Merci beaucoup