[Résolu][Base]Ajout enregistrement ds 2tables liées par form

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: 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 !
jamdmnt
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 31 janv. 2017 10:41

[Résolu][Base]Ajout enregistrement ds 2tables liées par form

Message par jamdmnt »

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
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
Avatar de l’utilisateur
Dude
IdOOle de la suite
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

Message par Dude »

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 :
  • 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 ...
jamdmnt a écrit :mais je maitrise assez mal SQL
Comme d'habitude, tant qu'une requête ne fonctionne pas, il est inutile de vouloir en faire une macro.
Donc avant de poster ici, on consulte déjà la section Base.
jamdmnt
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 31 janv. 2017 10:41

Re: [Base]Ajout enregistrement ds 2 tables liées par formula

Message par jamdmnt »

Bonsoir,
Pour être plus précis, l'image du formulaire en question:
FormulrDomSousDom.jpg
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
Bonne soirée.
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
jamdmnt
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 31 janv. 2017 10:41

Re: [Base]Ajout enregistrement ds 2 tables liées par formula

Message par jamdmnt »

Bonjour,

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
A+
Jacques
OpenOffice 4.1.4
Libre Office 5.3.7.2 (X64)
Windows7 sp1