Création de plusieurs etat d'un meme formulai
nicoamel
-
nicoamel -
nicoamel -
Bonjour,
j'ai un formulaire qui ce nome <<demande de devis>> avec un sous formulaire pour <<choix du fournisseur>>qui me permet de choisir le nombre de fournisseur désiré pour le même devis.
Je souhaiterai ouvrir autant d'état que de fournisseur choisi pour la même demande de devis et je n'arrive pas à trouver la bonne formule.
Pouvez-vous m'aider.
merci d'avance
Private Sub Cocher3_Click()
Dim t As Recordset
Set t = CurrentDb.OpenRecordset("Detail_Envoi_par_Demande_de_Devis")
rror Resume Next
'============================================ Version 1.0 du 29/04/2011==========================================================
'Ce code sert à tester la valeur de la case à cocher et à induire une action de mise à jour dans la table des demande de devis
'================================================================================================================================
'MsgBox (Me![Oui/Non])
'Si la case à cocher est vierge, alors, cela signifie que l'opérateur veut ajouter le soustraitant à la liste des tiers devant
'répondre à la demande de devis
If Me![Oui/Non] = -1 Then
t.AddNew
t![n°Devis] = Me.Devis
t![Société] = Me.Société
t![Oui/Non] = Me![Oui/Non]
t![concat] = Me.Devis & Me.Société
t.Update
Else 'Dans le cas contraire, l'opérateur veut désélectionner le fournisseur de sa liste d'envoi. Il faut alors mettre à jour la
'table des demande de devis
t.MoveFirst
Do Until t.EOF
If t![concat] = Nz(Me![Devis] * 1) & Me![Société] Then 'on test pour voir si le devis est connu dans la base de stockage des données
t.Edit
t.Delete
t.Update
Exit Do
Else
t.MoveNext
End If
Loop
End If
End Sub
Private Sub Fermer_Click()
Dim t As Recordset
Set t = CurrentDb.OpenRecordset("t_fournisseurs")
On Error Resume Next
'on décoche toutes les cases à cocher de la table des fournisseurs pour présenter une liste
'vierge à l'utilisateur
t.MoveFirst
Do Until t.EOF
t.Edit
t![Oui/Non] = 0
t.Update
t.MoveNext
Loop
'on ferme le formulaire en cours
DoCmd.Close
End Sub
Private Sub Form_Current()
Dim t As Recordset
Dim tbis As Recordset
On Error Resume Next
Set t = CurrentDb.OpenRecordset("t_fournisseurs")
Set tbis = CurrentDb.OpenRecordset("Detail_Envoi_par_Demande_de_Devis")
'============================================ Version 1.0 du 29/04/2011==========================================================
'On coche les cases de la liste en fonction des données stockées dans la table de sélection
'des Devis afin de présenter à l'utilisateur la liste des fournisseurs qu'il a déjà choisi
'===============================================================================================================================
tbis.MoveFirst
Do Until tbis.EOF
Select Case Nz(tbis![n°Devis] * 1)
Case Is = Nz(Me![Devis] * 1) 'on test pour voir si le devis est connu dans la base de stockage des données
t.MoveFirst
Do Until t.EOF
If tbis![Société] = t![Société] Then
t.Edit
t![Oui/Non] = 1
t.Update
Exit Do
Else
t.MoveNext
End If
Loop
tbis.MoveNext
Case Else
tbis.MoveNext
End Select
Loop
End Sub
j'ai un formulaire qui ce nome <<demande de devis>> avec un sous formulaire pour <<choix du fournisseur>>qui me permet de choisir le nombre de fournisseur désiré pour le même devis.
Je souhaiterai ouvrir autant d'état que de fournisseur choisi pour la même demande de devis et je n'arrive pas à trouver la bonne formule.
Pouvez-vous m'aider.
merci d'avance
Private Sub Cocher3_Click()
Dim t As Recordset
Set t = CurrentDb.OpenRecordset("Detail_Envoi_par_Demande_de_Devis")
rror Resume Next
'============================================ Version 1.0 du 29/04/2011==========================================================
'Ce code sert à tester la valeur de la case à cocher et à induire une action de mise à jour dans la table des demande de devis
'================================================================================================================================
'MsgBox (Me![Oui/Non])
'Si la case à cocher est vierge, alors, cela signifie que l'opérateur veut ajouter le soustraitant à la liste des tiers devant
'répondre à la demande de devis
If Me![Oui/Non] = -1 Then
t.AddNew
t![n°Devis] = Me.Devis
t![Société] = Me.Société
t![Oui/Non] = Me![Oui/Non]
t![concat] = Me.Devis & Me.Société
t.Update
Else 'Dans le cas contraire, l'opérateur veut désélectionner le fournisseur de sa liste d'envoi. Il faut alors mettre à jour la
'table des demande de devis
t.MoveFirst
Do Until t.EOF
If t![concat] = Nz(Me![Devis] * 1) & Me![Société] Then 'on test pour voir si le devis est connu dans la base de stockage des données
t.Edit
t.Delete
t.Update
Exit Do
Else
t.MoveNext
End If
Loop
End If
End Sub
Private Sub Fermer_Click()
Dim t As Recordset
Set t = CurrentDb.OpenRecordset("t_fournisseurs")
On Error Resume Next
'on décoche toutes les cases à cocher de la table des fournisseurs pour présenter une liste
'vierge à l'utilisateur
t.MoveFirst
Do Until t.EOF
t.Edit
t![Oui/Non] = 0
t.Update
t.MoveNext
Loop
'on ferme le formulaire en cours
DoCmd.Close
End Sub
Private Sub Form_Current()
Dim t As Recordset
Dim tbis As Recordset
On Error Resume Next
Set t = CurrentDb.OpenRecordset("t_fournisseurs")
Set tbis = CurrentDb.OpenRecordset("Detail_Envoi_par_Demande_de_Devis")
'============================================ Version 1.0 du 29/04/2011==========================================================
'On coche les cases de la liste en fonction des données stockées dans la table de sélection
'des Devis afin de présenter à l'utilisateur la liste des fournisseurs qu'il a déjà choisi
'===============================================================================================================================
tbis.MoveFirst
Do Until tbis.EOF
Select Case Nz(tbis![n°Devis] * 1)
Case Is = Nz(Me![Devis] * 1) 'on test pour voir si le devis est connu dans la base de stockage des données
t.MoveFirst
Do Until t.EOF
If tbis![Société] = t![Société] Then
t.Edit
t![Oui/Non] = 1
t.Update
Exit Do
Else
t.MoveNext
End If
Loop
tbis.MoveNext
Case Else
tbis.MoveNext
End Select
Loop
End Sub
A voir également:
- Création de plusieurs etat d'un meme formulai
- Creation de site web - Guide
- Creation de compte google - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Creation compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
j'ecris en visual basic