Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/03/2011, 11h18   #1
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
Par défaut creer un comptage automatique

Bonjour,
Je débute avec access, j'ai réussi à me débrouiller pour obtenir une base assez complète et efficace. Bien sûr je souhaite avoir des automatismes pratiques. Il s'agit d'une bdd de stockage de produits biologiques.

Je souhaite, lorsque je choisis "Dna" dans un champs à liste déroulante, qu'un autre champs : "compte Dna" prenne la valeur 4.
En fait, le choix Dna engendre, en pratique, l'utilisation de 4 tubes. Nombre que j'utiliserai pour soustraire au nombre total de tubes disponibles en stock.
Ceci me permettra de gérer facilement les produits à commander.

J'espère que vous m'avez bien compris, merci pour votre aide
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 11h59   #2
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
hello
il suffit de renseigner la colonne nombre_à_sortir qui doit être une caractéristique propre au produit et de l'utiliser au bon moment
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 13h47   #3
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
Merci .....
mais je n'ai pas compris grand chose .... !
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 14h28   #4
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
J'ai ajouté dans ma table un champ numérique nommé "Compte Dna"
Dans mon formulaire correspondand, j'indique comme source de données de ce champ : =Si([Nature]="Dna";4;0) où Nature est le champ dans lequel j'entre Dna ou autre type de bio...
Par la suite je souhaite additionner ces "4" dans une requête.
Mais mon champ "Compte Dna" m'affiche cette erreur : #Nom ?

Je suis pourtant dans un champ numérique ... !?
Merci
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 15h57   #5
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
il est possible que je n'ai pas bien saisi le fonctionnement de ta base.
Dna, c'est quoi?
j'avais compris que pour chaque produit, on doit vendre plusieurs tubes en même temps, 4 pour le produit Dna, 2 pour un autre, etc.
j'en ai donc conclu que ce nombre est une caractéristique du produit, donc à stocker dans une colonne adéquate

Perso, je n'utilise pas les formules telle que celle que tu as cité, en effet, le nombre de si devient vite très important.
simplement, quand je renseigne ma table produit, je tape 4 dans la colonne

ensuite au moment de vendre le produit, dès qu'on a sélectionné Dna, (ou autre) il faut aller chercher 4 pour le mettre à quantité vendue (à moins que quatité ne soit le multiplicateur de 4, je ne sais pas)
dans un cas, on peut utiliser plusieurs méthodes comme dlookup ou comme column(x) de la liste déroulante.....
dans l'autre cas, c'est la requête qui préppare l'édition de la commande qui va assembler les données et faire les opérations
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 16h12   #6
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
En fait, il s'agit d'une bdd de stockage de prélèvement de différentes natures.
Si la nature est Dna, je sais que je vais utiliser 4 tubes Rouges. ainsi de suite pour d'autres natures.
Dans ce cas, je voudrai qu'automatiquement le Nombre "4 tubes" soit soustrait à la qté que j'ai en stock : 1000 tubes. Puis lorsqu'il en reste 50 par expl, un message s'affiche pour refaire une commande (qui sera un état dans ma base)

Je pourrai ainsi tout suivre : Tant de prélèvement de nature Dna par semaine ont nécessités l'utilisation de tant de tubes !
Voilà pour 1 produit utilisé.
C'est dans l'idéal mais je crois que ça risque de dépasser mes compétence !
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 16h17   #7
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
il est difficile de comprendre l'état actuel de ta base, mets la en pièce jointe
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 11h09   #8
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
Bonjour,
Ok, la voici en pièce jointe.
A partir du menu, on va dans "ajouter un nouveau prélèvement, un nouveau patient", Dans ce formulaire on sélectionne la nature du prélèvement.
Dans l'idéal, il faudrait compter chaque "nature" dans une table pour pouvoir l'utiliser à des fin statistique et aussi de décompte de matériel nécessairement utilisé pour tel nature de prélèvement.
Comme décrit plus haut : 150 Dna reçu = 150x4 tubes utilisés soit 1000-(150x4) tubes encore disponibles .....

Merci pour votre aide
Fichiers attachés
Type de fichier : zip bio v4.5.zip (259,0 Ko, 17 affichages)
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 09h15   #9
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
effectivement, j'ai mieux compris
tu as donc besoin d'une table qui précise tous les besoins de colonnes de données techniques: nb de tubes par lot, autre texte ou nombre attaché à la caractéristique 'Nature', c'est à dire tous ces concepts que le spécialiste entrevoie immédiatement a seul mot de DNA
à partir de la création de cette table, on supprime le test que tu entrevoyais dans ton premier post
Au choix, sous un bouton ou à l'évènement sortie d'une zone de texte (ou tout autre évènement de ton choix) tu peux écrire dans la table des variations de stock: quoi, combien, quand (avec test quand > limite)
ce qui te permettra de faire des sommes sur quoi, combien pour connaître l'état du stock

PS: les boutons de commande sont plus performants que les étiquettes pour faire ...... des boutons de commande
je te conseille aussi de nommer correctement tes objets: ajout_prélèv, bien que raccourci est quand même plus parlant que Étiquette13
enfin, tant qu'il en est encore temps, chasse vite tous les caractères spéciaux de tes noms de tables et de champs
par ex remplace:
Dépôt / Emprunt par Dépôt_Emprunt
Si non interprétable : raison par Si_non_interprétable_raison
mais tu peux raccourcir, c'estleslibellés d'étiquettes qui font l'ergonomie, pas le noms de colonnes de tables
enfin, essaye le VB, ça peut être simple et lisible
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 10h28   #10
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par Simplifi Voir le message
Hello
effectivement, j'ai mieux compris
tu as donc besoin d'une table qui précise tous les besoins de colonnes de données techniques: nb de tubes par lot, autre texte ou nombre attaché à la caractéristique 'Nature', c'est à dire tous ces concepts que le spécialiste entrevoie immédiatement a seul mot de DNA
à partir de la création de cette table, on supprime le test que tu entrevoyais dans ton premier post
Au choix, sous un bouton ou à l'évènement sortie d'une zone de texte (ou tout autre évènement de ton choix) tu peux écrire dans la table des variations de stock: quoi, combien, quand (avec test quand > limite)
ce qui te permettra de faire des sommes sur quoi, combien pour connaître l'état du stock
En effet, c'est ça ! Mais justement, je ne sais absolument pas comment faire ...
Tu pourrais me faire un petit exemple ...?
Merci
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 11h16   #11
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
J'ai fais un état à partir de requêtes qui vont me chercher les valeurs Dna et autres, ça fonctionne bien. Mon état fait un tri selon les expressions [Nature du prélêvement], c'est pas mal ...
J'ai introduit en source cette expression :
Code :
=VraiFaux([Nature du prélêvement]="Plasma";Compte(*)*8;"")
. Mais j'aimerais qu'en cas de résultat positif, j'ai aussi du texte : exple :
32 Tubes utilisés

Comment entrer "Tubes utilisés dans cette expression ? J'ai testé :
Code :
1
2
=VraiFaux([Nature du prélêvement]="Plasma";Compte(*)*8 "Tubes Utilisés";"")
Mais ça ne fonctionne pas !
Merci
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 14h12   #12
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
la bonne formule est
Code :
=VraiFaux([Nature du prélêvement]="Plasma";Compte(*)*8 & "Tubes Utilisés";"")
par contre, ce type de formule ne résoud pas le problème de la multiplication des cas vraifaux

Bon qu'est ce que tu ne sais pas faire? ajouer une table et la mettre en relation avec les autres?
ou écrire du VB pour récupérer les valeurs et les écrire dans une table de stocks?

l'écriture dans la table de stock peut aussi se faire avec une requête d'ajout
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 17h18   #13
Membre Expert
 
Homme Pierre ANTOINE
Inscription : février 2008
Messages : 650
Détails du profil
Informations personnelles :
Nom : Homme Pierre ANTOINE
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : février 2008
Messages : 650
Points : 1 302
Points : 1 302
Bonjour

Juste une précision aux propos de Simplifi du message n° 9.

Citation:
par ex remplace:
Dépôt / Emprunt par Dépôt_Emprunt
Pour ma part, je conseillerais de supprimer aussi les accents, qui peuvent être sources de désagréments.

Donc remplacer
Dépôt / Emprunt par Depot_Emprunt

Bonne fin de journée
Pierre
pier.antoine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 11h09   #14
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
Ok,
merci pour les précisions !
Je dois ajouter une table finalement donc ça perturbe tout mon travaille sur les requêtes et états ...
Pour le comptage, je m'en étais pas mal sorti (avec mon niveau) en créant une requête de comptage pour chaque nature de prélèvement et un état qui m'affichait tout ça en effectuant aussi d'autres opérations à partir de ces résultats.
Maintenant, je dois recommencer sur cette lancée avec ma nouvelle table ...
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 11h05   #15
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
Bonjour,
Je refais ma base et voila que mon formulaire principal, nommé "stockage" liant plusieurs table ne me permets pas d'entrer de nouveaux enregistrements ...!!??
Pouvez-vous m'aider ? Je suis vraiment coincé ...

Merci d'avance
Fichiers attachés
Type de fichier : rar biotheque v7.rar (222,8 Ko, 3 affichages)
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 17h22   #16
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
effectivement, la requête source du formulaire ne permet pas d'ajouter des lignes
Au passage, je te conseille de l'enregistrer comme requête
le problème se situe autour de la présence simultanée des tables stockage, prélêvements et mouvements
un lien de 1 à plusieurs entre prélêvements et mouvements
un lien de 1 à plusieurs entre stockage et prélêvements
mais sans rapport l'un avec l'autre
tu dois donc ré-étudier l'obligation de mettre tout ça dans la même requête

il est possible de conserver stockage et prélêvements dans la source
et de mettre tous les champs informatifs sur le prélèvement dans un sous- formulaire

Autre conseil, tu n'as pas besoin de deux champs pour la date et pour l'heure!! un seul champ suffit. tu peux néanmoins garder deux zones avc chacune son format: date pour l'une, heure pour l'autre
c'est juste comme si tu voulais sauvegarder la partie entière d'un coté et lapartie décimale de l'autre
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 11h12   #17
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 0
Points : 0
En effet les relations sont comme ça car un prélèvement peut avoir plusieurs mouvements : 1 dépôt, et plusieurs fois emprunté. de même, un prélèvement peut avoir plusieurs numéros de stockage car divisé en plusieurs tubes... D'où les relations d'1 à plusieurs.
Si je le fais en requête, quelle type de requête faut-il ? celle-ci peut ajouter des entrée dans plusieurs tables ? pourquoi est-ce mieux qu'un formulaire ?
Merci
lymatly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 09h06   #18
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
tu n'as pas bien compris ma réponse:
j'ai juste dit que la requête sous-jacente de ton formulaire n'ayant pas de ligne 'nouvel enregisrement', il était normal que tu ne puisse pas entrer de nouveaux enregistrements
la suite de mon message est l'analyse du pourquoi

il ne s'agit pas d'ajouter les enregistrements de stockage par requête mais seulement de modifier le formulaire pour que sa requête sous-jacente ait un ligne 'nouvel enregistrement'

NB: ce problème n'est pas lié à Access maissserait le même avec n'importe quel SGBD
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h00.


 
 
 
 
Partenaires

Hébergement Web