[VB6] Création d'une Prodédure ayant pour arguments les contrôles Data
Bonjour tout le monde, je voudrais créer une procédure qui me permette de mettre à jour des recorsets des contrôles Data.
J'ai une feuille avec plusieurs contrôles Data (ctrlDataA, ctrlDataB, etc. par exemple) chaune reliée à une table spécifique (TableA, TableB, etc.). Seulement dans ma base de donnée toutes ces tables reliées aux contrôles Data ont une partie de la clé en commun (Nom, Modèle, Entité, Année) et l'autre partie des clés des tables varie (Couleur pour TableA, Taille pour TableB, etc.).
Alors pour ne pas avoir à répéter le même code, j'ai créé une procédure, mais elle ne marche pas:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
Sub MAJ()
KeyTables (ctrlDataA)
KeyTables (ctrlDataB)
End Sub
Public Sub KeyTables(ctrlData As Data)
'Mets tous les ctrlData en mode Ajout et donne les clés des tables
'pour permettre les enregistrements sans doublons dans les Recorsets
With ctrlData.Recordset
If .EditMode = dbEditNone Then
.AddNew
!Nom = "Paul"
!Modèle = "Test"
!Entite = Combo1.ListIndex + 1
!Num_Periode = 2006
End If
End With
End Sub |
Je n 'y arrive pas et je suis donc oblige de réécrire sensiblement le même code comme ci-dessous
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| With ctrlDataA.Recordset
If .EditMode = dbEditNone Then
.AddNew
!Nom = "Paul"
!Modèle = "Test"
!Entite = Combo1.ListIndex + 1
!Num_Periode = 2006
End If
End With
With ctrlDataB.Recordset
If .EditMode = dbEditNone Then
.AddNew
!Nom = "Paul"
!Modèle = "Test"
!Entite = Combo1.ListIndex + 1
!Num_Periode = 2006
End If
End With |
Merci pour votre coup de main…
[VB6] Re procédure de contrôles Data
Bonjour,
Je te remercie, c'est vrai que j'ai pas envisagé les recordsets hiérarchiques. En fait je suis complètement débutant en VB6, d'ailleurs toute la documentation dont je dispose et qui m'a aidé à faire ce que je peux aujourd'hui provient des praticiels dispoinibles sur ce site.
Bravo car non seulement ils sont super bien rédigés, l'explication est claire.
C'est vrai que dans l'un des praticiels, on explique la méthode d'accès aux données par DataEnvironment avec les objets Command. Mais on y parle pas de table parent/enfant du moins dans le praticiel praticielinitdb.pdf
P R E M I E R S P A S A C C È S A U X D O N N É E S
A C C É D E R A U X D O N N É E S D ' U N E B A S E A C C E S S E T L E S U T I L I S E R
Je vais faire une nouvelle recherche sur le site.
Concernant la structure de la Base de Donnée, c'est vrai que je ma suis arrêté pour le moment au MLD (Modèle Logique de Donnée) mais je crois que les informations ne sont pas redondantes.
Il s'agit enfait d'une clé composée : la partie commune de cette clé est Nom,Modèle,Entite,Num_Periode et la partie variable qui concerne les tables en question peut être Couleur pour une table, Taille pour une autre.
Ce qui fait que les tables ont de clés du style :Nom,Modèle,Entite,Num_Periode,Couleur pour une ou :Nom,Modèle,Entite,Num_PeriodeTaille pour une autre.
C'est à cause une association multiple mais nécessaire que j'ai cette configuration.
[VB6] Création d'une Prodédure ayant pour arguments les contrôles Data
Salut, Jacques
J'essaye de créer pour mes besoins de recherche en Gestion d'entreprise (Master en Gestion quantitative) une petite de simulation de l'interaction des entreprises sur un marché concurentiel. Il s'agit de les évaluer en amont sur la production, le commercial, et les états financiers. Les évaluations sont simples, il s'agit de traduire leurs choix en pourcentage de part de marché de coûts (ou de poids) sur le CA.
Chaque simulation a un nom (Nom), un modèle Concurrence Pure et Parfaite CPP (Modèle), plusieurs entreprises (Entite), plusieurs années d'exercice (Num_Periode). Donc a priori tout ces éléments sont des tables.
Une entreprise a plusieurs type de personnel (Cadre, etc.), de produits (haut de gamme, etc.) donc la encore à priori des tables.
Je veux enregistrer les informations précédentes sur un seul formulaire dans les tables concernées.
Je parviens à le faire mais avec la répétition du code comme j'ai indiqué dans mon premier post. c'est pour cette raison que j'ai voulu créer une procédure qui a pour arguments soit les contrôles Data soit en argument DataBaseName
La résolution de ce problème me permettra de savoir comment programmer la recherche des informations d'une entreprise.
Alors l'utilisateur en occurence moi ou tout autre simulateur, peut enregistrer (méthode AddNew) les choix des entreprises (Type de produit, qté, type de personnel, qté, type de matériel, qté) pour une année donnée (NumPeriode).
L'utilisateur peut aussi (s'il y'a erreur de saisie ou pour des besoins de simulation d'une variable particulière) retrouver un enregistrement (choix) d'une entreprise et la modifier (méthode Update)
Je ne sais pas si j'ai été clair... De toute les façons merci...