Bonjour,
J'ai un petit soucis, (voir mon code plus bas), le but de cette fonction est d'ouvrir un nouveau formulaire en fonction d'un élément qui est sélectionner dans un autre formulaire. Le problème se situe lorsque la ligne 'Form_BonAchat.SetFocus' se fait, il ouvre un second formulaire 'BonAchat', et je ne sais pas pourquoi? Je dois faire un setFocus, car ma procédure RefreshPoData permet de remplir mes combobox/textebox/ListBox de mon formulaire BonAhcat, et si je ne met pas le focus sur mon formulaire aucun des élément ne se met à jour.... J'ai pourtant vérifier et tout semble fonctionné normalement c'est juste que mes contrôle reste vide... Je contourne donc se problème avec un focus sur mon formulaire, mais j'en crée un aurte.
Merci d'avance de votre aide
J'ajoute ma procédure RefreshPOData au cas ou ça pourrait aider :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Sub cmdModifier_Click() Dim intTypePO As Integer Me.txtActiveIdPO = Me.Form![SousFormRecherchePO]![IdAchat].Value lngIdActivePO = Me.txtActiveIdPO If IsNull(Me.txtActiveIdPO) Then MsgBox "Vous devez sélectionner un item de la liste" Exit Sub End If If Not CurrentProject.AllForms("BonAchat").IsLoaded Then DoCmd.OpenForm Form_BonAchat.Name, acNormal End If intTypePO = Me.Form![SousFormRecherchePO]![POType].Value Form_BonAchat.SetFocus Form_BonAchat.CadretypePO = intTypePO Call Form_BonAchat.TypePO Call Form_BonAchat.RefreshPOdata(Me.txtActiveIdPO) 'DoCmd.Close acForm, Form_ListePO.Name End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub RefreshPOdata(ByVal idPO As Long) Dim rs As DAO.Recordset Dim qry As DAO.QueryDef Dim strSQL As String 'Me.Détail.Visible = True Set qry = CurrentDb.QueryDefs("REQ_InfoPO") strSQL = qry.SQL strSQL = Left(strSQL, InStr(strSQL, "WHERE") - 1) strSQL = strSQL & "WHERE Achattl.IdAchat = " & idPO qry.SQL = strSQL Set rs = qry.OpenRecordset 'If rs.EOF Then Exit Sub With Form_BonAchat Form_BonAchat.txtIdPO = idPO Form_BonAchat.CadretypePO = Nz(rs.Fields("POType"), 1) Form_BonAchat.cmbCie = rs.Fields("IdCie") Form_BonAchat.cmbSite = rs.Fields("IdSite") Form_BonAchat.txtFournisseur = rs.Fields("NomCourt") Call RefreshContact Form_BonAchat.cmbContact = rs.Fields("contact") On Error Resume Next Form_BonAchat.txtNoPO = rs.Fields("NoPO") Form_BonAchat.txtPODate = Format(rs.Fields("DateAchat"), "yyyy-mm-dd") Form_BonAchat.DTdateLiv = Nz(rs.Fields("DateLivraison"), Date) Form_BonAchat.txtRef = rs.Fields("Reference") Form_BonAchat.txtIsActif = rs.Fields("IsActif") On Error GoTo 0 If IsNull(Me.txtRef) Then Me.txtRef = GetPoReference() End If Call GetPODetail(idPO) End With End Sub
Partager