Accueil | Aide en ligne | Annuaire | Sécurité | Articles | Astuces | Téléchargements | Association 


Mon compte SOS Ordi

Vous n'êtes pas identifié
[-> S'inscrire à SOS Ordi
[-> Mot de passe perdu ?
S'identifier


Rechercher sur SOS Ordi

Ok

Dans





 Catégories de l'aide en ligne

 Aide en ligne


 Saviez vous que ...

Vous pouvez commenter une actualité, un logiciel ou un pilote


 Partenaires

  SOS Ordi > Aide en ligne > Logiciel > Développement > Base de données > PB de creation automatique de clef primaire (extra hot)

PB de creation automatique de clef primaire (extra hot)

5 réponse(s)
dont 5 ont aidé neo-access à résoudre son problème

  Problème résolu posté le 11/04/2005 à 11:28
Profil Configuration PC
neo-access


Aucun
État : Absent
Bonjour,
Je suis actuellement en stage et je doit creer un outils de gestion sous access permettant de repertorier du mobilier.
Quant l'entreprise achete un chaise elle peut en acheter 100 indentique.
Mon but est de creer un table T_Mobilier qui, dans un formulaire sera intégrer en tant que sous formulaire tabulaire, qui me permet de creer un infiniter de ligne par rapport a un numéro de contrat dans la table T_mobilier.
Le numéro de séri du mobilier doit étre la clef primaire de la table T_Mobilier, ce numéro doit etre une concaténation automatique des 4 premiere lettre du type du mobilier (ex: Chaise => Chai) puis un numéro automatique qui pour chaque type de mobilier doit etre incrémenter de 0 a 999 999.
Je voudrai enfaite a chaque fois que je selectionne (à l'aide d'une liste déroulante)le service où sera ranger le mobilier, faire la mise a jour automatique de la clef correspondant au service.
Remarque 1: le nom service ne modifie en rien la cle seulement dans un formulaire tabulaire pour permettre d'ajouter des ligne il faut commencer a écrire dans un des champ de la table
Remarque 2: J'ai réussi à creer les requêtes en SQL est la concaténation à l'aire de fonctionner, c'est quand j'essaye de programmer la fonction VBA que je bug...

   

Bas de page 


Information

Pour participer vous devez d'abord être membre ou identifié :
[-> M'identifier
[-> Je ne suis pas membre SOS Ordi, je souhaite m'inscrire
[-> J'ai perdu mon mot de passe


  Réponse postée le 11/04/2005 à 11:48
Profil du membre Configuration PC
Tarma



État : Absent
Bonjour,
Je suis actuellement en stage et je doit creer un outils de gestion sous access permettant de repertorier du mobilier.
Quant l'entreprise achete un chaise elle peut en acheter 100 indentique.
Mon but est de creer un table T_Mobilier qui, dans un formulaire sera intégrer en tant que sous formulaire tabulaire, qui me permet de creer un infiniter de ligne par rapport a un numéro de contrat dans la table T_mobilier.
Le numéro de séri du mobilier doit étre la clef primaire de la table T_Mobilier, ce numéro doit etre une concaténation automatique des 4 premiere lettre du type du mobilier (ex: Chaise => Chai) puis un numéro automatique qui pour chaque type de mobilier doit etre incrémenter de 0 a 999 999.
Je voudrai enfaite a chaque fois que je selectionne (à l'aide d'une liste déroulante)le service où sera ranger le mobilier, faire la mise a jour automatique de la clef correspondant au service.
Remarque 1: le nom service ne modifie en rien la cle seulement dans un formulaire tabulaire pour permettre d'ajouter des ligne il faut commencer a écrire dans un des champ de la table
Remarque 2: J'ai réussi à creer les requêtes en SQL est la concaténation à l'aire de fonctionner, c'est quand j'essaye de programmer la fonction VBA que je bug...

  Réponse postée le 11/04/2005 à 11:58
Profil du membre Configuration PC
jaromi



État : Absent
Salut,

Qu'est-ce qui bug exactement dans ta fonction ?

Aurrais-tu un morceau de ton code à nous montrer avec quelques commentaires ?

jh0483

  Réponse postée le 11/04/2005 à 12:19
Profil du membre Configuration PC
neo-access



État : Absent
Encor mieu tous le code...

Private Sub MATERIEL_NUM_SERIE_CD_BeforeUpdate(Cancel As Integer)
Cancel = 0
Dim DB As Database
Dim RS1 As Recordset
Dim RS2 As Recordset
Dim resultat As String
Dim SQL1 As String
Dim SQL2 As String

SQL2 = "SELECT IIf(IsNull(Count(T_MATERIEL.DESCR_MAT_CD)+1),str(1),str(Count(T_MATERIEL.DESCR_MAT_CD)+1)) AS NumAuto FROM T_DESCRIPTION_MATERIEL INNER JOIN T_MATERIEL ON T_DESCRIPTION_MATERIEL.DESCR_MAT_CD = T_MATERIEL.DESCR_MAT_CD WHERE (((T_DESCRIPTION_MATERIEL.DESCR_MAT_TYPE)=[Formulaires]![FORMULAIRE NOUVEAU CONTRAT MATERIEL]![SOUS FORMULAIRE DESCRIPTION NOUVEAU MATERIEL].[Formulaire]![DESCR_MAT_TYPE]));"

SQL1 = "SELECT Mid([DESCR_MAT_TYPE],1,4) AS Type FROM T_DESCRIPTION_MATERIEL WHERE (((T_DESCRIPTION_MATERIEL.DESCR_MAT_TYPE)=[Formulaires]![FORMULAIRE NOUVEAU CONTRAT MATERIEL]![SOUS FORMULAIRE DESCRIPTION NOUVEAU MATERIEL].[Formulaire]![DESCR_MAT_TYPE]));"
DB = CurrentDb

RS1 = DB.OpenRecordset(SQL1)
RS2 = DB.OpenRecordset(SQL2)
resultat = RS1+ RS2
Me!MATERIEL_NUM_SERIE_CD = resultat
End Sub

Je serai pas exactement ou ca bug enfaite ca me dit qu'une cle primaire ne doit pas avoir de valeur null quand j'ai selectionner le lieu ou sera stoker la chaise (par ex) et que je clique ailleur, j'ai intégré cette fonction dans => MATERIEL_NUM_SERIE_CD/propriété/Evenement/AvanMAJ

  Réponse postée le 11/04/2005 à 12:26
Profil du membre Configuration PC
neo-access



État : Absent
Excuser mou g oublier le commentaire:
----SQL2: permet de generer un numéro automatique pour chaque type de mobilier
----SQL1: Permet de selectionner les 4 premier lettre d'un type de mobilier
Ensuite les 3 dernier ligne c'est des tentatives pour concatener et envoyer le resultat dans le tableau situé dans un sous-formulaire

  Réponse postée le 19/04/2005 à 11:22
Profil du membre Configuration PC
neo-access



État : Absent
Bon a force de recherche et de patience j'ai reussi



Haut de page 

 

Version 5.6 | Infos / Contacts | Partenariat | Publicité