Bonjour,
Dans une table « REGIONS » il y a des régions saisies comme ça :
Lyon_Lyon
Lyon_Lyon centre
Lyon_Lyon Villeurbanne
Lyon_Lyon 2ème Arrondissement
Lyon_Lyon 5ème Arrondissement
Lyon_Lyon 2ème Arrondissement_Lyon 5ème Arrondissement
Lyon_Lyon 2ème Arrondissement_Lyon 5ème Arrondissement_Lyon 6ème
Arrondissement
Dans les fiches des commerciaux avec une liste déroulante de cette table «
REGIONS », je veux sélectionner la région géographique de travail
Par exemple Paris_Paris1_Paris2
Ou
Lyon_Lyon 2ème Arrondissement_Lyon 5ème Arrondissement_Lyon 6ème
Arrondissement
Dans les fiches clients, il y a une table qui défini la région géographique
dans laquelle il se trouve par exemple :
Paris_Paris2
J’aimerai que lorsque l’on détermine une région géographique pour un
commercial par exemple
Paris_Paris1
Dans la table REGIONS_COMMERCIAUX, on trouve
N_Commercial//N_REGION//Paris1
Ou si le commercial s’occupe de
Lyon_Lyon 2ème Arrondissement_Lyon 5ème Arrondissement_Lyon 6ème
Arrondissement
Dans la table REGIONS_COMMERCIAUX, on trouve
N_Commercial//N_REGION//Lyon 2ème Arrondissement
N_Commercial//N_REGION//Lyon 5ème Arrondissement
N_Commercial//N_REGION//Lyon 6ème Arrondissement
Comment faire pour que lorsque l’on saisie la région par sélection de la
liste déroulante ce qui est après le 1er _ ou le 2ème _ ou le xème _ se
détache et se copie dans la table REGIONS_COMMERCIAUX avec le N_COMMERCIAL de
la fiche, N_REGION étant un numéro auto?
utilise un autre caractère que _ pour séparer tes régions (par exemple #). ensuite, tu peux faire un dim tb as variant
tb=split(textADecouper, "#") 'lBound(tb) et la 1° région 'uBound(tb) est la dernière
A+
Luis
Bonjour David, Je te remercie pour ta réponse, mais problème, la table avec les "_" est déjà bien remplie et deplus très utilisée sur pas mal de formulaire, donc sur d'autres tables.
D'autre part je ne vois pas comment copier avec
dim tb as variant
tb=split(textADecouper, "#") 'lBound(tb) et la 1° région 'uBound(tb) est la dernière
d'une table à une autre.
Je m'explique: Dans un formulaire à travers d'une Zone liste on sélectionne une région ex: Lyon_Lyon 2ème Arrondissement_Lyon 5ème Arrondissement_Lyon 6ème ceci va se copier dans la table du formulaire. Mais j'aimerai qu'il y ai un découpage de chaque zone après chaque "_" et que chaque se copie dans la table "REGIONS_COMMERCIAUX" et là je ne vois pas comment on peut copier après le découpage. Merci pour ton aide. Luis
salut,
utilise un autre caractère que _ pour séparer tes régions (par exemple #). ensuite, tu peux faire un dim tb as variant
tb=split(textADecouper, "#") 'lBound(tb) et la 1° région 'uBound(tb) est la dernière
A+
Bonjour David,
Je te remercie pour ta réponse, mais problème, la table avec les "_" est
déjà bien remplie et deplus très utilisée sur pas mal de formulaire, donc sur
d'autres tables.
D'autre part je ne vois pas comment copier avec
dim tb as variant
tb=split(textADecouper, "#")
'lBound(tb) et la 1° région
'uBound(tb) est la dernière
d'une table à une autre.
Je m'explique:
Dans un formulaire à travers d'une Zone liste on sélectionne une région ex:
Lyon_Lyon 2ème Arrondissement_Lyon 5ème Arrondissement_Lyon 6ème
ceci va se copier dans la table du formulaire.
Mais j'aimerai qu'il y ai un découpage de chaque zone après chaque "_" et
que chaque se copie dans la table "REGIONS_COMMERCIAUX" et là je ne vois pas
comment on peut copier après le découpage.
Merci pour ton aide.
Luis
salut,
utilise un autre caractère que _ pour séparer tes régions (par
exemple #).
ensuite, tu peux faire un
dim tb as variant
tb=split(textADecouper, "#")
'lBound(tb) et la 1° région
'uBound(tb) est la dernière
Bonjour David, Je te remercie pour ta réponse, mais problème, la table avec les "_" est déjà bien remplie et deplus très utilisée sur pas mal de formulaire, donc sur d'autres tables.
D'autre part je ne vois pas comment copier avec
dim tb as variant
tb=split(textADecouper, "#") 'lBound(tb) et la 1° région 'uBound(tb) est la dernière
d'une table à une autre.
Je m'explique: Dans un formulaire à travers d'une Zone liste on sélectionne une région ex: Lyon_Lyon 2ème Arrondissement_Lyon 5ème Arrondissement_Lyon 6ème ceci va se copier dans la table du formulaire. Mais j'aimerai qu'il y ai un découpage de chaque zone après chaque "_" et que chaque se copie dans la table "REGIONS_COMMERCIAUX" et là je ne vois pas comment on peut copier après le découpage. Merci pour ton aide. Luis
salut,
utilise un autre caractère que _ pour séparer tes régions (par exemple #). ensuite, tu peux faire un dim tb as variant
tb=split(textADecouper, "#") 'lBound(tb) et la 1° région 'uBound(tb) est la dernière
A+
Luis
Re-bonjour, Voilà la suite de l'explication. A l'heure actuelle je n'avais que des régions composées de 2 corps ex: Lyon_Lyon centre Lyon_Lyon Villeurbanne Lyon_Lyon 2ème Arrondissement Lyon_Lyon 5ème Arrondissement et j'utilise pour ça:
Private Sub Région_LostFocus() If IsNull(Me.RÉGION) Then msgbox "La région ne peut être absente" Me.RÉGION.SetFocus
Exit Sub End If Me.RÉGION1 = Me.RÉGION
posesp1 = InStr(1, Me.RÉGION, "_") ' Recherche le _. If posesp1 = 0 Then
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du deuxième mot. Motdebut = Mid(Me.RÉGION, 1, LongueurMot) ' Retourne le premier mot. categorie1 = Motdebut '--------- ChaîneTest = RÉGION '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![RÉGION] = motMilieu Me.Refresh End If
NUMCLIENT = N_CLIENT CAT1 = Me.categorie1 Dim Critère As String, MaBD As Database, MaTable As Recordset Set MaBD = DBEngine.Workspaces(0).Databases(0) Set MaTable = MaBD.OpenRecordset("REGIONS_COMMERCIAUX", dbOpenDynaset) ' 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!N_CLIENT If TESTER = NUMCLIENT Then COMPE = MaTable!REGION 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!N_CLIENT = NUMCLIENT MaTable!REGION = CAT1 MaTable.Update MaTable.Close Else MaTable.Close End If '--- CAT2 = Me.RÉGION
Set MaTable = MaBD.OpenRecordset("REGIONS_COMMERCIAUX", dbOpenDynaset) ' 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!N_CLIENT If TESTER = NUMCLIENT Then COMPE = MaTable!REGION 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!N_CLIENT = NUMCLIENT MaTable!REGION = CAT2 MaTable.Update MaTable.Close Else MaTable.Close End If
End Sub
Mais maintenant le nombre de corps est variable.
Merci pour ton aide. Luis
salut,
utilise un autre caractère que _ pour séparer tes régions (par exemple #). ensuite, tu peux faire un dim tb as variant
tb=split(textADecouper, "#") 'lBound(tb) et la 1° région 'uBound(tb) est la dernière
A+
Re-bonjour,
Voilà la suite de l'explication.
A l'heure actuelle je n'avais que des régions composées de 2 corps ex:
Lyon_Lyon centre
Lyon_Lyon Villeurbanne
Lyon_Lyon 2ème Arrondissement
Lyon_Lyon 5ème Arrondissement
et j'utilise pour ça:
Private Sub Région_LostFocus()
If IsNull(Me.RÉGION) Then
msgbox "La région ne peut être absente"
Me.RÉGION.SetFocus
Exit Sub
End If
Me.RÉGION1 = Me.RÉGION
posesp1 = InStr(1, Me.RÉGION, "_") ' Recherche le _.
If posesp1 = 0 Then
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du deuxième mot.
Motdebut = Mid(Me.RÉGION, 1, LongueurMot)
' Retourne le premier mot.
categorie1 = Motdebut
'---------
ChaîneTest = RÉGION
'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![RÉGION] = motMilieu
Me.Refresh
End If
NUMCLIENT = N_CLIENT
CAT1 = Me.categorie1
Dim Critère As String, MaBD As Database, MaTable As Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("REGIONS_COMMERCIAUX", dbOpenDynaset) '
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!N_CLIENT
If TESTER = NUMCLIENT Then
COMPE = MaTable!REGION
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!N_CLIENT = NUMCLIENT
MaTable!REGION = CAT1
MaTable.Update
MaTable.Close
Else
MaTable.Close
End If
'---
CAT2 = Me.RÉGION
Set MaTable = MaBD.OpenRecordset("REGIONS_COMMERCIAUX", dbOpenDynaset) '
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!N_CLIENT
If TESTER = NUMCLIENT Then
COMPE = MaTable!REGION
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!N_CLIENT = NUMCLIENT
MaTable!REGION = CAT2
MaTable.Update
MaTable.Close
Else
MaTable.Close
End If
End Sub
Mais maintenant le nombre de corps est variable.
Merci pour ton aide.
Luis
salut,
utilise un autre caractère que _ pour séparer tes régions (par
exemple #).
ensuite, tu peux faire un
dim tb as variant
tb=split(textADecouper, "#")
'lBound(tb) et la 1° région
'uBound(tb) est la dernière
Re-bonjour, Voilà la suite de l'explication. A l'heure actuelle je n'avais que des régions composées de 2 corps ex: Lyon_Lyon centre Lyon_Lyon Villeurbanne Lyon_Lyon 2ème Arrondissement Lyon_Lyon 5ème Arrondissement et j'utilise pour ça:
Private Sub Région_LostFocus() If IsNull(Me.RÉGION) Then msgbox "La région ne peut être absente" Me.RÉGION.SetFocus
Exit Sub End If Me.RÉGION1 = Me.RÉGION
posesp1 = InStr(1, Me.RÉGION, "_") ' Recherche le _. If posesp1 = 0 Then
Else
LongueurMot = posesp1 - 1 ' Calcule la longueur du deuxième mot. Motdebut = Mid(Me.RÉGION, 1, LongueurMot) ' Retourne le premier mot. categorie1 = Motdebut '--------- ChaîneTest = RÉGION '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![RÉGION] = motMilieu Me.Refresh End If
NUMCLIENT = N_CLIENT CAT1 = Me.categorie1 Dim Critère As String, MaBD As Database, MaTable As Recordset Set MaBD = DBEngine.Workspaces(0).Databases(0) Set MaTable = MaBD.OpenRecordset("REGIONS_COMMERCIAUX", dbOpenDynaset) ' 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!N_CLIENT If TESTER = NUMCLIENT Then COMPE = MaTable!REGION 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!N_CLIENT = NUMCLIENT MaTable!REGION = CAT1 MaTable.Update MaTable.Close Else MaTable.Close End If '--- CAT2 = Me.RÉGION
Set MaTable = MaBD.OpenRecordset("REGIONS_COMMERCIAUX", dbOpenDynaset) ' 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!N_CLIENT If TESTER = NUMCLIENT Then COMPE = MaTable!REGION 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!N_CLIENT = NUMCLIENT MaTable!REGION = CAT2 MaTable.Update MaTable.Close Else MaTable.Close End If
End Sub
Mais maintenant le nombre de corps est variable.
Merci pour ton aide. Luis
salut,
utilise un autre caractère que _ pour séparer tes régions (par exemple #). ensuite, tu peux faire un dim tb as variant
tb=split(textADecouper, "#") 'lBound(tb) et la 1° région 'uBound(tb) est la dernière