Enregistrement des données

Fermé
mohalesage - 20 févr. 2013 à 02:08
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 - 21 févr. 2013 à 00:14
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à",





A voir également:

1 réponse

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
20 févr. 2013 à 11:26
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
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
21 févr. 2013 à 00:14
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