-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message de
news: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 026501c3a945$4c57b5c0$a101280a@phx.gbl...
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message de
news: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message de
news: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 026501c3a945$4c57b5c0$a101280a@phx.gbl...
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message de
news: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$a401280a@phx.gbl...
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 026501c3a945$4c57b5c0$a101280a@phx.gbl...
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$a401280a@phx.gbl...
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 026501c3a945$4c57b5c0$a101280a@phx.gbl...
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$a401280a@phx.gbl...
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 026501c3a945$4c57b5c0$a101280a@phx.gbl...
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$a401280a@phx.gbl...
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 026501c3a945$4c57b5c0$a101280a@phx.gbl...
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$a401280a@phx.gbl...
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 026501c3a945$4c57b5c0$a101280a@phx.gbl...
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Salut
Les ??????? sont pour dire que je n'ai pas compris à quoi
te servait cette
ligne.
Si le code ne fonctionne pas, il te faut le compiler pour
vérifier qu'il n'y
a pas d'erreur de syntaxe.
Eventuellement mettre un point d'arrêt au début de ta
procédure, puis
exécuter pas à pas avec la touche F8 afin de pouvoir
vérifier le bon
déroulement.
N.B. Les lignes suivantes ne sont qu'une commande. Elles
doivent être soit
sur la même ligne, soit raccordées par **** " & _***
(tout ce qui est entre
les **)
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where COMPETENCESCOMMANDES.COMPETENCE='" & Expérience
& "';")
Gilbert
"Luis" a écrit dans
le message de
news:0b2701c3aaa4$015cc000$
Bonjour,
J'ai fais du copier-coller de ton code, rien ne
fonctionne.
Devines-tu pourquoi? Car moi là je suis encore plus perdu
qu'avant.
J'ai un avertissement sonore en sortant du champ du
formulaire (pas bon signe) et dans la table rien ne s'est
écrit.
A bientôt.
Luis-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tuveux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne lepremier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne ledeuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
whereCOMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
whereCOMPETENCESCOMMANDES.COMPETENCE='" & Qualification
& "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
whereCOMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message denews: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le
_"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon
code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses
dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
.
-----Message d'origine-----
Salut
Les ??????? sont pour dire que je n'ai pas compris à quoi
te servait cette
ligne.
Si le code ne fonctionne pas, il te faut le compiler pour
vérifier qu'il n'y
a pas d'erreur de syntaxe.
Eventuellement mettre un point d'arrêt au début de ta
procédure, puis
exécuter pas à pas avec la touche F8 afin de pouvoir
vérifier le bon
déroulement.
N.B. Les lignes suivantes ne sont qu'une commande. Elles
doivent être soit
sur la même ligne, soit raccordées par **** " & _***
(tout ce qui est entre
les **)
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where COMPETENCESCOMMANDES.COMPETENCE='" & Expérience
& "';")
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:0b2701c3aaa4$015cc000$a101280a@phx.gbl...
Bonjour,
J'ai fais du copier-coller de ton code, rien ne
fonctionne.
Devines-tu pourquoi? Car moi là je suis encore plus perdu
qu'avant.
J'ai un avertissement sonore en sortant du champ du
formulaire (pas bon signe) et dans la table rien ne s'est
écrit.
A bientôt.
Luis
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification
& "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$a401280a@phx.gbl...
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le
_"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 026501c3a945$4c57b5c0$a101280a@phx.gbl...
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon
code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses
dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
.
-----Message d'origine-----
Salut
Les ??????? sont pour dire que je n'ai pas compris à quoi
te servait cette
ligne.
Si le code ne fonctionne pas, il te faut le compiler pour
vérifier qu'il n'y
a pas d'erreur de syntaxe.
Eventuellement mettre un point d'arrêt au début de ta
procédure, puis
exécuter pas à pas avec la touche F8 afin de pouvoir
vérifier le bon
déroulement.
N.B. Les lignes suivantes ne sont qu'une commande. Elles
doivent être soit
sur la même ligne, soit raccordées par **** " & _***
(tout ce qui est entre
les **)
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where COMPETENCESCOMMANDES.COMPETENCE='" & Expérience
& "';")
Gilbert
"Luis" a écrit dans
le message de
news:0b2701c3aaa4$015cc000$
Bonjour,
J'ai fais du copier-coller de ton code, rien ne
fonctionne.
Devines-tu pourquoi? Car moi là je suis encore plus perdu
qu'avant.
J'ai un avertissement sonore en sortant du champ du
formulaire (pas bon signe) et dans la table rien ne s'est
écrit.
A bientôt.
Luis-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tuveux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne lepremier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne ledeuxième mot.
Me.Qualification =
motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
whereCOMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
whereCOMPETENCESCOMMANDES.COMPETENCE='" & Qualification
& "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
whereCOMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message denews: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le
_"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon
code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses
dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$a401280a@phx.gbl...
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis
-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenir
exactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 026501c3a945$4c57b5c0$a101280a@phx.gbl...
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pas
à inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.
-----Message d'origine-----
Voilà ce que je te propose, mais je n'ai peut-être pas
bien saisi ce que tu
veux.
Dim Critère As String
Dim MaBD As Database
Dim MaTable As Recordset
If IsNull(Me.Qualification) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
posesp1 = InStr(1, Me.Qualification, "_") ' Recherche le
_.
If posesp1 = 0 Then
Expérience = Me.Qualification
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Expérience = Left(Me.Qualification, posesp1 - 1) '
Retourne le
premier mot.
motMilieu = Mid(Me.Qualification, posesp1 + 1) '
Retourne le
deuxième mot.
Me.Qualification motMilieu '??????????????????????????????????
End If
SendKeys "+{ENTER}" '??????????????????????????????????
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Qualification & "';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Set MaTable = MaBD.OpenRecordset("select
COMPETENCESCOMMANDES.Refcommande,
COMPETENCESCOMMANDES.COMPETENCE from COMPETENCESCOMMANDES
where
COMPETENCESCOMMANDES.COMPETENCE='" & Expérience & "_" &
Qualification &
"';")
If MaTable.RecordCount = 0 Then
'ajouter l'enregistrement
End If
Tiens-moi au courant
Cordialement
Gilbert
"Luis" a écrit dans
le message de
news: 0d0001c3a9f0$3e3aec40$
Bonjour,
Au départ j'ai un formulaire avec plusieurs champs dont
un est une liste déroulante (source de cette liste
déroulante une requêtte avec tous les domaines de métiers
et à chaque domaine les métiers, ex.:
Banques_Conseiller à la clientèle
Mécanique_Outilleur
Mécanique_Monteur de machines outils
Mécanique_Mécanicien
Après la sélection et à la sortie de ce champs, il ne
reste que par exemple "Mécanicien" dans ce champ du
formulaire, car c'est la seule information importante
dans le formulaire.
Pour des raisons de sélection dans un autre formulaire je
dois récupérer dans une table indépendante:
Dans le 1er champ "IDCOMMANDE" (appelée RéfCommande)
Dans le 2ème champ "Mécanique" (C'est à dire le mot placé
avant le _)
Dans le 2ème champ "Mécanicien" (c'est à dire le mot
placé après le_)
De là le code que j'ai envoyé dans mon méssage.
CECI MARCHE BIEN.
Ce que je n'arrive pas à faire:
Ecrire dans le 3ème champ de cette table indépendante le
tout c'est à dire le "Mot avant le _ et le mot après le _"
formaté telle que dans la liste déroulante.
Je ne sais pas si j'ai réussi à répondre à ta ?
Merci, à bientôt.
Luis-----Message d'origine-----
Bonjour,
J'ai du mal à comprendre ce que tu as au départ et ce
que tu veux obtenirexactement.
Un complément d'infos serait le bienvenu.
Gilbert
"Luis" a écrit
dans le message denews: 026501c3a945$4c57b5c0$
Bonjour,
J'ai un formulaire de prise de commande dans lequel on
rente la qualification demandée dans un champ.
Cette qualification est sélectionnée dans une zone liste
déroulante, avec une source requette
Ex.: Mécanique_Mécanicien
J'ai une table "COMPETENCESCOMMANDES" avec un
champ "NUMCOMMANDE" un champ "COMPETENCE" et un
champ "DOMAINECOMPETENCE"
J'ai bien trouvé comment remplir "NUMCOMMANDE"
et "COMPETENCE"
Ce qui donne par exemple :2457 (RéfCommande)
:Mécanique
:Mécanicien
Par contre dans le champ DOMAINECOMPETENCE je n'arrive
pasà inscrire Mécanique_Mécanicien.
Je me suis cassé la tête pour touver comment séparer les
deux mots pour qu'ils s'inscrivent dans COMPETANCE et
maintenant je sèche.
Est-ce vous pouver me dire quoi rajouter, voici mon code:
Dim mot
mot = Me![Qualification]
If IsNull(mot) Then
MsgBox "La qualification ne peut être absente"
[Qualification].SetFocus
Exit Sub
End If
'---------
posesp1 = InStr(1, mot, "_") ' Recherche le _.
If posesp1 = 0 Then
Expérience = mot
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du
deuxième mot.
Motdebut = Mid(mot, 1, LongueurMot)
' Retourne le premier mot.
Expérience = Motdebut
'---------
ChaîneTest = Qualification
'posesp1 = InStr(1, ChaîneTest, "_") 'position du _
If Not (posesp1 = "") Or Not IsNull(posesp1) Then
motMilieu = Mid$(ChaîneTest, posesp1 + 1)
' Retourne le deuxième mot.
Else
End If
Me![Qualification] = motMilieu
End If
SendKeys "+{ENTER}"
NUMCOMMANDE = RéfCommande
CAT1 = Expérience
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("COMPETENCESCOMMANDES",
DB_OPEN_DYNASET) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT1 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT1
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
'--
CAT2 = Qualification
Set MaTable = MaBD.OpenRecordset
("COMPETENCESCOMMANDES", DB_OPEN_DYNASET)
MaTable.MoveFirst ' Recherche la première occurence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!RéfCommande
If TESTER = NUMCOMMANDE Then
COMPE = MaTable!COMPETENCE
If COMPE = CAT2 Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!RéfCommande = NUMCOMMANDE
MaTable!COMPETENCE = CAT2
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
fintz:
Exit Sub
If IsNull(mot) Then
ertz:
MsgBox " Une Qualification principale ne peut pas rester
vide"
Qualification.SetFocus
Resume fintz
End If
Merci.
Luis
.
.