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

preselectionner une ligne dans combobox

4 réponses
Avatar
Flow
Bonjour,

Je bute sur le probleme suivant:
dans un form, j'ai une combo box qui contient deux colonnes, la premiere
colonne contient des numeros et la seconde la mention "occupé" ou rien si le
numéro est libre.

la liste déroulée peut se présenter comme ça :

1500 ! Occupé
1501 ! Occupé
1502 ! Occupé
1503 !
1504 ! Occupé
1505 !
1506 !
1507 !
1508 !
1509 !

je cherche a faire en sorte que le premier numéro libre soit selectionné ,en
l'occurence le 1503, pour etre plus precis que la ligne de la combo box soit
mise en surbrillance...

Merci pour votre aide...
Déja je ne trouve pas la méthode VB qui serait succeptible de faire ça...


--
Flow

4 réponses

Avatar
Buddy
Salut

Tu utilises une fonction qui te renvoie un long

Private Function pvfIdLibre() As Long

Dim strSQL As String, rstTemp As DAO.Recordset

strSQL="SELECT TOP 1 Id FROM TaTable WHERE TonChamp IsNull ORDER BY Id"

Set rstTemp = CurrentDb.OpenRecordset(strSQL, dbOpenSnaphot, dbReadObly)
With rstTemp
If Not .Eof Then
.MoveFirst
pvfIdLibre = !Id
Else
pvfIdLibre = 0
End If
End With
Set rstTemp = Nothing
End Function

Tu mets dans ton form OnLoad par exemple
zdlTaListe = pvfIdLibre()

Ou su Valeur par défaut : = pvfIdLibre()

Ouala
Bye
Buddy


"Flow" a écrit dans le message de
news:401e77c8$0$6974$
Bonjour,

Je bute sur le probleme suivant:
dans un form, j'ai une combo box qui contient deux colonnes, la premiere
colonne contient des numeros et la seconde la mention "occupé" ou rien si le
numéro est libre.

la liste déroulée peut se présenter comme ça :

1500 ! Occupé
1501 ! Occupé
1502 ! Occupé
1503 !
1504 ! Occupé
1505 !
1506 !
1507 !
1508 !
1509 !

je cherche a faire en sorte que le premier numéro libre soit selectionné ,en
l'occurence le 1503, pour etre plus precis que la ligne de la combo box soit
mise en surbrillance...

Merci pour votre aide...
Déja je ne trouve pas la méthode VB qui serait succeptible de faire ça...


--
Flow



Avatar
Flow
Bon ... je suis au desepoir de reussir a adapter ta fonction et je bute sans
cesse sur des erreurs sans fin ... désolé ...

j'ai trouve dans les archives de ce groupe sur google un code que j'ai
adapté et qui est capable de me renvoyer le n° de la premiere ligne ou le
critere "" est trouvé.

ça donne ceci :

Function TestLibre()
Dim cmb As ComboBox
Dim ix1 As Integer

Set cmb = [Forms]![FrmStockWeek]![Numero]

For ix1 = 0 To cmb.ListCount - 1
If cmb.Column(1, ix1) = "" Then
Exit For
End If
Next ix1
MsgBox ix1 'me renvoie la ligne a selectionner
End Function

je teste ça dans un module en appuyant sur F5 et ça marche.
... c'est bien beau d'afficher la msgbox mais que dois je faire de plus pour
que sur reception focus de la combo la ligne trouvee se retrouve
selectionnée ? (j'ai deja mis le dropdown sur receptfocus).

Merci pour votre aide.
Avatar
Buddy
Salut
Je t'ai envoyé une base exemple
J'ai aussi corrigé le code que je t'ai donnée, effectivement, bonjour les fautes de frappes
Faut dire que je ne l'avais pas testée
Maintenant elle marche bien

Tu colles la fonction dans un module indépendant

Public Function pufIdLibre() As Long
Dim strSQL As String, rstTemp As DAO.Recordset
strSQL = "SELECT TOP 1 Id FROM tblTest WHERE Texte Is Null ORDER BY Id"
Set rstTemp = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot, dbReadOnly)
With rstTemp
If Not .EOF Then
.MoveFirst
pufIdLibre = !Id
Else
pufIdLibre = 0
End If
End With
Set rstTemp = Nothing
End Function

Tu mets dans ton controle Valeur par défaut : =pufIdLibre()

Ouala
Bye
Buddy

"Flow" a écrit dans le message de
news:401f923d$0$6978$
Bon ... je suis au desepoir de reussir a adapter ta fonction et je bute sans
cesse sur des erreurs sans fin ... désolé ...

j'ai trouve dans les archives de ce groupe sur google un code que j'ai
adapté et qui est capable de me renvoyer le n° de la premiere ligne ou le
critere "" est trouvé.

ça donne ceci :

Function TestLibre()
Dim cmb As ComboBox
Dim ix1 As Integer

Set cmb = [Forms]![FrmStockWeek]![Numero]

For ix1 = 0 To cmb.ListCount - 1
If cmb.Column(1, ix1) = "" Then
Exit For
End If
Next ix1
MsgBox ix1 'me renvoie la ligne a selectionner
End Function

je teste ça dans un module en appuyant sur F5 et ça marche.
... c'est bien beau d'afficher la msgbox mais que dois je faire de plus pour
que sur reception focus de la combo la ligne trouvee se retrouve
selectionnée ? (j'ai deja mis le dropdown sur receptfocus).

Merci pour votre aide.



Avatar
Flow
OK super, maintenant ça marche !!!
Merci beaucoup !

Buddy wrote:
Salut
Je t'ai envoyé une base exemple
J'ai aussi corrigé le code que je t'ai donnée, effectivement, bonjour
les fautes de frappes Faut dire que je ne l'avais pas testée
Maintenant elle marche bien