Bonjour,

J'utilise une macro VBA dans excel qui m'actualise une feuille en faisant une requete sql dans une base access.
J'ai constaté que si ma base de données access est ouverte au moment de l'execution de la macro, j'ai l'erreur suivante : Erreur générale ODBC, qui me renvoie à cette ligne .Refresh BackgroundQuery:=False

Voici ce que j'ai fait avec l'enregistreur de macros Excel :
Données/Données Externe/Créer une requete/MS Access Database/Selection de la base/

Pourtant quand j'ai crée ma requete, j'ai bien coché "Read Only", mais je ne le vois pas dans mon code VBA ???
Savez vous a quoi sert la case à cocher "Exclusive"

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
28
29
30
 
    With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        "ODBC;DSN=MS Access Database;DBQ=W:\Engineering\ICP process PFM list.mdb;DefaultDir=W:\Services\Proce" _
        ), Array( _
        "\Engineering;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" _
        )), Destination:=Range("A1"))
        .CommandText = Array( _
        "SELECT PFM.PFM, PFM.`Mod tape`, PFM.`D wafer`, PFM.`DB Program`, PFM.`Map orientation D11/D6`, PFM.`Colle Die Attach`, PFM.`Rubber Tip`, PFM.Needle, PFM.Nozzle, PFM.`Size A  (CH)`, PFM.`DB SPC Prg`, P" _
        , _
        "FM.`Fil de cablage`, PFM.`WB Program D25µm`, PFM.`WB Program`, PFM.Capillaire, PFM.`WB Down Holder`, PFM.`Size B  (LH) D25µm`, PFM.`Average size B (LH)`, PFM.`Tolerance size B`, PFM.`WB SPC Prg D25µm`" _
        , _
        ", PFM.`WB SPC Prg`, PFM.`Encap Techno`, PFM.Resin, PFM.`Dam Program`, PFM.`Fill Program`, PFM.`Nozzle Plate`, PFM.`TI2260 Program`, PFM.`Size C  (MH)`, PFM.`D&F Drawing`, PFM.`Adhesif LAM`, PFM.`Progr" _
        , _
        "amme LAM`, PFM.`Vision LAM`, PFM.`Punch LAM`, PFM.`Plaque Press LAM`, PFM.`Temperature LAM`, PFM.`Temps LAM`, PFM.`Programme LIL`, PFM.`Punch LIL`, PFM.`Plaque Press LIL`, PFM.`Temperature LIL`, PFM.`" _
        , "Temps LIL`, PFM.`TH Punch tool`" & Chr(13) & "" & Chr(10) & "FROM PFM PFM" & Chr(13) & "" & Chr(10) & "ORDER BY PFM.PFM DESC")
        .Name = "Lancer la requête à partir de MS Access Database"
        .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
J'ai essayé en cochant ReadOnly et sans, le code VBA généré est le même !!!
Je suis persuadé qu'avec un paramètre ReadOnly, je n'aurai pas cette erreur.

Merci pour votre aide. Mikael