Bonjour,

J'ai un petit problème pour obtenir l'autoincrement dans une base access. J'obtiens toujours la valeur 0 !

Voici comment je procède :
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
 
Dim Nouveau As Boolean = False
 
If RowDossier.RowState = DataRowState.Detached Then
            dsElite2007event.Dossier.AddDossierRow(RowDossier)
            Nouveau = True
End If
 
' mise à jour du Dossier
Me.taDossier.Update(Me.dsElite2007event.Dossier)
 
If Nouveau = True Then
            Dim id As Integer = ClassElite2007database.GetLastIdFromDatabase(Me.taDossier.Connection)
            RowDossier.idDossier = id
End If
Et la fonction GetLastIdFromDatabase :
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
 
Public Function GetLastIdFromDatabase(ByVal connexion As OleDbConnection) As Integer
 
        Dim id As Integer
 
        Try
            Dim maCommande As New OleDbCommand("SELECT @@IDENTITY", connexion)
 
            maCommande.Connection.Open()
            id = CInt(maCommande.ExecuteScalar())
            maCommande.Connection.Close()
 
            Return id
        Catch
        End Try
 
    End Function
Est ce que c'est à cause du Update qui ouvre et qui ferme la connexion et une fois la connexion fermé, le @@IDENTITY est perdu ???

Merci de votre aide si vous avez une petite idée.