Je renviens (encore) à la charge avec mon problème, mais cette fois
j'ai mit le code source (enfin la plus grande partie).
Je voulais pas trop le mettre pour pas trop alourdir le post mais comme
je tourne vraiment en rond et que je trouve pas de solution.
EMP et 3stone m'ont proposé des solutions mais j'arrive pas a mettre en
oeuvre celle d'EMP et celle de 3stone ne marche pas.
Mon problème est que j'ai un message qui s'affiche me demandant
d'enregistrer les modifications effectuer sur mon form "frm_Menu" et
mon form TmpTri:
Public Sub GenerationRequeteEtForm()
'Génère la requête de tri et le formulaire d'affichage du résultat
On Error GoTo NoResult
Dim RS As Recordset
Dim Ctl As Control
Dim SQLBase As String
Dim SQLChoix As String
Dim SQLCondition As String
Dim SQLTriPar As String
Dim Champ As String
'Nettoyage du formulaire
While Forms(TmpTri).Controls.Count <> 0
Call DeleteControl(TmpTri, Forms(TmpTri).Controls(0).Name)
Form_frm_Sous_Formulaire_Tri_Attente.Barre_01.Value =
Form_frm_Sous_Formulaire_Tri_Attente.Barre_01.Value + 1
Wend
'Génération des éléments de la requête et du formulaire
->Supprimer<-
'Assemblage des éléments de la requête
If Len(SQLChoix) > 15 Then SQLBase = SQLChoix & " " &
Right(SQLBase, Len(SQLBase) - 19)
If Len(SQLCondition) > 6 Then SQLBase = SQLBase & SQLCondition
If Len(SQLTriPar) > 9 Then SQLBase = SQLBase & SQLTriPar
SQLBase = SQLBase & ";"
'Assignation de la requête génèrée comme enregistrement du
formulaire génèré et fermeture du formulaire
Forms(TmpTri).RecordSource = SQLBase
DoCmd.Close acForm, TmpTri, acSaveYes <- C'est sur cette ligne
qu'Access me pose la question.
'Assignation du formulaire généré comme source du sous formulaire
d'affichage du résultat
Set RS = CurrentDb.OpenRecordset(SQLBase)
If RS.RecordCount <> 0 Then
Form_frm_Menu.Sous_Formulaire_Tri_Resultat.SourceObject =
TmpTri
Form_frm_Menu.Sous_Formulaire_Tri_Resultat.LinkMasterFields =
""
Form_frm_Menu.Sous_Formulaire_Tri_Resultat.LinkChildFields = ""
Else
NoResult: Form_frm_Sous_Formulaire_Tri_Attente.Texte_Etat.Caption =
"Aucun résultat..."
End If
Set RS = Nothing
Set Ctl = Nothing
End Sub
Si vous voyez comment faire.
Merci d'avance.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
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
3stone
Salut,
"Ryo"
[...] et celle de 3stone ne marche pas.
Je ne pense pas t'avoir conseillé ce plat de... "nouille" ;-))
<snip>
'Assignation de la requête génèrée comme enregistrement du formulaire génèré et fermeture du formulaire Forms(TmpTri).RecordSource = SQLBase DoCmd.Close acForm, TmpTri, acSaveYes <- C'est sur cette ligne qu'Access me pose la question.
Si tu modifie le sous formulaire ET le formulaire principal, ferme en sauvant les *deux* et en commencant par le sous-formulaire.
<snip>
If RS.RecordCount <> 0 Then Form_frm_Menu.Sous_Formulaire_Tri_Resultat.SourceObject > TmpTri Form_frm_Menu.Sous_Formulaire_Tri_Resultat.LinkMasterFields > "" Form_frm_Menu.Sous_Formulaire_Tri_Resultat.LinkChildFields = "" Else NoResult: Form_frm_Sous_Formulaire_Tri_Attente.Texte_Etat.Caption > "Aucun résultat..." End If
Pour être (re)lisible, écris plutôt:
If RS.RecordCount <> 0 Then
With Form_frm_Menu.Sous_Formulaire_Tri_Resultat .SourceObject = TmpTri .LinkMasterFields = "" .LinkChildFields = "" End With
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Salut,
"Ryo"
[...] et celle de 3stone ne marche pas.
Je ne pense pas t'avoir conseillé ce plat de... "nouille" ;-))
<snip>
'Assignation de la requête génèrée comme enregistrement du
formulaire génèré et fermeture du formulaire
Forms(TmpTri).RecordSource = SQLBase
DoCmd.Close acForm, TmpTri, acSaveYes <- C'est sur cette ligne
qu'Access me pose la question.
Si tu modifie le sous formulaire ET le formulaire principal,
ferme en sauvant les *deux* et en commencant par
le sous-formulaire.
<snip>
If RS.RecordCount <> 0 Then
Form_frm_Menu.Sous_Formulaire_Tri_Resultat.SourceObject > TmpTri
Form_frm_Menu.Sous_Formulaire_Tri_Resultat.LinkMasterFields > ""
Form_frm_Menu.Sous_Formulaire_Tri_Resultat.LinkChildFields = ""
Else
NoResult: Form_frm_Sous_Formulaire_Tri_Attente.Texte_Etat.Caption > "Aucun résultat..."
End If
Pour être (re)lisible, écris plutôt:
If RS.RecordCount <> 0 Then
With Form_frm_Menu.Sous_Formulaire_Tri_Resultat
.SourceObject = TmpTri
.LinkMasterFields = ""
.LinkChildFields = ""
End With
Je ne pense pas t'avoir conseillé ce plat de... "nouille" ;-))
<snip>
'Assignation de la requête génèrée comme enregistrement du formulaire génèré et fermeture du formulaire Forms(TmpTri).RecordSource = SQLBase DoCmd.Close acForm, TmpTri, acSaveYes <- C'est sur cette ligne qu'Access me pose la question.
Si tu modifie le sous formulaire ET le formulaire principal, ferme en sauvant les *deux* et en commencant par le sous-formulaire.
<snip>
If RS.RecordCount <> 0 Then Form_frm_Menu.Sous_Formulaire_Tri_Resultat.SourceObject > TmpTri Form_frm_Menu.Sous_Formulaire_Tri_Resultat.LinkMasterFields > "" Form_frm_Menu.Sous_Formulaire_Tri_Resultat.LinkChildFields = "" Else NoResult: Form_frm_Sous_Formulaire_Tri_Attente.Texte_Etat.Caption > "Aucun résultat..." End If
Pour être (re)lisible, écris plutôt:
If RS.RecordCount <> 0 Then
With Form_frm_Menu.Sous_Formulaire_Tri_Resultat .SourceObject = TmpTri .LinkMasterFields = "" .LinkChildFields = "" End With
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Ryo
Donc je devrais faire: DoCmd.Close acForm, TmpTri, acSaveYes <- formulaire source du sous formulaire DoCmd.Close acForm, "frm_Menu", acSaveYes <- formulaire principal contenant le sous formulaire Sauf que ca resoud pas mon probleme, il me demande toujours de sauvegarder apres le DoCmd.Close acForm, TmpTri, acSaveYes, et puis surtout faut pas que je ferme mon formulaire principal vu qu'il va afficher le résultat de ma requête dans son sous formulaire. Merci quand même.
Le 22/06/04, 3stone a supposé :
Si tu modifie le sous formulaire ET le formulaire principal, ferme en sauvant les deux et en commencant par le sous-formulaire.
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
Donc je devrais faire:
DoCmd.Close acForm, TmpTri, acSaveYes <- formulaire source du sous
formulaire
DoCmd.Close acForm, "frm_Menu", acSaveYes <- formulaire principal
contenant le sous formulaire
Sauf que ca resoud pas mon probleme, il me demande toujours de
sauvegarder apres le DoCmd.Close acForm, TmpTri, acSaveYes, et puis
surtout faut pas que je ferme mon formulaire principal vu qu'il va
afficher le résultat de ma requête dans son sous formulaire.
Merci quand même.
Le 22/06/04, 3stone a supposé :
Si tu modifie le sous formulaire ET le formulaire principal,
ferme en sauvant les deux et en commencant par
le sous-formulaire.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Donc je devrais faire: DoCmd.Close acForm, TmpTri, acSaveYes <- formulaire source du sous formulaire DoCmd.Close acForm, "frm_Menu", acSaveYes <- formulaire principal contenant le sous formulaire Sauf que ca resoud pas mon probleme, il me demande toujours de sauvegarder apres le DoCmd.Close acForm, TmpTri, acSaveYes, et puis surtout faut pas que je ferme mon formulaire principal vu qu'il va afficher le résultat de ma requête dans son sous formulaire. Merci quand même.
Le 22/06/04, 3stone a supposé :
Si tu modifie le sous formulaire ET le formulaire principal, ferme en sauvant les deux et en commencant par le sous-formulaire.
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com