Bonjour,
Je travaille en VB6 et j'accède à ma base avec ADO et des requêtes SQL.
J'ai une table "Composant", une table "Categories" et une table "Marque". L'application finale aura encore plus de tables et de relations mais si j'arrive à gèrer ces 3 là, le reste posera pas de problème. Chaque table a un ID clé primaire, ce qui complique surement les choses mais qui est nécessaire.

Tout d'abord, pour la suppression, pas de problème, avec ce code ADO:
TbComposants.MoveFirst
While (Not TbComposants.EOF)
If (TbComposants("NomComposant") = ListComposants.Text) Then
If (TbComposants.RecordCount <> 0) Then
TbComposants.Delete
TbComposants.Update
TbComposants.Requery
End If
End If
TbComposants.MoveNext
Wend
J'aurais pu m'en sortir avec une requête sql, mais soit, çà marche bien comme çà.
Maintenant j'ai un soucis pour l'ajout et la mise à jour. Comme la mise à jour et l'ajout sont proche techniquement, c'est par l'ajout que j'ai commencé avant de me lancer dans la modification. Mon premier test a été:
Private Sub CommandAjout_Click()
Combo2.Text = ""
Combo3.Text = ""
Text1.Text = ""
End Sub
Private Sub CommandValiderAjout_Click()
CmdAdoAddComposant.ActiveConnection = MaConnection
CmdAdoAddComposant.CommandText = "SELECT * FROM Composants"
Composants.Ref_Marque FROM Composants"
TbComposants.CursorLocation = adUseClient
TbComposants.CursorType = adOpenDynamic
TbComposants.LockType = adLockPessimistic
TbComposants.Open CmdAdoAddComposant
TbComposants.AddNew
TbComposants![NomComposant] = IIf(IsNull(Text1.Text), "", (Text1.Text))
TbComposants![Ref_Categorie] = IIf(IsNull(Combo2.Text), "", (Text1.Text))
TbComposants![Ref_Marque] = IIf(IsNull(Combo3.Text), "", (Text1.Text))
TbComposants.Update
TbComposants.Requery
End Sub
Mais celà ne fonctionne pas, j'ai une erreur, vb6 n'associe pas les références aux tables.
Le seul moyen que j'ai trouvé pour ajouté des composants à la table est celui ci:
Private Sub Command4_Click()
CmdAdoAddComposant.ActiveConnection = MaConnection
CmdAdoAddComposant.CommandText = "INSERT INTO Composants ( Id, NomComposant, Ref_Categorie, Ref_Marque ) SELECT Composants.Id, Composants.NomComposant, Composants.Ref_Categorie, Composants.Ref_Marque FROM Composants"
TbComposants.CursorLocation = adUseClient
TbComposants.CursorType = adOpenDynamic
TbComposants.LockType = adLockPessimistic
TbComposants.Open CmdAdoAddComposant
TbComposants.requery
End Sub
Mais celui ci rajoute le contenu entier de la table composant, à la table composant. Mais celà fonctionne, donc je pense que c'est déjà une bonne base.
Il faudrait donc que dans ma requête SQL, je spécifie le contenu de NomComposant, Ref_Categorie et Ref_Marque, ce que j'ai essayé sans succès pour l'instant.
Voilà, merci à ceux qui ont lu jusqu'au bout et encore plus à ceux qui répondront
A bientot
merci
raben