Bonjour,
Dans la base, presque finie, le formulaire fDomaines_SousDomaines permet d'ajouter des données dans les 2 tables tDomaines et tSous_domaines. la table tSous_domaines est liée par l'index de la table tDomaines.
Je tente par INSER INTO, mais je maitrise assez mal SQL. Le Sub CreatSousDomaines du Module1 bien sûr ne fonctionne pas.
Avec la liaison, ce doit être un peu plus compliqué, je "patauge".
A moins qu'il y est une autre solution que créer un enregistrement "bidon" (ici Aucun) pour ne pas se retrouver avec des index vides dans la table tAchatsEntretien lorsque l'on ne veut pas sélectionner de sous domaine. J'ai fait pas mal de tests SQL pour le formulaire fReqMulticritères et je croix que sans valeur index vide dans la table c'est plus simple à gérer.
Toute suggestion est la bien venue.
Merci.
Jacques
[Résolu][Base]Ajout enregistrement ds 2tables liées par form
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- NOOuvel adepte
- Messages : 17
- Inscription : 31 janv. 2017 10:41
[Résolu][Base]Ajout enregistrement ds 2tables liées par form
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jamdmnt le 11 nov. 2017 11:48, modifié 1 fois.
OpenOffice 4.1.4
Libre Office 5.3.7.2 (X64)
Windows7 sp1
Libre Office 5.3.7.2 (X64)
Windows7 sp1
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base]Ajout enregistrement ds 2 tables liées par formula
Salut,
Dans un modèle relationnel correct, une donnée ne doit être stockée qu'une fois.
Donc, je ne comprends pas ton histoire d'enregistrement sur 2 tables.
Commence déjà par mieux détailler ton problème.
A savoir, une description des relations et une procédure sur son application.
Exemple :
Donc avant de poster ici, on consulte déjà la section Base.
Dans un modèle relationnel correct, une donnée ne doit être stockée qu'une fois.
Donc, je ne comprends pas ton histoire d'enregistrement sur 2 tables.
Commence déjà par mieux détailler ton problème.
A savoir, une description des relations et une procédure sur son application.
Exemple :
- qu'est ce qu'un domaine et un sous-domaine et quelle relation caractérise les deux
- le formulaire doit permettre l'insertion de ... dans la table ...
Comme d'habitude, tant qu'une requête ne fonctionne pas, il est inutile de vouloir en faire une macro.jamdmnt a écrit :mais je maitrise assez mal SQL
Donc avant de poster ici, on consulte déjà la section Base.
-
- NOOuvel adepte
- Messages : 17
- Inscription : 31 janv. 2017 10:41
Re: [Base]Ajout enregistrement ds 2 tables liées par formula
Bonsoir,
Pour être plus précis, l'image du formulaire en question: Effectivement, je pourrais ne pas lier la table sous domaines à la table domaines, mais alors certains choix de sous domaines risquent d'être un peu bizarre (imprimantes avec plomberie!)
Mais j'accepterais volontiers autre solution.
Et le bout de code
Bonne soirée.
Jacques
Pour être plus précis, l'image du formulaire en question: Effectivement, je pourrais ne pas lier la table sous domaines à la table domaines, mais alors certains choix de sous domaines risquent d'être un peu bizarre (imprimantes avec plomberie!)
Mais j'accepterais volontiers autre solution.
Et le bout de code
Code : Tout sélectionner
Sub CreatSousDomaines (oEv)
Dim oController As Object, oForm as Object, maConnexion As Object, dbDoc As Object, lesFormulR As object, Fdomaine As Object, sousFormulR As Object, FsousDomaine As Object
Dim maRequete As Object, ligneDomaine As Object, ligneSousDomaine As Object
Dim inserSQL As String, selcSql As string, car as string
DIM RefID As Long
Dim codeCar
oController = thisDatabaseDocument.currentcontroller
If Not oController.isConnected() Then oController.connect
maConnexion = oController.ActiveConnection
maRequete = maConnexion.createStatement()
' inserSQL = "SELECT ""ID_sousdomaine"" FROM ""tSous_domaines"" WHERE ""ID_sousdomaine"" = (SELECT MAX (""ID_sousdomaine"") FROM ""tSous_domaines"") "
' inserSQL = "INSERT INTO ""tSous_domaines"" (""ID_sousdomaine"",""Sous_domaine"") VALUES ("& RefID &", 'Aucun')"
' inserSQL = InserSQL + ";"
inserSQL = "INSERT INTO ""tSous_domaines"" (""Sous_domaine"") VALUES ('Aucun')"
RefID = maRequete.executeUpdate(inserSQL)
maRequete.executeUpdate(inserSQL)
End sub
Jacques
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.4
Libre Office 5.3.7.2 (X64)
Windows7 sp1
Libre Office 5.3.7.2 (X64)
Windows7 sp1
-
- NOOuvel adepte
- Messages : 17
- Inscription : 31 janv. 2017 10:41
Re: [Base]Ajout enregistrement ds 2 tables liées par formula
Bonjour,
Après quelques tâtonnements, j'ai trouvé
A+
Jacques
Après quelques tâtonnements, j'ai trouvé
Code : Tout sélectionner
Sub CreatSousDomaines (oEv)
Dim oController As Object, maConnexion As Object
Dim maRequete As Object
Dim inserSQL As String, RefID As String
oController = thisDatabaseDocument.currentcontroller
If Not oController.isConnected() Then oController.connect
maConnexion = oController.ActiveConnection
maRequete = maConnexion.createStatement()
RefID = ThisComponent.DrawPage.Forms.getByName("MainForm").getColumns.getByName("ID_domaine").getString()
inserSQL = "INSERT INTO ""tSous_domaines"" (""ID_domaine"",""Sous_domaine"") VALUES ("& RefID &", '_Aucun')"
maRequete.executeUpdate(inserSQL)
End sub
Jacques
OpenOffice 4.1.4
Libre Office 5.3.7.2 (X64)
Windows7 sp1
Libre Office 5.3.7.2 (X64)
Windows7 sp1