Bonjour.

J'ai un petit soucis avec une requête d'insertion. Voici déjà le morceau de code concerné :
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
 
            If strNomActif <> "" Then
                ' Vérification de l'existence de l'actif
                strRequete = "SELECT Count(id_actif) FROM T_Actif WHERE nomActif='" & strNomActif & "';"
                Set rstEnr = dbBase.OpenRecordset(strRequete, dbOpenForwardOnly, dbReadOnly)
                ' Si l'actif n'existe pas dans la base alors insertion
                If rstEnr.Fields(0) = 0 Then
                    strRequete = "INSERT INTO T_Actif (nomActif) VALUES ('" & strNomActif & "');"
                    'MsgBox strRequete
                    dbBase.Execute strRequete
                End If
 
                ' Récupération de l'identifiant de l'actif
                strRequete = "SELECT id_actif FROM T_Actif WHERE nomActif='" & strNomActif & "';"
                Set rstEnr = dbBase.OpenRecordset(strRequete, dbOpenForwardOnly, dbReadOnly)
                strIdActif = rstEnr.Fields(0)
 
                ' Libération du recordset
                Set rstEnr = Nothing
            Else
                MsgBox "Actif non défini à la ligne " & intIdxLgn, vbExclamation + vbOKOnly, "Pas d'actif"
            End If
Lorsque je lance ma macro, j'ai un plantage à la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
strIdActif = rstEnr.Fields(0)
m'indiquant que le recordset est vide.
J'ai fait une exécution pas à pas pour vérifier l'enchaînement et les valeurs des variables. La requête de vérification réussie en retournant que la table ne contient pas l'actif, la requête d'insertion est exécutée sans erreur... mais rien n'est ajouté dans la table.
Une explication ?