1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Public Sub cherch_cont_soc()
'=============DECLARATION DES VARIABLES====================='
Dim num_colonne As Integer
Dim nom_societe As String
Dim SQLLieu As String
Dim SQLwhereLieu As String
'=====================PROCEDURE======================================'
' On affecte à la variable nom_societe la valeur de la case repérée par son numéro
' de colonne le nom de la société) et la ligne sélectionnée à l'aide de la souris
num_colonne = 0
If Form_F_crit_rech_soc.lst_res.Column(num_colonne) <> Null Then
' On teste la valeur de la Form_F_crit_rech_soc.lst_res.Column(num_colonne)
' pour savoir si elle n'est pas NULL (évite un bug)
nom_societe = Form_F_crit_rech_soc.lst_res.Column(num_colonne)
'On affecte au label nom soc du formulaire F_soc_contact la valeur contenu dans nom_societe'
Form_F_soc_contact.lbl_nom_soc.Caption = nom_societe
End If
' On affecte à la variable SQLLieu le début de la requête SQL à effectuer pour connaître
' les différentes adresses de l'entreprise sélectionnée, on renseigne la requête
' sur les champs à rechercher et on effectue les jointures entre les différents tables
SQLLieu = "SELECT [LIEU.nom_rue] as Rue, [LIEU.code_postale] as CP, [LOCALITE.ville] as Ville, [LOCALITE.pays] as Pays " & _
"FROM LOCALITE INNER JOIN (SOCIETE INNER JOIN LIEU ON SOCIETE.id_societe=LIEU.id_societe) ON LOCALITE.code_postale=LIEU.code_postale " & _
"WHERE LIEU!id_lieu <> 0 "
SQLLieu = SQLLieu & "AND [SOCIETE.nom_soc] = '& nom_societe &' "
SQLLieu = SQLLieu & ";"
SQLwhereLieu = Trim(Right(SQLLieu, Len(SQLLieu) - InStr(SQLLieu, "Where ") - Len("Where ") + 1))
Form_F_soc_contact.lst_res_lieu.RowSource = SQLLieu
Form_F_soc_contact.lst_res_lieu.Requery
End Sub
APPEL de la procédure :
Private Sub lst_res_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
DoCmd.OpenForm ("F_soc_contact")
cherch_cont_soc
End Sub |
Partager