Enregistrement des données
mohalesage
-
mohalesage Messages postés 162 Statut Membre -
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à",
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:
- Enregistrement des données
- Fuite données maif - Guide
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Supprimer les données de navigation - Guide
1 réponse
Bonjour,
Code corrige:
Bonne suite
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
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