[Base] Enchaînement de deux formulaires
Publié : 11 déc. 2008 11:32
Bonjour,
Je programme depuis peu en ooBasic, et je dois développer une application des gestions des courriers.
Mes données sont dans un database MYSQL.
J'ai besoin de rechercher et d'afficher les courriers selon 8 critères. Aussi, j'ai créé un formulaire de saisie des critères "recherche" lié par macro à un deuxième formulaire qui affiche le résultat.
Tous se passent bien, MAIS UN SEULE FOIS.
Dès que le résultat est affiché "il est BON", je ne peux plus lancer le formulaire "recherche" et je suis obligé de sortir avec un CTRL+Alt+Suppr de ma base.
Un GRAND MERCI à celui ou celle qui pourrais m'expliquer pourquoi il plante ?
Ci-joint la base de données et le code de ma macro
Je programme depuis peu en ooBasic, et je dois développer une application des gestions des courriers.
Mes données sont dans un database MYSQL.
J'ai besoin de rechercher et d'afficher les courriers selon 8 critères. Aussi, j'ai créé un formulaire de saisie des critères "recherche" lié par macro à un deuxième formulaire qui affiche le résultat.
Tous se passent bien, MAIS UN SEULE FOIS.
Dès que le résultat est affiché "il est BON", je ne peux plus lancer le formulaire "recherche" et je suis obligé de sortir avec un CTRL+Alt+Suppr de ma base.
Un GRAND MERCI à celui ou celle qui pourrais m'expliquer pourquoi il plante ?
Ci-joint la base de données et le code de ma macro
Code : Tout sélectionner
Sub onClickOuvrirFormulaireRecherche(oEvent as variant)
OuvrirFormulaire(OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, OEvent.Source.Model.Parent.ActiveConnection, "recherche courriers existants", "idAnnee","idChrono", "idDGST", "idArrive", "idExpe","idCommune","idLieu", "id Affaire" )
end sub
Sub OuvrirFormulaire(lesFormulaires as Variant, laConnection as variant, nomFormulaireCible as String, an as string, Chrono as string, DGST as string, arrive as string, expe as string, commune as string, lieu as string, affaire as string ) as variant
Dim formulaireEnCours as Object
Dim interfaceFormulaireEnCours as Object
'Numéro Chrono
Dim controleId as Object
Dim idCompteur as String
'Année sélectionnez
Dim controleAn as Object
Dim AnEnCours as String
'Num DGST
Dim controleDGST as Object
Dim DGSTEnCours as String
'date arrivée
Dim controlearrive as Object
Dim ArriveEnCours as String
' expéditeur
Dim controleExpe as Object
Dim ExpeEnCours as String
' communes
Dim controleComm as Object
Dim CommEnCours as String
' lieu
Dim controleLieu as Object
Dim LieuEnCours as String
' affaire traitée par
Dim controleAffaire as Object
Dim AffaireEnCours as String
Dim anCible as String
Dim optFichier(1) As New com.sun.star.beans.PropertyValue
Dim formulaireCible As Object
Dim interfaceFormulaireCible as Object
'1 On recupere l'identifiant de l'enregistrement en cours de visualisation
formulaireEnCours = ThisComponent
interfaceFormulaireEnCours = formulaireEnCours.DrawPage.Forms.getByName("MainForm")
controleId = interfaceFormulaireEnCours.GetByName("idChrono")
idCompteur = controleId.CurrentValue
controleAn = interfaceFormulaireEnCours.GetByName("idAnnee")
anEnCours = controleAn.CurrentValue
controleDGST = interfaceFormulaireEnCours.GetByName("idDGST")
DGSTEnCours = controleDGST.CurrentValue
controleArrive = interfaceFormulaireEnCours.GetByName("idArrive")
ArriveEnCours = controleArrive.CurrentValue
controleExpe = interfaceFormulaireEnCours.GetByName("idExpe")
ExpeEnCours = controleExpe.CurrentValue
controleComm = interfaceFormulaireEnCours.GetByName("idComm")
CommEnCours = controleComm.CurrentValue
controleLieu = interfaceFormulaireEnCours.GetByName("idLieu")
LieuEnCours = controleLieu.CurrentValue
controleAffaire = interfaceFormulaireEnCours.GetByName("idAffaire")
AffaireEnCours = controleAffaire.CurrentValue
' ferme le formulaire en cours
fermer_formulaire
'2 On ouvre le formulaire cible
optFichier(0).Name = "ActiveConnection"
optFichier(0).Value = laConnection
formulaireCible = lesFormulaires.loadComponentFromURL(nomFormulaireCible,"_blank",0, optFichier())
interfaceFormulaireCible = formulaireCible.DrawPage.Forms.getByName("MainForm")
'3 On exécute la requête qui sélectionne les résultats en fonction de notre paramètre
interfaceFormulaireCible.Command = "SELECT * FROM ""courriers"" WHERE ""chrono"" = '"& idCompteur & "' and ""ANNEE"" = '"& anEnCours & "' "
anCible = anEnCours
End Sub