Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

texte d'un combobox qui disparait, access 2K fr. Bug????

3 réponses
Avatar
Alain Bourgeois
Chers tous,

J'ai un formulaire avec deux combobox.
Une table composée des champs:
ID, recherche1, recherche2

ID est un n° unique, recherche1 et recherche2 des chaînes de caractères
NON UNIQUES.

Le 1r combobox (LBPath1) porte sur select ID, recherche1 from matable
(colonne liée=1)
Le 2r combobox (LBPath2) porte sur select ID, recherche2 from matable
(colonne liée=1)

Je voudrais rechercher indifféremment sur recherche1 et recherche2, et
que lorsque je sélectionne une valeur sur une des deux listes, l'autre
combo se mette à jour automatiquement.

j'ai donc modifié l'évènement afterupdate des combos pour positionner
l'autre lister avec le bon ID:

Private Sub LBPath1_AfterUpdate()
Dim l As Long

If IsNull(LBPath1.Value) Or LBPath1.Value & "" = "" Then
l = 0&
Else
l = LBPath1.Value
End If
Call SetHeader(l)
End Sub

Private Sub LBPath2_AfterUpdate()
Dim l As Long

If IsNull(LBPath2.Value) Or LBPath2.Value & "" = "" Then
l = 0&
Else
l = LBPath2.Value
End If
Call SetHeader(l)
End Sub


Sub SetHeader(l As Long)
Dim r As Recordset
'MsgBox l
If l = 0& And Not IsNull(LBPath1) Then
LBPath1.text = ""
LBPath1.Value = 0&
LBPath2.text = ""
LBPath2.Value = 0&

'
Else
If l <> 0 And ((IsNull(LBPath1) Or LBPath1 <> l) Or _
(IsNull(LBPath2) Or LBPath2 <> l)) Then
Set r = CurrentDb.OpenRecordset("SELECT [Localisation] & ""
"" & [cote] & "" "" & [Probleme] as e1, " & _
"[Localisation2] & "" "" & [cote2] & "" "" &
[Probleme2] as e2 from HistoPathologies where id=" & l)
r.MoveFirst
If (IsNull(LBPath1) Or LBPath1 <> l) Then
LBPath1.SetFocus
LBPath1.Value = r!e1
LBPath1.Value = l

End If
If (IsNull(LBPath2) Or LBPath2 <> l) Then
LBPath2.SetFocus
LBPath2.Value = r!e2
LBPath2.Value = l

End If
r.Close
Me.Repaint
'LBPath2.Repaint
'Me.Repaint
'LBPath1.Value = LBPath1.ItemData(l)
End If
End If
...
End Sub


Problème access 2K FR
je sélectionne une valeur sur recherche2 dans LBPath2, LBPath1 se
modifie et ca a l'air de fonctionner
je resélectionne une valeur sur recherche2 dans LBPath2, recherche1 ne
se modifie pas et la valeur de recherche2 ne s'affiche plus. Elle se
réaffiche si je clique sur la zone. Et quoi que je sélectionne, LBPath1
ne se modifie plus.

Je présume que LBPath2 n'est pas correctement modifié. J'ai essayé de
remplacer le me.repaint par un me.refresh, ca ne marche pas mieux.


Quelqu'un sait-il me dire pq il fait ça ou (mieux encore :) ) faire en
sorte que ca marche?



Merci de votre aide,
Alain Bourgeois
http://www.self-mail.com
bk332951@skynet.be

3 réponses

Avatar
Patrice
bonjour,

Lorsque tu as sélectionné le 1er combox, sur l'évement après MàJ

me![2ème combo].requery

et inversement



Chers tous,

J'ai un formulaire avec deux combobox.
Une table composée des champs:
ID, recherche1, recherche2

ID est un n° unique, recherche1 et recherche2 des chaînes de caractères
NON UNIQUES.

Le 1r combobox (LBPath1) porte sur select ID, recherche1 from matable
(colonne liée=1)
Le 2r combobox (LBPath2) porte sur select ID, recherche2 from matable
(colonne liée=1)

Je voudrais rechercher indifféremment sur recherche1 et recherche2, et
que lorsque je sélectionne une valeur sur une des deux listes, l'autre
combo se mette à jour automatiquement.

j'ai donc modifié l'évènement afterupdate des combos pour positionner
l'autre lister avec le bon ID:

Private Sub LBPath1_AfterUpdate()
Dim l As Long

If IsNull(LBPath1.Value) Or LBPath1.Value & "" = "" Then
l = 0&
Else
l = LBPath1.Value
End If
Call SetHeader(l)
End Sub

Private Sub LBPath2_AfterUpdate()
Dim l As Long

If IsNull(LBPath2.Value) Or LBPath2.Value & "" = "" Then
l = 0&
Else
l = LBPath2.Value
End If
Call SetHeader(l)
End Sub


Sub SetHeader(l As Long)
Dim r As Recordset
'MsgBox l
If l = 0& And Not IsNull(LBPath1) Then
LBPath1.text = ""
LBPath1.Value = 0&
LBPath2.text = ""
LBPath2.Value = 0&

'
Else
If l <> 0 And ((IsNull(LBPath1) Or LBPath1 <> l) Or _
(IsNull(LBPath2) Or LBPath2 <> l)) Then
Set r = CurrentDb.OpenRecordset("SELECT [Localisation] & ""
"" & [cote] & "" "" & [Probleme] as e1, " & _
"[Localisation2] & "" "" & [cote2] & "" "" &
[Probleme2] as e2 from HistoPathologies where id=" & l)
r.MoveFirst
If (IsNull(LBPath1) Or LBPath1 <> l) Then
LBPath1.SetFocus
LBPath1.Value = r!e1
LBPath1.Value = l

End If
If (IsNull(LBPath2) Or LBPath2 <> l) Then
LBPath2.SetFocus
LBPath2.Value = r!e2
LBPath2.Value = l

End If
r.Close
Me.Repaint
'LBPath2.Repaint
'Me.Repaint
'LBPath1.Value = LBPath1.ItemData(l)
End If
End If
....
End Sub


Problème access 2K FR
je sélectionne une valeur sur recherche2 dans LBPath2, LBPath1 se
modifie et ca a l'air de fonctionner
je resélectionne une valeur sur recherche2 dans LBPath2, recherche1 ne
se modifie pas et la valeur de recherche2 ne s'affiche plus. Elle se
réaffiche si je clique sur la zone. Et quoi que je sélectionne, LBPath1
ne se modifie plus.

Je présume que LBPath2 n'est pas correctement modifié. J'ai essayé de
remplacer le me.repaint par un me.refresh, ca ne marche pas mieux.


Quelqu'un sait-il me dire pq il fait ça ou (mieux encore :) ) faire en
sorte que ca marche?



Merci de votre aide,
Alain Bourgeois
http://www.self-mail.com





Avatar
Alain Bourgeois
Merci, mais le problème n'est résolu qu'à moitié (bien que je ne comprenne pas
l'intérêt de relire une zone de liste dont les données de la table sous-jacentes
ne sont pas modifiées).

Je resélectionne une valeur sur recherche2 dans LBPath2, recherche1 se modifie
MAIS la valeur de recherche2 ne s'affiche plus.
Je dois toujours recliquer sur le combo pour que la valeur s'affiche
correctement.


Patrice wrote:

bonjour,

Lorsque tu as sélectionné le 1er combox, sur l'évement après Mà J

me![2ème combo].requery

et inversement


Chers tous,

J'ai un formulaire avec deux combobox.
Une table composée des champs:
ID, recherche1, recherche2

ID est un n° unique, recherche1 et recherche2 des chaînes de caractères
NON UNIQUES.

Le 1r combobox (LBPath1) porte sur select ID, recherche1 from matable
(colonne liée=1)
Le 2r combobox (LBPath2) porte sur select ID, recherche2 from matable
(colonne liée=1)

Je voudrais rechercher indifféremment sur recherche1 et recherche2, et
que lorsque je sélectionne une valeur sur une des deux listes, l'autre
combo se mette à jour automatiquement.

j'ai donc modifié l'évènement afterupdate des combos pour positionner
l'autre lister avec le bon ID:

Private Sub LBPath1_AfterUpdate()
Dim l As Long

If IsNull(LBPath1.Value) Or LBPath1.Value & "" = "" Then
l = 0&
Else
l = LBPath1.Value
End If
Call SetHeader(l)
End Sub

Private Sub LBPath2_AfterUpdate()
Dim l As Long

If IsNull(LBPath2.Value) Or LBPath2.Value & "" = "" Then
l = 0&
Else
l = LBPath2.Value
End If
Call SetHeader(l)
End Sub


Sub SetHeader(l As Long)
Dim r As Recordset
'MsgBox l
If l = 0& And Not IsNull(LBPath1) Then
LBPath1.text = ""
LBPath1.Value = 0&
LBPath2.text = ""
LBPath2.Value = 0&

'
Else
If l <> 0 And ((IsNull(LBPath1) Or LBPath1 <> l) Or _
(IsNull(LBPath2) Or LBPath2 <> l)) Then
Set r = CurrentDb.OpenRecordset("SELECT [Localisation] & ""
"" & [cote] & "" "" & [Probleme] as e1, " & _
"[Localisation2] & "" "" & [cote2] & "" "" &
[Probleme2] as e2 from HistoPathologies where id=" & l)
r.MoveFirst
If (IsNull(LBPath1) Or LBPath1 <> l) Then
LBPath1.SetFocus
LBPath1.Value = r!e1
LBPath1.Value = l

End If
If (IsNull(LBPath2) Or LBPath2 <> l) Then
LBPath2.SetFocus
LBPath2.Value = r!e2
LBPath2.Value = l

End If
r.Close
Me.Repaint
'LBPath2.Repaint
'Me.Repaint
'LBPath1.Value = LBPath1.ItemData(l)
End If
End If
....
End Sub


Problème access 2K FR
je sélectionne une valeur sur recherche2 dans LBPath2, LBPath1 se
modifie et ca a l'air de fonctionner
je resélectionne une valeur sur recherche2 dans LBPath2, recherche1 ne
se modifie pas et la valeur de recherche2 ne s'affiche plus. Elle se
réaffiche si je clique sur la zone. Et quoi que je sélectionne, LBPath1
ne se modifie plus.

Je présume que LBPath2 n'est pas correctement modifié. J'ai essayé de
remplacer le me.repaint par un me.refresh, ca ne marche pas mieux.


Quelqu'un sait-il me dire pq il fait ça ou (mieux encore :) ) faire en
sorte que ca marche?



Merci de votre aide,
Alain Bourgeois
http://www.self-mail.com







Avatar
Alain Bourgeois
Ou plutôt, le simple fait de sélectionner certaines valeurs de recherche2 fait que
le texte ne s'affiche pas dans recherche2.

Pourquoi celles-là et pas les autre? Mystère...

Alain Bourgeois wrote:

Merci, mais le problème n'est résolu qu'à moitié (bien que je ne comprenne pas
l'intérêt de relire une zone de liste dont les données de la table sous-jacentes
ne sont pas modifiées).

Je resélectionne une valeur sur recherche2 dans LBPath2, recherche1 se modifie
MAIS la valeur de recherche2 ne s'affiche plus.
Je dois toujours recliquer sur le combo pour que la valeur s'affiche
correctement.

Patrice wrote:

bonjour,

Lorsque tu as sélectionné le 1er combox, sur l'évement après Mà J

me![2ème combo].requery

et inversement


Chers tous,

J'ai un formulaire avec deux combobox.
Une table composée des champs:
ID, recherche1, recherche2

ID est un n° unique, recherche1 et recherche2 des chaînes de caractères
NON UNIQUES.

Le 1r combobox (LBPath1) porte sur select ID, recherche1 from matable
(colonne liée=1)
Le 2r combobox (LBPath2) porte sur select ID, recherche2 from matable
(colonne liée=1)

Je voudrais rechercher indifféremment sur recherche1 et recherche2, et
que lorsque je sélectionne une valeur sur une des deux listes, l'autre
combo se mette à jour automatiquement.

j'ai donc modifié l'évènement afterupdate des combos pour positionner
l'autre lister avec le bon ID:

Private Sub LBPath1_AfterUpdate()
Dim l As Long

If IsNull(LBPath1.Value) Or LBPath1.Value & "" = "" Then
l = 0&
Else
l = LBPath1.Value
End If
Call SetHeader(l)
End Sub

Private Sub LBPath2_AfterUpdate()
Dim l As Long

If IsNull(LBPath2.Value) Or LBPath2.Value & "" = "" Then
l = 0&
Else
l = LBPath2.Value
End If
Call SetHeader(l)
End Sub


Sub SetHeader(l As Long)
Dim r As Recordset
'MsgBox l
If l = 0& And Not IsNull(LBPath1) Then
LBPath1.text = ""
LBPath1.Value = 0&
LBPath2.text = ""
LBPath2.Value = 0&

'
Else
If l <> 0 And ((IsNull(LBPath1) Or LBPath1 <> l) Or _
(IsNull(LBPath2) Or LBPath2 <> l)) Then
Set r = CurrentDb.OpenRecordset("SELECT [Localisation] & ""
"" & [cote] & "" "" & [Probleme] as e1, " & _
"[Localisation2] & "" "" & [cote2] & "" "" &
[Probleme2] as e2 from HistoPathologies where id=" & l)
r.MoveFirst
If (IsNull(LBPath1) Or LBPath1 <> l) Then
LBPath1.SetFocus
LBPath1.Value = r!e1
LBPath1.Value = l

End If
If (IsNull(LBPath2) Or LBPath2 <> l) Then
LBPath2.SetFocus
LBPath2.Value = r!e2
LBPath2.Value = l

End If
r.Close
Me.Repaint
'LBPath2.Repaint
'Me.Repaint
'LBPath1.Value = LBPath1.ItemData(l)
End If
End If
....
End Sub


Problème access 2K FR
je sélectionne une valeur sur recherche2 dans LBPath2, LBPath1 se
modifie et ca a l'air de fonctionner
je resélectionne une valeur sur recherche2 dans LBPath2, recherche1 ne
se modifie pas et la valeur de recherche2 ne s'affiche plus. Elle se
réaffiche si je clique sur la zone. Et quoi que je sélectionne, LBPath1
ne se modifie plus.

Je présume que LBPath2 n'est pas correctement modifié. J'ai essayé de
remplacer le me.repaint par un me.refresh, ca ne marche pas mieux.


Quelqu'un sait-il me dire pq il fait ça ou (mieux encore :) ) faire en
sorte que ca marche?



Merci de votre aide,
Alain Bourgeois
http://www.self-mail.com