Compléments pour Microsoft Access

http://access.fr.free.fr/

Absence dans liste (Formulaire)

Description 

Cette fonction permet de d'aouter une valeur dans la table servant de source de donnée à une zone de liste modifiable lorsque cette valeur n'existe pas encore.

Pour fonctionner, il faut mettre la propriété "Limiter à liste" de la zone de liste modifiable à Oui.

 
Synthaxe 

Add_NotInList (strTable, strQuery, fldGroup)

La synthaxe de la fonction Add_NotInList comprend les éléments suivants :

ElémentsDescription

strTbl

Expression de chaîne correspondant au nom de la table source de la zone de liste modifiable.
strFldExpression de chaîne correspondant au nom du champ qui contient la données
NewDataExpression de chaîne correspondant à la donnée qui a été saisie dans la zone de liste modifiable.
ResponseExpression numérique permettant de déterminer comment doit être traitée l'absence dans la liste.
 
Exemple 

Pour utiliser cette fonction, voilà le code à mettre sur l'évènement "Sur absence dans la liste" :

Private Sub LaZoneDeListe_NotInList(NewData As String, _
Response As Integer)

Add_NotInList "TableSource", "ChampSource", _
        NewData, Response

End Sub

 
Code de la fonction 


Public Function Add_NotInList(strTbl As String, strFld As String, _
    NewData As String, Response As Integer) As Boolean

Dim Msg As Long

Msg = MsgBox("L'élément [" & NewData & "] ne figure pas " _
        & "dans la liste. Voulez-vous l'ajouter ?", _
         vbQuestion + vbYesNo)
         
If Msg = vbYes Then
        CurrentDb.Execute "INSERT INTO [" & strTbl & "] ([" & strFld & "]) " _
            & "SELECT """ & NewData & """ ;"
        Response = acDataErrAdded
        Add_NotInList = True
Else
        Response = acDataErrContinue
        Add_NotInList = False
End If

End Function