![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Débutant(e)
Date d'inscription: décembre 2007
Messages: 993
|
Bonjour à tous, j'ai un léger soucis qui va je pense très vite ce régler!!!
J'ai un formulaire avec une zone de liste, et j'ai mis un code sur évenement doucle clic de cette zone de liste, qui me permet d'ouvrir un second formulaire, qui correspond en fait au détail de l'intervention sur laquelle j'ai double cliqué dans ma zone de liste. Je m'explique! Dans mon premier formulaire, j'ai une zone de liste qui m'indique pour chaque intervention 1) la date d'intervention 2) la machine sur laquelle je suis intervenue 3) le desriptif de l'intervention Ensuite sur double clique de cette zone de liste j'ai placé le code suivant: Code :
Private Sub lstResults_DblClick(Cancel As Integer) Dim Descriptif As String, sql As String Dim DateIntervention As Date Dim compteur As Integer, id_Intervention As Integer, ID_Machine As Integer, Id_Ligne As Integer, ID_Type As Integer, ID_Categorie As Integer, ID_Diagnostic As Integer, ID_DuréeArret As Integer, ID_DuréeIntervention As Integer, ID_tech1 As Integer, ID_tech2 As Integer, ID_Référence As Integer, quantité As Integer Dim oRst As DAO.Recordset Dim odb As DAO.Database Set odb = CurrentDb If IsNull(Me.lstResults.Column(0)) Then MsgBox ("Il n'y a actuellement aucun travaux dans la liste") Exit Sub Else id_Intervention = Me.lstResults.Column(0) End If sql = "select * from tbl_Intervention where ID_intervention = " & id_Intervention & ";" Set oRst = odb.OpenRecordset(sql, dbOpenDynaset) DateIntervention = oRst.Fields("DateIntervention").Value ID_Machine = Nz(oRst.Fields("ID_Machine").Value, 0) ID_Type = Nz(oRst.Fields("ID_Type").Value, 0) ID_Catégorie = Nz(oRst.Fields("ID_Catégorie").Value, 0) Descriptif = Nz(oRst.Fields("Descriptif").Value, "") ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, 0) ID_DuréeArret = Nz(oRst.Fields("DuréeArrétMachine").Value, 0) ID_DuréeIntervention = Nz(oRst.Fields("DureéIntervention").Value, 0) DoCmd.OpenForm ("DetailIntervention") Form_DetailIntervention.txtDateIntervention.Value = DateIntervention Form_DetailIntervention.listeMachine.Value = ID_Machine Form_DetailIntervention.listeTypeIntervention = ID_Type Form_DetailIntervention.listeNatureintervention.Value = ID_Catégorie Form_DetailIntervention.txtDescriptifIntervention.Value = Descriptif Form_DetailIntervention.listeDiagnostic.Value = ID_Diagnostic Form_DetailIntervention.listeDuréeArretProduction.Value = ID_DuréeArret Form_DetailIntervention.listeDuréeIntervention.Value = ID_DuréeIntervention Form_DetailIntervention.listeLigneDeProduction.Value = Form_DetailIntervention.listeMachine.Column(1) sql = "SELECT tbl_PiécesChangées.ID_référence, tbl_Désignation.Désignation, tbl_Référence.Référence, tbl_PiécesChangées.Quantité as Qté FROM (tbl_Désignation INNER JOIN tbl_Référence ON tbl_Désignation.[ID_Désignation] = tbl_Référence.[ID_Désignation]) INNER JOIN tbl_PiécesChangées ON tbl_Référence.[ID_Référence] = tbl_PiécesChangées.[ID_référence] WHERE (((tbl_PiécesChangées.ID_intervention)=" & id_Intervention & "));" Form_DetailIntervention.listePiécesChangées.RowSource = sql sql = "SELECT Count(*) FROM (SELECT tbl_Intervenir.ID_Intervention FROM tbl_Intervenir WHERE (((tbl_Intervenir.ID_Intervention)=" & id_Intervention & ")));" Set oRst = odb.OpenRecordset(sql, dbOpenDynaset) compteur = Nz(oRst.Fields(0).Value, 0) sql = "SELECT tbl_Intervenir.ID_Personnel FROM tbl_Intervenir WHERE tbl_Intervenir.ID_Intervention=" & id_Intervention & ";" Set oRst = odb.OpenRecordset(sql, dbOpenDynaset) If compteur = 1 Then oRst.MoveFirst ID_tech1 = Nz(oRst.Fields(0).Value, 0) End If If compteur = 2 Then oRst.MoveFirst ID_tech1 = Nz(oRst.Fields(0).Value, 0) oRst.MoveLast ID_tech2 = Nz(oRst.Fields(0).Value, 0) End If Form_DetailIntervention.listeIntervenant1.Value = ID_tech1 Form_DetailIntervention.listeIntervenant2.Value = ID_tech2 End Sub Si quelqu'un peut m'aider même si je sais que ce n'est pas clair, mais je n'arrive pas à m'expliquer, donc posez moi des questions pour un supplément. |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: mai 2002
Localisation: Bordeaux / Lacanau-Océan, entre deux vagues
Âge: 27
Messages: 1 397
|
Fais un Debug.Print de :
Code :
sql = "select * from tbl_Intervention where ID_intervention = " & id_Intervention & ";" En espérant t'aider.
__________________
Modérateur Access & Web Débogage des requêtes SQL écrites par VBA -- Vos cours Access -- Votre FAQ Access Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. *~* >>>>> A Lire Avant De Poster - Imperatif Java User Group enfin sur Bordeaux. Inauguration le 9/10/08. |
|
|
|
|
![]() |
![]() |
||
Problème de formulaire de détail avec la fonction Nz
|
||
| Outils de la discussion | |
|
|