Bonjour,
Je cherche interroger une base centrale ORACLE via SQl DIRECT et récupérer des données dans ma base Access et je débute à ce niveau, j'ai regardé pas mal de posts et essayé plusieurs bouts de codes comme celui ci-dessous qui marche bien, mais de manière limitée.
Mon code :
Ca marche très bien, la premiere fois, parfois la seconde mais par ex si je ferme mon formulaire et le ré-ouvre, ça plante.
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
19
20
21
22
23
24
25
26
27 Private Sub brsql_Click() Dim MaBase As Database Dim MaReq As QueryDef Dim MonRes As Recordset Set MaBase = DBEngine(0)(0) 'DoCmd.DeleteObject acQuery, "mareq" Set MaReq = MaBase.CreateQueryDef("MaReq") MaReq.Connect = "ODBC;DSN=CONNECT_LARA" MaReq.sql = "select * from con_tracking where container_number = 'CMAU1430211'" 'la requête finale sera bcp plus complexe avec des paramètres MaReq.ODBCTimeout = 300 MaReq.ReturnsRecords = True Set MonRes = MaBase.OpenRecordset("MaReq") MonRes.MoveLast MsgBox (MonRes.RecordCount) 'à terme il y aura ici un traitement MonRes.Close MaBase.Close DoCmd.DeleteObject acQuery, "mareq"
J'ai bien créé au départ mon DSN et lors de la connection, je saisis mon login et mon pwd, je souhaite que ça reste ainsi et donc pas défini dans le code.
Mais au bout d'un certain nombre d'execution, parfois des la seconde, ça plante avec ce message :
Erreur d'execution 3146
ODBC - l'appel a échoué
Savez vous pourquoi ?
Y a t il moyen de couper le connect une fois les données rapatriées dans ma base access afin de repartir avec un nouveau connect ?
Merci
Laurent
Partager