[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes Access des débutants - Problèmes Access des débutants


clos par 3Stone le 17/08/2010 : 00:21  Sujet n° 372  Saisir plusieurs enregistrements à la fois

le 30/05/2010 : 19:01
par Kolele

Anonyme

visiteur

Bonsoir, Grâce aux conseils trouvés ici, je me lance dans la créationd'une application de gestion de 9000 manuels scolaires élèves avec lecteur codebarre (code39).Je bute sur un problème de saisie en masse : sil'attribution du manuel se fera individuellement avec lecteur et saisie de l'élèveau clavier (j'ai provisoirement renoncé à coller un code barre sur le front dechaque élève !), l'achat des manuels est massif (400 exemplaires du même manueld'un coup). Or, je ne sais gérer la saisie que d'un enregistrement à la fois. Tables : Discipline (maths, anglais..), Niveau (Seconde,Première..), ManuelScolaire (titre, éditeur et avec en clé externe les clésprimaires des 2 tables précédentes), ModeStockage (achat/vente/destruction), Stock(Champ compteur en clé primaire, CléManuelScolaire en clé externe, Code Barre,CléModeStockage en clé externe). Je cherche à fabriquer une procédure VBA qui génèrerait enun clic, sur un formulaire, dans la table Stock les 400 exemplaires du manueld'Espagnol de la classe de Seconde.(Ça fait des années que je rêve de cette procédure et là jene peux plus m'en passer) Merci à tous de vos tuyaux.Et merci à 3Stone d'héberger les SDF de MPFAccess !
 sujet clos  Haut

[]   

Réponse n° 1
--------
le 31/05/2010 : 14:19
par 3Stone

Anonyme

Administrateur

Bonjour,

 
Citation :

Je cherche à fabriquer une procédure VBA qui génèrerait en un clic, sur un formulaire, dans la table Stock les 400 exemplaires du manuel d'Espagnol de la classe de Seconde.

 
Pas tout compris, mais...

Pourquoi cherches-tu à enregistrer 400 lignes, une pour chaque livres ?
Cela se justifie (peut-être) à la condition que chaque livre possède un numéro unique... sinon un stock se gère "en volume".

Cordialement,
Pierre(3stone)
  clos par 3Stone le 17/08/2010 : 00:21  Haut
Réponse n° 2
--------
le 03/06/2010 : 18:23
par kolele

Anonyme

visiteur
Rebonsoir Pierre
"Stocks" n'est peut être pas le nom adéquat de cette table. Dans la table "manuelScolaire", (côté UN), je veux placer chaque titre (CléManuelSco = 1 ; Titre = Espagnol – Classe de Seconde). Tandis que dans cette table "Stock", (côté plusieurs), je voudrais inventorier chaque volume (CléStock = 368 ; ClémanuSco = 1). Puis dans une requête, introduire le codebarre (CléStock, au format code39).
Et donc je voudrais, le jour de la livraison des 400 volumes du même titre, les ajouter d'un coup dans la table stock (l'étape suivante sera d'éditer des étiquettes codebarre, puis d'organiser la distribution aux élèves ; là-dessus, je devrais me débrouiller). Une requête mise à jour suffirait où faut-il du VBA pour réaliser un truc pareil ?
En te remerciant,
  clos par 3Stone le 17/08/2010 : 00:21  Haut
Réponse n° 3
--------
le 07/06/2010 : 20:51
par 3Stone

Anonyme

Administrateur

Bonjour,

 
Citation :

Dans la table "manuelScolaire", (côté UN), je veux placer chaque titre (CléManuelSco = 1 ; Titre = Espagnol – Classe de Seconde).

 
Oui, mais tu as 400 livres identiques me semble t-il, non ?

 
Citation :

Tandis que dans cette table "Stock", (côté plusieurs), je voudrais inventorier chaque volume (CléStock = 368 ; ClémanuSco = 1). Puis dans une requête, introduire le codebarre (CléStock, au format code39).

 
Je ne sais pas trop ce que tu entends par là...

Encore une fois, un code barre n'est qu'une méthode d'écriture qui permet une lecture optique (via scanner) mais cela n'influence en rien l'organisation de la base et des tables. D'ailleurs, en cas de panne du lecteur, il faut pouvoir utiliser la base exactement de la même manière, mais par saisie manuelle.
Le code barre n'ajoute donc rien, même pas un champ! Il permet seulement de faciliter les saisies. Par exemple, on lit le badge de l'élève via son code barre, puis le code barre du livre (que ce dernier existe physiquement sur le livre ou soit disposé à proximité).

Cordialement,
Pierre(3stone)
  clos par 3Stone le 17/08/2010 : 00:21  Haut
Réponse n° 4
--------
le 09/06/2010 : 22:37
par Kolele

Anonyme

visiteur
Bonsoir, 3Stone : C'est vrai : je mélange tout. Le code barre n'a rien à voir avec mon problème du jour qui est : Gérer la livraison par le libraire de 400 volumes d'un même titre
Je veux les saisir dans Access, avec 2 tables : dans la première table "ManuelScolaire", je saisis seulement le titre du bouquin (Côté UN) ;  dans la seconde table "Volumes" (côté plusieurs), je saisis chacun des 400 volumes (CléPrimaire au format NuméroAuto, Clé externe = clé primaire de la table précédente).

Pour répondre à ta question : oui, les 400 livres sont identiques, matériellement parlant. Dans Access, ils seront différenciés dans la deuxième table, par la clé primaire (volume 1, volume 2….400).

C'est là que je cherche une solution pour m'éviter d'avoir à saisir un à un 400 volumes, ou d'importer des lignes d'Excel. Je pense à une Requête ajout qui ajouterait à ma table "Volume" 400 enregistrements, incrémentant le NuméroAuto, et définissant la valeur du champ clé externe (identifiant ManuelScolaire, ="2" par exemple, correspondant dans la Table "ManuelScolaire" au titre Espagnol – Classe de 2nde – Première langue). Au final, je voudrais 400 lignes de plus avec la valeur "2" Je n'arrive pas à la paramétrer en mode création, encore moins en SQL. J'espère avoir été moins abscons ! Merci de ta patience.  
  clos par 3Stone le 17/08/2010 : 00:21  Haut
Réponse n° 5
--------
le 10/06/2010 : 15:46
par 3Stone

Anonyme

Administrateur

Bonjour,

Plus de réponse sur social.answers.microsoft.com  ?  e

Malgré que je ne vois pas la raison d'une telle organisation... voilà ce que tu peux faire. Adapte les noms de table et de champ à ce que tu utilises.

table 1 : T_Type_Livre
champ 1 : ID_Livre - numéroauto
champ 2 : Nom_Livre - texte
...

table 2 : T_Livre_Disponible
champ 1 : ID_LivreDispo - numéroauto
champ 2 : ID_TypeLivre - numérique (recoit donc ID_Livre de table 1)

un petit formulaire frm_AjoutLivre avec :
un liste lst_TypeLivre basée sur la table 1 (colonne ID_Livre cachée)
une zone de texte txtQuantite pour la saisie du nombre de livres à saisir
un bouton cmd_AjoutLivre avec le code ci-dessous

 
Code :
Private Sub cmd_AjoutLivre_Click()
Dim i As Integer
Dim db As DAO.Database
Dim rs As DAO.Recordset
'// Vérifications
If Not IsNull(Me!lst_TypeLIvre) Then
If IsNull(Me.txtQuantite) Then
MsgBox "Saisir une quantité"
Exit Sub
End If
Else
MsgBox "Sélectionner le type du livre"
Exit Sub
End If
'// Boucle
Set db = CurrentDb
Set rs = db.OpenRecordset("T_Livre_Disponible")
For i = 1 To Me.txtQuantite
rs.AddNew
rs!ID_TypeLivre = Me!lst_TypeLivre
rs.Update
Next i
'// Libérer les variables
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
'// OK
MsgBox Me.txtQuantite & " livres " & Me!lst_TypeLivre.Column(1) & " ont été ajoutés."
Me.lst_TypeLIvre = Null
Me.txtQuantite = Null
End Sub
 

Voilà, si c'est ce que tu souhaites...

Cordialement,
Pierre(3stone)
  clos par 3Stone le 17/08/2010 : 00:21  Haut
Réponse n° 6
--------
le 11/06/2010 : 15:32
par kolele

Anonyme

visiteur
Raah lovely : je cours l'essayer !n
  clos par 3Stone le 17/08/2010 : 00:21  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut