Liberty68
Messages postés7Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention16 décembre 2006
-
14 déc. 2006 à 18:01
Liberty68
Messages postés7Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention16 décembre 2006
-
16 déc. 2006 à 15:22
Bonjour,
J'ai un problème avec VB Access lié à une requête SQL difficile à expliquer :
- J'ai deux requête réalisé en sql "liste_tests" et "liste_tests_nok"
ex contenu "liste_tests_nok" :
SELECT Rech_error_telecodage_CC4.[TESTS_FR - Libellé V7]
FROM Rech_error_telecodage_CC4
WHERE Rech_error_telecodage_CC4.[GROUPEFR - Libellé V30]= [My_ecu] AND(Rech_error_telecodage_CC4.Prob1=True Or Rech_error_telecodage_CC4.Prob2=True)
GROUP BY Rech_error_telecodage_CC4.[TESTS_FR - Libellé V7];
le contenu de cette requête est ensuite affiché dans une combobox (Choix_Test)
la variable [My_ecu] est fonction d'une autre combobox (Choix_ECU)
- En cours de fonctionnement je suis amené à changer le contenu de la combobox Choix_Test par la requete liste_tests ou liste_tests_nok avec la propriété rowsource.
De même pour la combobox Choix_ECU, seulement pour celle ci, je n'ai pas de problème car les deux requêtes liées ne font appelles à aucune variable extérieure
- le problème est lorsque je clique sur la combobox Choix_Test, celle ci me réclame la valeur du paramètre [my_ecu] !!!
- pourtant je raffraichis ma combobox avec Me!Choix_Test.requery de plus lorsque j'utilise un recordset pour afficher la valeur par défaut de ma combobox cela fonctionne très bien.
ex code :
Dim chat As DAO.QueryDef
Dim chien As DAO.Recordset
Dim che As DAO.QueryDef
Dim chef As DAO.Recordset
Dim rec As Recordset
If Choix_Nok.Value = True Then
'changement de requete source pour contenu liste deroulante des ECU
Me.Choix_ECU.RowSourceType = "Table/Query"
Me.Choix_ECU.RowSource = "liste_ecu_Nok"
Set chat = CurrentDb.QueryDefs("liste_ecu_Nok")
Set chien = chat.OpenRecordset
Choix_ECU.Value = chien(0).Value
'changement de requete source pour contenu liste deroulante des tests nok
Me.Choix_Test.RowSourceType = "Table/Query"
Me.Choix_Test.RowSource = "liste_tests_nok"
Set che = CurrentDb.QueryDefs("liste_tests_Nok")
che.Parameters("My_ecu") = Choix_ECU.Value
Set chef = che.OpenRecordset
Choix_Test.Value = chef(0).Value
Liberty68
Messages postés7Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention16 décembre 2006 16 déc. 2006 à 15:22
C'est bon, j'ai peut être pas fait au plus simple mais j'ai trouvé la parade à mon souci :
peut être que ce petit bou de code peut être utile à quelqu'un
j'ai une requête SQL pour la valeur par défaut de ma combobox utilisée avec un recordset avant le changement de source contenu de ma combobox .
Sql pour valeur par défaut :
SELECT Rech_error_telecodage_CC4.[TESTS_FR - Libellé V7]
FROM Rech_error_telecodage_CC4
WHERE Rech_error_telecodage_CC4.[GROUPEFR - Libellé V30]=[My_ecu]
GROUP BY Rech_error_telecodage_CC4.[TESTS_FR - Libellé V7];
Sql pour toutes les valeurs de la combobox :
SELECT Rech_error_telecodage_CC4.[TESTS_FR - Libellé V7]
FROM Rech_error_telecodage_CC4
WHERE Rech_error_telecodage_CC4.[GROUPEFR - Libellé V30]=Forms!Result_Err.Choix_ECU
GROUP BY Rech_error_telecodage_CC4.[TESTS_FR - Libellé V7];
Vb :
Private Sub ParDefaut()
On Error GoTo Err_ParDefaut
'affecte la premiere valeur de choix_test sur changement choix_ECU
Dim che As DAO.QueryDef
Dim chef As DAO.Recordset
If Choix_Nok.Value = False Then
'choix valeur par defaut combobox choix_tests
Set che = CurrentDb.QueryDefs("liste_tests_default")
che.Parameters("My_ecu") = Choix_ECU.Value
Set chef = che.OpenRecordset
Choix_Test.Value = chef(0).Value
Set che = Nothing
Set chef = Nothing
'changement de requete source pour contenu liste deroulante des tests ok
Me.Choix_Test.RowSourceType = "Table/Query"
Me.Choix_Test.RowSource = "liste_tests"
Else
'choix valeur par defaut combobox choix_tests
Set che = CurrentDb.QueryDefs("liste_tests_nok_default")
che.Parameters("My_ecu") = Choix_ECU.Value
Set chef = che.OpenRecordset
Choix_Test.Value = chef(0).Value
Set che = Nothing
Set chef = Nothing
'changement de requete source pour contenu liste deroulante des tests nok
Me.Choix_Test.RowSourceType = "Table/Query"
Me.Choix_Test.RowSource = "liste_tests_nok"
End If
'raffraichissement liste deroulante choix_test
Me.Refresh
Me.Choix_Test.Requery
'affichage resultats selon valeur par defaut choix_test
'mise a zero variable nb_three utilisee pour compter les numeros d octet a 3 caracteres dans la selection des octets nok
'mise a zero variable point_oct utilisee pour pointer les octets dans la selection des octets nok par defaut premier octet nok
Liberty68
Messages postés7Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention16 décembre 2006 16 déc. 2006 à 11:28
Bonjour,
personne ne peut m'aider, c'est vraiment important car je dois terminé ma dernière version de programme dans une semaine et mon problème est bloquant !!! Et je n'ai plus aucune idée.