Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Generateur automatique de code dans Access

Math_Love, le samedi 27 août 2005 à 09:46:23
Bonjour.
Mon probleme n'est certainemnt pas si complique que ca. mais je ne reussi pas bien à le résoudre.
Voila disons que j'ai une Table Access "Eleves" avec 11 Eleves: A,B,C,D,E,F,G,H,I,J,K.

Structure de la Table Elèves: NomEleve,ClasseEleve,NumeroGroupe

Je voudrai que Access me répartisse automatiquement ces élèves par groupe de 3. C'est à dire:

Groupe 1: A,B,C
Groupe 2: D,E,F
Groupe 3: G,H,I
Groupe 4: J,K
de sorte que dans la structure de la table "Elèves" le champs NumeroGroupe puisse contenir automatiquement le numero de groupe de chaque élève.

Je suis certain que c'est pas très comliqué mon truc, mais je suis débutant en programmation.

Merci de vos coups de pouce.
Math.
Répondre à Math_Love  Signaler ce message aux modérateurs Aller au dernier message

1


  • 2
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
choubaka, le samedi 27 août 2005 à 13:08:01
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 ..
Répondre à choubaka

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Math_Love, le samedi 27 août 2005 à 13:38:06
Merci Choubaka, Je vais essayer ta proposition.

Math
Répondre à Math_Love

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jean trantecisse, le samedi 27 août 2005 à 13:26:19
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, ...)
Répondre à jean trantecisse

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Math_Love, le samedi 27 août 2005 à 13:39:08
Merci Jean. je me mets au travail tout de suite.
Math
Répondre à Math_Love

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Math_Love, le mardi 30 août 2005 à 08:55:41
Salut Jean. J'ai essayé ton programme, tout le weekend, mais je me suis heurté à un problème de compilation avec les variables et les déclarations (surtout les commandes SET et DIM) . Pourrais-tu s'il te plait, me redonner ton programme tout entier sans le subdiviser exactement comme il devrait être saisi, et mettre les explications en fin de page ? Pour lancer cette opération comme tu me le demandais , ca se fera à partir d'un boutton sur un formulaire du genre : "Regrouper les élèves"Voici les lignes de programmes que tu m'a envoyé samedi dernier:

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
Merci de m'aider encore Jean.
A Plus
Répondre à Math_Love

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jean trantecisse, le mardi 30 août 2005 à 19:46:17
Le problème avec access c'est que ce qui marche dans une version, ne marche plus dans l'autre. Apparement, tu es en access 2000 ou 2002.
J'ai access 2002 au boulot et effectivement ça plante. Le plus beau, c'est que lorsque je convertis une base 97 programmée de la même manière, je n'ai pas l'erreur. J'ai mis un ami programmeur de métier sur le coup. Je te tiens au courant.
Répondre à jean trantecisse

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jean trantecisse, le jeudi 1 septembre 2005 à 20:29:00
J'ai fait des test et utilisé l'exemple envoyé par mon ami. Apparement, il ne faut plus utiliser database mais connection. Lorsque j'arrive à passer ce cap, le programme butte sur la proprièté edit du recordset qui semble gérée différement. Je te confirme que les lignes ci-dessous marchent en access 97 et sous access 2002 une fois la base convertie mais pour programmer proprement il ne faut plus utiliser les mêmes objets et méthodes. Je n'ai access 2002 qu'au boulot et je ne peux donc pas passer aussi longtemps dessus que je le voudrais. J'espère arriver à finir demain.
En tous cas cela confirme tout à fait ce que je pensais d'access, c'est une vraie vérole avec ses versions différentes. J'en arrive à passer plus de temps à convertir la base que j'ai créée pour le boulot pour que cela fonctionne chez mes différents utilisateurs qui n'ont pas tous la même version qu'a travailler sur le programme lui même.
Dès que je peux, je passe à python.

ci joint le code qui marche sous 97 en attendant.

Dim db As Database
Dim matable As Recordset
Dim vnumero As Integer
Dim vgroupe As Integer
Set db = CurrentDb
Set matable = db.OpenRecordset("eleves")
With matable
vnumero = 1
While .EOF = False
.Edit
vgroupe = vnumero / 3
!numerogroupe = vgroupe
.Update
.MoveNext
vnumero = vnumero + 1
Wend
End With
Répondre à jean trantecisse

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jean trantecisse, le mercredi 7 septembre 2005 à 12:59:42
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
Répondre à jean trantecisse

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 7 septembre 2005 à 15:33:54
Salut,

si l'ancienne méthode ne marche pas, c'est sans doute que tu n'as pas validé dans le menu 'references' (accessible par le menu 'outils' quand tu es dans le code), Microsoft DAO x.x object library...

Avec ça, on peut utiliser le code des anciennes versions (et surtout le openrecordset)
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 random, le mercredi 7 septembre 2005 à 17:17:07
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épondre à random

Résultats pour Generateur automatique de code dans Access

Generateur de code (Résolu) salut je cherche un bon generateur de code, me dite pas visual studio, je le connait mais un programme facile svp. MERCI www.commentcamarche.net/forum/affich-3545211-generateur-de-code
Générateur automatique de site ou blog (Résolu) Bonjour, je souhaiterai savoir qu'elle est le meilleur site (générateur automatique) pour référancer son blog ou son site merciii d'avance !!! www.commentcamarche.net/forum/affich-6790266-generateur-automatique-de-site-ou-blog
Modif ou supp messages erreur access (Résolu) Bonjour, Est il possible de supprimer ou de personnaliser les messages d'erreur automatiques d'Access, comme par exemple : le texte entré n'est pas un élément de la liste, selectionnez un élément de la liste ou entrez un texte qui... www.commentcamarche.net/forum/affich-4243836-modif-ou-supp-messages-erreur-access

Résultats pour Generateur automatique de code dans Access

[PHP] Rediriger sur une autre page (redirection)N'import quel webmaster réalise un jour qu'un de ses fichiers possède un nom qui ne convient pas ou que l'arborescence des fichiers doit être modifiée. Cependant, s'il est relativement facile de changer les liens sur son site, il est beaucoup plus... www.commentcamarche.net/faq/sujet-878-php-rediriger-sur-une-autre-page-redirection
Erreur 81000306 :Accès impossible à WLM (ex MSN)Tout d'abord, vérifiez l'état des serveurs MSN Messenger, afin de déterminer si le problème ne vient pas de là: Vérifier l'état du service Si le service est stable et en cours de fonctionnement et qu'aucune autre solution n'a fonctionné, passez... www.commentcamarche.net/faq/sujet-7506-erreur-81000306-acces-impossible-a-wlm-ex-msn

Résultats pour Generateur automatique de code dans Access

Y A T IL UN GENERATEUR PHP (Résolu)Bonjour, je voudrais savoir s'il y a des logiciels, generateur des codes php, comme c'est le cas avec le html. www.commentcamarche.net/forum/affich-8817516-y-a-t-il-un-generateur-php
Ouvrir fichier excel sous access et renommer (Résolu)Bonjour, Je cherche une macro me permettant de : 1- Ouvrir un fichier type.xls sous access (réalisable avec Workbooks.Open) 2-enregister ce fichier sous un nom qui est donner automatiquement par access = (NuméroAuto).xls, sans perdre le fichier type.xls www.commentcamarche.net/forum/affich-2998554-ouvrir-fichier-excel-sous-access-et-renommer
Problème avec un crack (Résolu)Bonjour à tous. Voilà j'ai un pti problème, j'ai téléchargé Adobe Audition 2.0 et un cracker (plus exactement un générateur de codes de série) mais je sais pas quoi faire. Ya deux boutons "Générer" avec des codes et tout mais j'y... www.commentcamarche.net/forum/affich-3236127-probleme-avec-un-crack

Résultats pour Generateur automatique de code dans Access

Télécharger Windows Live ToolbarWindows Live Toolbar est un moteur de rechercher nouvelle génération. Il est accessible à partir de tous les pages web, mais aussi la plupart des navigateurs. La barre vous permet gratuitement : d'accéder à votre compte de messagerie, ainsi de... www.commentcamarche.net/telecharger/telecharger-34056253-windows-live-toolbar
Télécharger WIFI Key Generator Les connexions Wifi sont certes très pratiques, mais étant donné qu'ils ne nécessitent aucun câblage, tout le monde peut s'y connecter si son ordinateur est compatible avec le Wifi. WIFI Key Generator est une petite application destinée à générer des... www.commentcamarche.net/telecharger/telecharger-34056165-wifi-key-generator