OVH Cloud OVH Cloud

Sélections

3 réponses
Avatar
Luis
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

Etc..

Paris_Paris
Paris_Paris1
Paris_Paris2
Paris_Paris1_Paris2
Paris_Paris1_Paris2_Paris9

Etc.

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?

Merci pour votre aide.
Luis

3 réponses

Avatar
david
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+
Avatar
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+




Avatar
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+