Bonjour à tous,
en m'inspirant des différentes sources des FaQ et du forum, et après quelques essais infructueux, je souhaite faire une petite fonction qui me retourne vrai/faux en fonction de l'existance d'une requête.

Le problème est que le code ci dessous n'a pas l'air de prendre en compte le On Error Goto err.

Et du coup je me retrouve avec un plantage "3265 Item not found in this collection" sur le Set oQdf = oDb.QueryDefs(strQname)

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
Public Function TestExistQuery(strQname As String) As Boolean
'-------------------------------------------------------------------------------------------------------------'
'|  Purpose                : Test if a query is existing within the DB
'|  Linked Function(s)     :
'|  Parameters             : strQname
'-------------------------------------------------------------------------------------------------------------'
    On Error GoTo err
    Dim oDb As DAO.Database
    Dim oQdf  As DAO.QueryDef
 
    'access to the db
    Set oDb = CurrentDb
    Set oQdf = oDb.QueryDefs(strQname)
    'return true
    TestExistQuery = True
    Resume fin
fin:
    Set oDb = Nothing
    Set oQdf = Nothing
    Exit Function
err:
    'if erreur <> 3265 => query not exist raise the error
    If err.Number <> 3265 Then
        err.Raise err.Number, err.Source, err.Description
    End If
    Resume fin
 
End Function
un petit coup de main...