Enregistrement des données

mohalesage -  
mohalesage Messages postés 162 Statut Membre -
Bonjour les amis,
Je suis débutant. Je me suis trouvé bloqué quand mes codes ne m'ont pas aidé à enregistrer sur la table ( access 2003) à partir de la fenêtre de saisie.

Notez bien que les versions sont : VB6, Access 2003

Mes codes sont comme suit :

Sur le module :

Général Déclaration

Public DB As New ADODB.Connection
Public RS As New ADODB.Recordset
Public Rss As New ADODB.Recordset

Public SQLs As String
------------------------------------------------
Sub PoolConnection()

If DB.State = adStateOpen Then DB.Close
DB.Provider = "Microsoft.Jet.OLEDB.4.0;"
DB.Open App.Path & "\BDCompagnie.mdb"

End Sub

-----------------------------------------------------------

Sur la feuille de saisie

Private Sub Form_Load()

'Au chargement de cette feuille, pour se connecte à la base des données

PoolConnection

SQLs = "select * from TableauInfo"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic

End Sub

-----------------------------------------------------------

Sur le bouton ajouter

Private Sub cmdAjouter_Click()

If Text1 = "" Then
MsgBox "Veuillez saisir le Nom", vbCritical + vbMsgBoxRight, "Erreur de saisie"
Text1.SetFocus
Exit Sub
End If

If Text2 = "" Then
MsgBox "Veuillez saisir le Prénom", vbCritical + vbMsgBoxRight, "Erreur de saisie"
Text2.SetFocus
Exit Sub
End If

If Text3 = "" Then
MsgBox "Veuillez saisir le numéro de la C.I.N", vbCritical + vbMsgBoxRight, "Erreur de saisie"
Text3.SetFocus
Exit Sub
End If

If Text4 = "" Then
MsgBox "Veuillez saisir le numéro de la C.N.S.S", vbCritical + vbMsgBoxRight, "Erreur de saisie"
Text4.SetFocus
Exit Sub
End If

SQLs = " SELECT * FROM TableauInfo where CIN='" & Text3 & "'"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic

If RS.EOF Then
GoTo OkAddNew:
Else
MsgBox "Attention, ce numéro existe déjà", vbCritical + vbMsgBoxRight, "Erreur de saisie"
Exit Sub
Text1.SetFocus
End If

OkAddNew:
MsgBox "Etes vous sûr de vouloir ajouter ces nouvelles données ?", vbQuestion + vbYesNo + vbMsgBoxRight, "Alors, que décidez vous ?"
If vbYes = True Then

RS.AddNew

If Not Text1 = "" Then RS![NOM] = Text1
If Not Text2 = "" Then RS![PRENOM] = Text2
If Not Text3 = "" Then RS![CIN] = Text3
If Not Text4 = "" Then RS![CNSS] = Text4

RS.Update
MsgBox "Ces données sont ajoutées", vbInformation + vbMsgBoxRight, "Données enregistrées"
End If

Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""

Text1.SetFocus

End Sub

------------------------------------------------------
Merci de m'aider à remplir ma table à partir de la feuille de saisie.
Quand je teste si les données saisies sont enregistrées, l'application ne me lance pas ce message "Attention, ce numéro existe déjà",

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Code corrige:

    Public DB As New ADODB.Connection
    Public RS As New ADODB.Recordset
    Public Rss As New ADODB.Recordset
    
    Public SQLs As String
    
    '------------------------------------------------
    Sub PoolConnection()
    
    If DB.State = adStateOpen Then DB.Close
    DB.Provider = "Microsoft.jet.OLEDB.4.0"
    DB.Open "data source =" & App.Path & "\BDCompagnie.mdb"
    
    End Sub
    
    '-----------------------------------------------------------
    
    'Sur la feuille de saisie
    
    Private Sub Form_Load()
    
    'Au chargement de cette feuille, pour se connecte à la base des données
    
    PoolConnection
    
    
    SQLs = "select * from TableauInfo"
    If RS.State = adStateOpen Then RS.Close
    RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
    
    End Sub
    
    '-----------------------------------------------------------
    
    'Sur le bouton ajouter
    
    Private Sub cmdAjouter_Click()
    
    'Pour obliger l'opérateur à remplir toutes les champs de texte
    
    If Text1 = "" Then
        MsgBox "Veuillez saisir le Nom", vbCritical + vbMsgBoxRight, "Erreur de saisie"
        Text1.SetFocus
        Exit Sub
    End If
    
    If Text2 = "" Then
        MsgBox "Veuillez saisir le Prénom", vbCritical + vbMsgBoxRight, "Erreur de saisie"
        Text2.SetFocus
        Exit Sub
    End If
    
    
    If Text3 = "" Then
        MsgBox "Veuillez saisir le numéro de la C.I.N", vbCritical + vbMsgBoxRight, "Erreur de saisie"
        Text3.SetFocus
        Exit Sub
    End If
    
    
    If Text4 = "" Then
        MsgBox "Veuillez saisir le numéro de la C.N.S.S", vbCritical + vbMsgBoxRight, "Erreur de saisie"
        Text4.SetFocus
        Exit Sub
    End If
    
    'Pour se connecter à la base des données
    
    SQLs = " SELECT * FROM TableauInfo where CIN='" & Text3 & "'"
    If RS.State = adStateOpen Then RS.Close
    RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
    
    If RS.EOF Then
    GoTo OkAddNew:
    Else
    MsgBox "Attention, ce numéro existe déjà", vbCritical + vbMsgBoxRight, "Erreur de saisie"
    Exit Sub
    Text1.SetFocus
    End If
    
    OkAddNew:
    Reponse = MsgBox("Etes vous sûr de vouloir ajouter ces nouvelles données ?", vbQuestion + vbYesNo + vbMsgBoxRight, "Alors, que décidez vous ?")
    If Reponse = vbYes Then    ' L'utilisateur a choisi Oui.
        'Pour enregistrer les données saisies
    
        RS.AddNew
    
        RS![NOM] = Text1
        RS![PRENOM] = Text2
        RS![CIN] = Text3
        RS![CNSS] = Text4
    
        'Pour actualiser les enregistrements
    
        RS.Update
    
        MsgBox "Ces données sont ajoutées", vbInformation + vbMsgBoxRight, "Données enregistrées"
    
        'Pour vider les zones de textes pour pouvoir recevoir de nouvelles enregistrements
    
        Text1 = ""
        Text2 = ""
        Text3 = ""
        Text4 = ""
    
        Text1.SetFocus
    End If
    
    End Sub


    Bonne suite
    0
    1. mohalesage Messages postés 162 Statut Membre 1
       
      Salut
      En procédant comme vous me l'aviez conseillé, la procédure a pu fonctionné comme il a été prévu.
      Merci une autre fois
      0