Bonjour,
J'utilise un formulaire avec 2 onglets, chacun pointant sur une table,
les 2 tables sont jointes par une requête (champ S/N).
Table1 : inventaire
Table2 : contrats
Si l'enregistrement n'existe pas dans contrat je propose de l'ajouter.
Seul problème les données ajoutées ne sont pas visibles dans les champs
du formulaire. Il faut fermer le formulaire et le réouvrir pour constater
que
les données ont bien été ajoutées.
Existe-t-il un moyen de faire un refresh dans mon code pour que les données
s'affichent dès que j'ai fait un update ?
Merci pour votre aide
Ci-dessous le bout de code :
Private Sub CONTRATS_S_N_LostFocus()
' Vérifie que le type du contrat est identique à celui de l'inventaire
' Si le S/N est vide il permet de le renseigner
Dim DB As Database
Dim RS As Recordset
Dim stType As Variant
Dim Msg As String
Dim CR As String: CR = Chr$(13)
Dim stSn As Variant
Dim stConstructeur As Variant
Dim stMainteneur As Variant
' Ask if the user wants to run routine if S/N is empty.
If IsNull([CONTRATS.S/N]) Then
Msg = "Ce matériel n'existe pas dans le contrat." & CR & CR
Msg = Msg & "Voulez-vous l'ajouter ?"
' If the user chooses No, get out from routine.
If MsgBox(Msg, 32 + 4) = 7 Then GoTo Exit_CONTRATS_S_N_LostFocus
'Ajout du S/N
' Open the Customer table.
Set DB = DBEngine.Workspaces(0).Databases(0)
Set RS = DB.OpenRecordset("CONTRATS", DB_OPEN_DYNASET)
RS.AddNew
RS![S/N] = stSn
RS![Type] = stType
RS![CONSTRUCTEUR] = stConstructeur
RS![MAINTENEUR] = stMainteneur
RS.Update
GoTo Exit_CONTRATS_S_N_LostFocus
End If
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ze Titi
Bonjour Fidji
Il me semble que tu as donné la réponse...
Me.Refresh
placé à la fin de ton code devrait répondre à ton problème.
Dis-nous !
Dans ton message <45b3c137$0$16517$ du dimanche
Bonjour, J'utilise un formulaire avec 2 onglets, chacun pointant sur une table, les 2 tables sont jointes par une requête (champ S/N). Table1 : inventaire Table2 : contrats
Si l'enregistrement n'existe pas dans contrat je propose de l'ajouter. Seul problème les données ajoutées ne sont pas visibles dans les champs du formulaire. Il faut fermer le formulaire et le réouvrir pour constater que les données ont bien été ajoutées. Existe-t-il un moyen de faire un refresh dans mon code pour que les données s'affichent dès que j'ai fait un update ? Merci pour votre aide
Ci-dessous le bout de code :
Private Sub CONTRATS_S_N_LostFocus() ' Vérifie que le type du contrat est identique à celui de l'inventaire ' Si le S/N est vide il permet de le renseigner Dim DB As Database Dim RS As Recordset Dim stType As Variant Dim Msg As String Dim CR As String: CR = Chr$(13) Dim stSn As Variant Dim stConstructeur As Variant Dim stMainteneur As Variant
' Ask if the user wants to run routine if S/N is empty. If IsNull([CONTRATS.S/N]) Then Msg = "Ce matériel n'existe pas dans le contrat." & CR & CR Msg = Msg & "Voulez-vous l'ajouter ?" ' If the user chooses No, get out from routine. If MsgBox(Msg, 32 + 4) = 7 Then GoTo Exit_CONTRATS_S_N_LostFocus
'Ajout du S/N ' Open the Customer table. Set DB = DBEngine.Workspaces(0).Databases(0) Set RS = DB.OpenRecordset("CONTRATS", DB_OPEN_DYNASET) RS.AddNew RS![S/N] = stSn RS![Type] = stType RS![CONSTRUCTEUR] = stConstructeur RS![MAINTENEUR] = stMainteneur RS.Update GoTo Exit_CONTRATS_S_N_LostFocus End If
-- Voilou ! Bon courage ! Cordialement, ze Titi
Bonjour Fidji
Il me semble que tu as donné la réponse...
Me.Refresh
placé à la fin de ton code devrait répondre à ton problème.
Dis-nous !
Dans ton message <45b3c137$0$16517$426a74cc@news.free.fr> du dimanche
Bonjour,
J'utilise un formulaire avec 2 onglets, chacun pointant sur une table,
les 2 tables sont jointes par une requête (champ S/N).
Table1 : inventaire
Table2 : contrats
Si l'enregistrement n'existe pas dans contrat je propose de l'ajouter.
Seul problème les données ajoutées ne sont pas visibles dans les champs
du formulaire. Il faut fermer le formulaire et le réouvrir pour constater que
les données ont bien été ajoutées.
Existe-t-il un moyen de faire un refresh dans mon code pour que les données
s'affichent dès que j'ai fait un update ?
Merci pour votre aide
Ci-dessous le bout de code :
Private Sub CONTRATS_S_N_LostFocus()
' Vérifie que le type du contrat est identique à celui de l'inventaire
' Si le S/N est vide il permet de le renseigner
Dim DB As Database
Dim RS As Recordset
Dim stType As Variant
Dim Msg As String
Dim CR As String: CR = Chr$(13)
Dim stSn As Variant
Dim stConstructeur As Variant
Dim stMainteneur As Variant
' Ask if the user wants to run routine if S/N is empty.
If IsNull([CONTRATS.S/N]) Then
Msg = "Ce matériel n'existe pas dans le contrat." & CR & CR
Msg = Msg & "Voulez-vous l'ajouter ?"
' If the user chooses No, get out from routine.
If MsgBox(Msg, 32 + 4) = 7 Then GoTo Exit_CONTRATS_S_N_LostFocus
'Ajout du S/N
' Open the Customer table.
Set DB = DBEngine.Workspaces(0).Databases(0)
Set RS = DB.OpenRecordset("CONTRATS", DB_OPEN_DYNASET)
RS.AddNew
RS![S/N] = stSn
RS![Type] = stType
RS![CONSTRUCTEUR] = stConstructeur
RS![MAINTENEUR] = stMainteneur
RS.Update
GoTo Exit_CONTRATS_S_N_LostFocus
End If
placé à la fin de ton code devrait répondre à ton problème.
Dis-nous !
Dans ton message <45b3c137$0$16517$ du dimanche
Bonjour, J'utilise un formulaire avec 2 onglets, chacun pointant sur une table, les 2 tables sont jointes par une requête (champ S/N). Table1 : inventaire Table2 : contrats
Si l'enregistrement n'existe pas dans contrat je propose de l'ajouter. Seul problème les données ajoutées ne sont pas visibles dans les champs du formulaire. Il faut fermer le formulaire et le réouvrir pour constater que les données ont bien été ajoutées. Existe-t-il un moyen de faire un refresh dans mon code pour que les données s'affichent dès que j'ai fait un update ? Merci pour votre aide
Ci-dessous le bout de code :
Private Sub CONTRATS_S_N_LostFocus() ' Vérifie que le type du contrat est identique à celui de l'inventaire ' Si le S/N est vide il permet de le renseigner Dim DB As Database Dim RS As Recordset Dim stType As Variant Dim Msg As String Dim CR As String: CR = Chr$(13) Dim stSn As Variant Dim stConstructeur As Variant Dim stMainteneur As Variant
' Ask if the user wants to run routine if S/N is empty. If IsNull([CONTRATS.S/N]) Then Msg = "Ce matériel n'existe pas dans le contrat." & CR & CR Msg = Msg & "Voulez-vous l'ajouter ?" ' If the user chooses No, get out from routine. If MsgBox(Msg, 32 + 4) = 7 Then GoTo Exit_CONTRATS_S_N_LostFocus
'Ajout du S/N ' Open the Customer table. Set DB = DBEngine.Workspaces(0).Databases(0) Set RS = DB.OpenRecordset("CONTRATS", DB_OPEN_DYNASET) RS.AddNew RS![S/N] = stSn RS![Type] = stType RS![CONSTRUCTEUR] = stConstructeur RS![MAINTENEUR] = stMainteneur RS.Update GoTo Exit_CONTRATS_S_N_LostFocus End If
-- Voilou ! Bon courage ! Cordialement, ze Titi
Fidji
Bonjour, Merci pour ces réponses. A prori la jointure est bonne car si les 2 enregistrements existent avant j'ai bien les données des 2 tables dans les 2 onglets du formulaire. Cas 1 : inventaire et contrat on bien un enregistrement relié par le S/N. Je peux modifier les données de contrats sans problème.
Cas 2 : j'ai l'enregistrement dans inventaire mais pas dans contrats. Dans le formulaire contrats je détecte le champ S/N null (sur lost focus) et j'ajoute l'enregistrement en prenant les info dans inventaire. Pb l'ajout se fait dans la base, mais les données ne sont pas visibles dans le formulaire. Si je sors et rappelle le formulaire j'ai bien mes données
J'ai essayé Me.Refresh, mais cela ne marche pas mieux.
Si vous avez une autre idée, merci d'avance
Bonjour,
Merci pour ces réponses.
A prori la jointure est bonne car si les 2 enregistrements existent avant
j'ai
bien les données des 2 tables dans les 2 onglets du formulaire.
Cas 1 :
inventaire et contrat on bien un enregistrement relié par le S/N.
Je peux modifier les données de contrats sans problème.
Cas 2 :
j'ai l'enregistrement dans inventaire mais pas dans contrats.
Dans le formulaire contrats je détecte le champ S/N null (sur lost focus)
et j'ajoute l'enregistrement en prenant les info dans inventaire.
Pb l'ajout se fait dans la base, mais les données ne sont pas visibles dans
le formulaire.
Si je sors et rappelle le formulaire j'ai bien mes données
J'ai essayé Me.Refresh, mais cela ne marche pas mieux.
Bonjour, Merci pour ces réponses. A prori la jointure est bonne car si les 2 enregistrements existent avant j'ai bien les données des 2 tables dans les 2 onglets du formulaire. Cas 1 : inventaire et contrat on bien un enregistrement relié par le S/N. Je peux modifier les données de contrats sans problème.
Cas 2 : j'ai l'enregistrement dans inventaire mais pas dans contrats. Dans le formulaire contrats je détecte le champ S/N null (sur lost focus) et j'ajoute l'enregistrement en prenant les info dans inventaire. Pb l'ajout se fait dans la base, mais les données ne sont pas visibles dans le formulaire. Si je sors et rappelle le formulaire j'ai bien mes données
J'ai essayé Me.Refresh, mais cela ne marche pas mieux.
Si vous avez une autre idée, merci d'avance
Fidji
Bonjour, J'ai rajouté Me.Requery et ça rafraichit bien les données, sauf que cela repositionne le champ sur le premier. Donc je fait un gotorecord, mais bien que la valeur de stRecord soit bonne, il reste sur le champ 1. Avez-vous une idée ? Merci d'avance
Bonjour,
J'ai rajouté Me.Requery et ça rafraichit bien les données, sauf que cela
repositionne le champ sur le premier.
Donc je fait un gotorecord, mais bien que la valeur de stRecord soit bonne,
il reste sur le champ 1.
Avez-vous une idée ?
Merci d'avance
Bonjour, J'ai rajouté Me.Requery et ça rafraichit bien les données, sauf que cela repositionne le champ sur le premier. Donc je fait un gotorecord, mais bien que la valeur de stRecord soit bonne, il reste sur le champ 1. Avez-vous une idée ? Merci d'avance