Problème d'enregistrement des modifications

Fermé
mohalesage - 25 févr. 2013 à 02:34
 mohalesage - 2 mars 2013 à 23:46
Bonjour les amis,
C'est encore moi, le débutant dans le VB. Je n'arrive pas à trouver l'astuce pour enregistrer les modifications faites.
Mon projet concu par le VB6, et Access 2003, est constitué de :
1 Une fenêtre de saisie
2 Une Fenêtre de recherche, avec une DataGrid
3 Une fenêtre de modification
4 Un module

Mes codes sont comme suit :

---------------------------------------------------------------------------------------------------------
Sur le module


Option Explicit

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 & "\BDAgafruit.mdb"

End Sub

---------------------------------------------------------------------------------------------------------
Sur la fenêtre de recherche :

Private Sub Form_Load()

On Error Resume Next

Adodc1.ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0;Data Source=" &
App.Path & "\BDCompagnie.mdb;Persist security info=False"

SQLs = " SELECT * FROM TableauInfo"

Adodc1.RecordSource = SQLs

Set DataGrid1.DataSource = Adodc1

DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False

LblCount.Caption = "Nombre d'enregistrement =" & " " &
Adodc1.Recordset.RecordCount & " " & "Enregistrés"
Adodc1.Refresh

DataGrid1.Columns.Item(0).Button = True


End Sub
-----------------------------------------------------------------------------------------------
Private Sub TCin_Change()

If TNom.Text = "" And TPrenom.Text = "" And TCin.Text = "" And TCnss.Text = ""
Then

SQLs = " SELECT * FROM TableauInfo"

Adodc1.RecordSource = SQLs
Adodc1.Refresh

LblCount.Caption = "Nombre des enregistrements= " & " " &
Adodc1.Recordset.RecordCount & " " & "enregistrés"
Exit Sub
End If

SQLs = "SELECT * FROM TableauInfo where NOM like'" & TNom.Text & "%'And PRENOM
like'" & TPrenom.Text & "%'And CIN like'" & TCin.Text & "%'And CNSS like'" &
TCnss.Text & "%'"

Adodc1.RecordSource = SQLs
Adodc1.Refresh

LblCount.Caption = "Nombre des enregistrements= " & " " &
Adodc1.Recordset.RecordCount & " " & "enregistrés"

DataGrid1.Columns.Item(0).Button = True

End Sub
-------------------------------------------------------------------------------------------------------------

Private Sub TCnss_Change()

If TNom.Text = "" And TPrenom.Text = "" And TCin.Text = "" And TCnss.Text = "" Then

SQLs = " SELECT * FROM TableauInfo"

Adodc1.RecordSource = SQLs
Adodc1.Refresh

LblCount.Caption = "Nombre des enregistrements= " & " " &
Adodc1.Recordset.RecordCount & " " & "enregistrés"

Exit Sub
End If

SQLs = "SELECT * FROM TableauInfo where NOM like'" & TNom.Text & "%'And
PRENOM like'" & TPrenom.Text & "%'And CIN like'" & TCin.Text & "%'And CNSS like'" &
TCnss.Text & "%'"

Adodc1.RecordSource = SQLs
Adodc1.Refresh

LblCount.Caption = "Nombre des enregistrements= " & " " &
Adodc1.Recordset.RecordCount & " " & "enregistrés"

DataGrid1.Columns.Item(0).Button = True

End Sub
----------------------------------------------------------------------------------------------------

Private Sub TNom_Change()

If TNom.Text = "" And TPrenom.Text = "" And TCin.Text = "" And TCnss.Text = "" Then

SQLs = " SELECT * FROM TableauInfo"

Adodc1.RecordSource = SQLs
Adodc1.Refresh

LblCount.Caption = "Nombre des enregistrements= " & " " &
Adodc1.Recordset.RecordCount & " " & "enregistrés"

Exit Sub

End If

SQLs = "SELECT * FROM TableauInfo where NOM like'" & TNom.Text & "%'And
PRENOM like'" & TPrenom.Text & "%'And CIN like'" & TCin.Text & "%'And CNSS like'" &
TCnss.Text & "%'"

Adodc1.RecordSource = SQLs
Adodc1.Refresh

LblCount.Caption = "Nombre des enregistrements= " & " " &
Adodc1.Recordset.RecordCount & " " & "enregistrés"

DataGrid1.Columns.Item(0).Button = True

End Sub
-----------------------------------------------------------------------------------------------------

Private Sub TPrenom_Change()

If TNom.Text = "" And TPrenom.Text = "" And TCin.Text = "" And TCnss.Text = "" Then

SQLs = " SELECT * FROM TableauInfo"

Adodc1.RecordSource = SQLs
Adodc1.Refresh

LblCount.Caption = "Nombre des enregistrements= " & " " &
Adodc1.Recordset.RecordCount & " " & "enregistrés"

Exit Sub

End If

SQLs = "SELECT * FROM TableauInfo where NOM like'" & TNom.Text & "%'And
PRENOM like'" & TPrenom.Text & "%'And CIN like'" & TCin.Text & "%'And CNSS like'" &
TCnss.Text & "%'"

Adodc1.RecordSource = SQLs
Adodc1.Refresh

LblCount.Caption = "Nombre des enregistrements= " & " " &
Adodc1.Recordset.RecordCount & " " & "enregistrés"

DataGrid1.Columns.Item(0).Button = True

End Sub

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

Sur DataGrid1 ( Conçue sur la feuille de recherche)

Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)

On Error GoTo xxx

Select Case ColIndex
Case 0
SQLs = "SELECT * FROM TableauInfo where CIN='" & DataGrid1.Text & "'"

End Select

FModification.Show
FModification.TNom = FRecherche.DataGrid1.Columns.Item(0)
FModification.TPrenom = FRecherche.DataGrid1.Columns.Item(1)
FModification.TCin = FRecherche.DataGrid1.Columns.Item(2)
FModification.TCnss = FRecherche.DataGrid1.Columns.Item(3)


Unload Me

xxx:


End Sub
---------------------------------------------------------------------------------------------------------

Sur La fenêtre de modification

Option Explicit
Dim CIN As String

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

Private Sub cmdModifier_Click()

Dim Reponse As String


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

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


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


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






If CIN = TCin Then
GoTo Dont_Check:

End If



SQLs = " Select * from TableauInfo where NOM='" & TNom & "' and PRENOM= '" &
TPrenom & "' and CIN='" & TCin & "' and CNSS='" & TCnss & "'"

If Rss.State = adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeyset, adLockPessimistic

If Rss.EOF Then
GoTo OkReplace:

Else

MsgBox "Attention ce numéro existe déjà", vbCritical + vbMsgBoxRight, "Erreur
de saisie"

Exit Sub
End If

OkReplace:
'---------------------------
Dont_Check:

Reponse = MsgBox("Etes vous sûr de vouloir enregistrer les modifications faites ?",
vbQuestion + vbYesNo + vbMsgBoxRight, "Alors, quoi faire ?")

If Reponse = vbYes Then


RS.Replace



If Not TNom.Text = "" Then RS![NOM] = TNom.Text
If Not TPrenom.Text = "" Then RS![PRENOM] = TPrenom.Text
If Not TCin.Text = "" Then RS![CIN] = TCin.Text
If Not TCnss.Text = "" Then RS![CNSS] = TCnss.Text


RS.Update

MsgBox "Les modifications sont enregsitrées", vbInformation + vbMsgBoxRight, "Données enregistrées"

End If

TNom.Text = ""
TPrenom.Text = ""
TCin.Text = ""
TCnss.Text = ""


End Sub
---------------------------------------------------------------------------------------------------

Private Sub cmdSortir_Click()
'Pour quitter cette fenêtre

Unload Me

End Sub

----------------------------------------------------------------------------------------------------
Private Sub Form_Load()


PoolConnection

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic

End Sub

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

Merci de m'aider pour pouvoir enregistrer mes modifications, et éventuellement de corriger mes codes.
Bonjour,



A voir également:

8 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
26 févr. 2013 à 13:35
Bonjour,

ce que je vous avais deja corrige dans un post precedant:

If Not TNom.Text = "" Then RS![NOM] = TNom.Text
If Not TPrenom.Text = "" Then RS![PRENOM] = TPrenom.Text
If Not TCin.Text = "" Then RS![CIN] = TCin.Text
If Not TCnss.Text = "" Then RS![CNSS] = TCnss.Text


code corrige:

    RS.AddNew

    RS![NOM] = Text1
    RS![PRENOM] = Text2
    RS![CIN] = Text3
    RS![CNSS] = Text4

    'Pour actualiser les enregistrements

    RS.Update


si il y a autre chose a regarder, il faudrait mettre le projet complet a dispo

A+
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
Modifié par mohalesage le 26/02/2013 à 23:35
Merci pour votre disponibilité, mon soit disant projet est presque là, seul la fenêtre de saisie qui manque. Vous pourrez relire mes codes mentionnés ci dessus, pour pouvoir trouver l'anomalie qui empêchait la fonction RS.Update de fonctionner.
Merci une autre fois
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié par f894009 le 27/02/2013 à 09:49
Bonjour,
Si ce n'est que cela, vous avez le reponse dans le post precedent, vous avez oublie entre autre RS.AddNew et If Not TNom.Text = "" ca ne marche pas.
A+
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
28 févr. 2013 à 01:11
Bonjour,
Désolé, j'ai essayer mais sans résultat. Je me trouve bloqué
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
28 févr. 2013 à 08:50
Bonjour,

Mettez a dispo le projet complet sur https://www.cjoint.com/ pour travailler avec votre projet. Passez par les messages prives si vous avez une rétissance quelconque.

A+
0
Salut, c'est déjà fait, le lien est : http://cjoint.com/?0BCxyyoEL5l , toute la structure de mon premier projet , même désordonée, est là.
Merci pour votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
1 mars 2013 à 09:17
Bonjour,

Ce que vous avez mis a dispo est un fichier .TMP??????????? Inexploitable

A+
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
1 mars 2013 à 22:15
Salut,
Vous pourrez toujours m'apprendre comment t'envoyer ce projet par le site Cjoint.com

Merci à vous
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
2 mars 2013 à 10:24
Bonjour,

Vous compressez le repertoire de votre projet avec le envouer vers dossier compresse de windows.
allez sur l'accueil ce ci-joint
parcourir pour trouver le dossier compresse
double click sur le dit dossier
click sur creer le lien
si IEx click sur copier le lien
si FIREFOX click droit sur le lien, copier l'adresse du lien

CCM copier le lien dans votre post

A+
0
Bonjour,
enfin j'ai trouvé la solution de mon problème. Elle se situait au niveau de l'indexation
de ma DataGrid. La clé était la ( CIN ) alors que la colonne de ma DataGrid portait ( NOM)
Maintenant, je cherche comment supprimer une ligne de ma DataGrid

Merci encore,
0