Mise à jour VB6 et Access 2007 avec requête SQL

mohalesage Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour l'Ami,


J'ai besoin de votre aide. Je me suis trouvé coincé au bout du couloir. Je n'arrive pas à dépasser le niveau de la mise à jour, surtout la commande Modifier

Pour information

Je travaille avec VB6 et Acces 2007, utilisant la requête SQL


sur le Module, j'ai écris

Public DB as New ADOBD.Connection

Public RS as New ADODB.RecordSet

Public Rss as New ADODB.RecordSet


Public SQLs as String




Sur acces il y a Trois Tables

Une TablePrincipale ( stock les données saisies à partir de la feuille de saisie )
Deux Tables Secondaires indexéeqs ( TableNom, TableMatiere )

TableNom est indexée par Les Nom
TableMatiere est indexée par les Matiere





Mon problème se situe au niveau de la commande Modifier.



Sur la feuille d'affichage pour la consultation en vue de la modification, les données sélectionnées sur la feuille de Recherche s'affichent

lorsque je change le contenu d'un objet text, le changement s'effectue :

Normalement sur la TablePrincipale

Normalement sur les deux Tables secondaires tant que Nom ( index sur la TableNom ) et Matiere ( Index sur la TableMatiere ) n'ont pas été modifié sur la feuille de consultation en vue de la modification

Mon objectif est : lorsque je change sur la feuille de consultation en vue de modification, par exemple Nom, les données saisies auparavant devant le nom x disparaissent de la ligne de ce nom, mais apparaissent sur la ligne du nouveau Nom saisi sur l'objet Text de la feuille consultation

Bien sur il y a toujours une condition pour chacune de modification

Une partie de mon objectif se réalise, à savoir la disparition des données de la ligne de l'Index modifié
mais l'apparition des ces données sur la ligne du nouveau Nom ne se réalise pas


pour plus d'éclaircissement

Sub cmdModifier_Click ()



if NOrdre = TNOrdre then

Goto Ne_Fais_Rien :

end if


SQLs="Select * TablePrincipale where NOrdre = " & TNOrdre &""

if Rss.State=adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeySet, adLockPessimistic



if Rss.EOF then

Goto Oks:

else

msgbox" Ce Numero Existe "


exit sub
end if


Oks:
'-------
Ne_Fais_Rien:


ActuMsg=msgbox("Voulez vous modofier ?",VBquestion+vbYesNo,)


if AcuMsg=vbYes then

'-----l'Actualisation de la TablePrincipale

RS![Nom]=TNom
RS![Matiere]=TMatiere
RS![Note]=TNote

RS.Update


'--------------------------------------------


Dim N

N=CStr(TNom)


SQLs="Select * from TableNom where Nom = '" & CStr(TNom) &"'"


if Rss.State=adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeySet, adLockPessimistic

'-----l'Actualisation de la TableNom

Selct Case TNom

Case is <> RS![Nom]

RS![NOrdre]=0
RS![Matiere]=""
RS![Note]=0

Case Else

RS![NOrdre]=TNOrdre
RS![Matiere]=TMatiere
RS![Note]=TNote


end Select

RS.Update

'-------------------------------------------------

'-----l'Actualisation de la TableMatiere

Dim M

M=CStr(TMatiere)


SQLs="Select * from TableMatiere where Matiere = '" & CStr(TMatiere) &"'"


if Rss.State=adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeySet, adLockPessimistic



Selct Case TMatiere

Case is <> RS![Matiere]

RS![NOrdre]
RS![Nom]=""
RS![Note]=0

Case Else

rs![NOrdre]
RS![Nom]=TNom
RS![Note]=TNote


end Select

RS.Update

end if


FRecherche.Show

Load me


end sub




l'instruction équivalente à case is <> se réalise
par contre celle concernant Case = ne se réalise pas




Merci d'avance pour votre aide
A voir également:

28 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

petite mofid sur correction saisie (toujours pas form editionsaisie)

https://www.cjoint.com/?DEznJbEffAW

regardez cette partie correction saisie, elle est beaucoup plus simple que ce que vous avez fait. De meme que j'avais simplifie le code de la saise des notes mais ......

A+
0
mohalesage Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour l'Ami,

Je viens juste de récupérer les fichiers envoyés.
Je vais les ouvrir pour voir vos corrections.

Merci pour tout

A plus
0
mohalesage Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour l'ami,

Vraiment vos codes sont bien agencés.
Votre façon d'écriture est celle d'un professionnel.
Il me faut beaucoup de temps de cerner les astuces du VB.

Je vous ecris pour vous exposer un autre problème qui me casse la tête, à savoir
le Recalcul des cumuls des notes après la modification

expemple

j'ai sur la feuille de saisie ( et de Recherche)


N CodeEtudiant Nom_Prenom Matiere Note CumulNote

1 1000 XXXX VCT Math 14 14
2 1000 XXXX VCT Phys 12 26



Je modifie la note de la ligne 1

au lieu de 14 je mets 16


comment recalculer le CumiulNote pour avoir 28


Salutations

A plus
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

comment recalculer le CumiulNote pour avoir 28 ??????? c'est 16 en note cumulee Math si vous remplacez 14 par 16 et c'est 30 si 16 est une nouvelle note
0

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

Posez votre question
mohalesage Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour l'Ami,

Effectivement, je veux changer le cumul de la preimère ligne

Avant la modification



N Code Etudiant Nom_Prenom Matiere Note CumulNote

1 1000 XXXX VCT Math 14 14
2 1000 XXXX VCT Phys 12 26



Après la Modification ( je change 14 ( Note ) par 16




N CodeEtudiant Nom_Prenom Matiere Note CumulNote

1 1000 XXXX VCT Math 16 16
2 1000 XXXX VCT Phys 12 28




Si je changeais 14 par 16, le cumul change et devient 16
et si on ajoute 12 il devient 28


J'espère que j'ai bien exposé mon problème

A plus l'Ami
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Pour le moins curieux cette facon de faire le cumul.

Je n'ai pas le projet avec le cumul note sur la form saisie recherche !!!!!! donc peut pas repondre plus
0
mohalesage Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   1
 
Re

Je te remmetrrai le projet pour vous permettre de voir clair

https://www.cjoint.com/?0ECsNDGZplh


J'espère ne pas vous dérranger

A plus
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,
La Saisie Form EditionSaisie est bien pensee, mais avec votre logique, pas simple a remplir voir impossible et si vous modifie une note ce sera de meme

Dans la table TableNotes, il doit y avoir tous les controles par matieres, comment voulez vous faire des calculs avec ce que vous avez enregistre dans votre table.
De plus, si une personne vous demande de lui montrer toutes ses notes ou conteste vos resultats, vous allez etre dans l'embarras. Une base de donnees doit contenir toutes les informations du premier niveau necessaires

Ces cumuls et moyenne doivent etre:
_dans une table avec une colonne Nom, CNE, Cumul Nombre de controles et moyenne

ou faire une requete avec le CNE en parametre de recherche et remplir un tableau avec le resultat de cette requete
0