|
|
|
|
|
salut
c'est en effet pas compliqué du tout il te suffit de créer une table groupe ayant comme champs, le n° de groupe et une référence vers l'élève avec une relation de 1 (le groupe) à plusieurs (les élèves). Chouba, Pochard d'assaut ..
|
ce ne doit pas être bien difficile en effet.
Pour remplir tous les champs d'une table automatiquement en programmation il faut (en access 97): ouvrir un recordset avec ta table dim db as database dim matable as recordset set db = currentdb set matable = db.openrecordset (« eleves ») balayer un par un tous les champs with matable while .eof = false . . insértion du code ci dessous . . .movenext wend editer le champ et lui donner la valeur voulue prise dans la variable vnumero .edit !NumeroGroupe = vnumero .update calculer la valeur de la variable le plus simple : compter les enregistrements,diviser par 3 et donner ce numero au groupe au début dim vcompte as integer vcompte = 1 après while ... vnumero = vcompte / 3 avant wend vcompte=vcompte + 1 J'espère avoir été clair car j'ai décomposé les actions pour expliquer le principe. Il faut remettre les lignes dans l'ordre. maintenant il faut déterminer plusieurs choses dans le fonctionnement de ta base cette manip doit elle servir une fois ou plusieurs dans ce cas, l'ancien numéro doit il être conservé le numéro de groupe à t'il de l'importance par rapport aux élèves (ce n'est pas le cas dans l'exemple) comment veux tu déclencher cette action (bouton dans un formulaire, ...)
|
après quelques déboires (l'aide d'access ne marchait pas au boulot) voici quelque chose qui marche en access 2002. Le principe est toujours le même, c'est la façon d'ouvrir le recordset qui change. Je ne suis pas certain que ce soit la meilleure façon de procéder en access 2002 mais ça marche.
Sub groupe() Dim cn As ADODB.Connection Dim matable As ADODB.Recordset Dim vnumero As Integer Dim vgroupe As Integer Set matable = New ADODB.Recordset Set cn = Application.CurrentProject.Connection matable.Open "eleves", cn, adOpenKeyset, adLockOptimistic With matable vnumero = 3 While .EOF = False vgroupe = vnumero / 3 !groupe = vgroupe .Update .MoveNext vnumero = vnumero + 1 Wend End With matable.Close End Sub
|
on ajoute à la table un champ numéro auto nommé clef
on fait tourner cette requête PARAMETERS [taille des groupes] Short; UPDATE matable SET matable.groupe = Right(Partition([clef],1,100,3),Len(Partition([clef],1,100,[taille des groupes]))-InStr(Partition([clef],1,100,3),":"))\[taille des groupes]; on supprime cleg elle est pas belle, la vie ? |
Résultats pour Generateur automatique de code dans Access
Résultats pour Generateur automatique de code dans Access
Résultats pour Generateur automatique de code dans Access
Résultats pour Generateur automatique de code dans Access