Bonjour à tous !
Je suis déjà venu ici pour un problème d'insertion dans une table, mais une fois de plus je suis perdue... Je crois que le VBA ACCESS n'est pas pour moi...
J'ai un formulaire permettant d'insérer une nouvelle entreprise dans la base de données. Dans cette table il y a 11 champs :
ENTREPRISE : Numéro entreprise, nom, #numéro activité, ville, code postal, télephone,mail, fax, commentaire sur l'entreprise et case à imprimer (booléen grâce à un chekbox)
ACTIVITE : Numero activité, libellé activité
J'ai fait un code VBA pour pouvoir insérer une nouvelle entreprise quand je clique sur le bouton "Enregistrer":
Dans mon formulaire pour choisir le numéro de l'activité du métier j'ai une liste déroulante (Modifiable2).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 'Declaration des variables Dim bd As Database Dim rs As Recordset Dim critere As String 'Sélection de la BDD Set bd = CurrentDb Set rs = bd.OpenRecordset("Entreprise", DB_OPEN_DYNASET) critere = "NumActvEnt=" & Me.Modifiable2.Column(0) rs.FindFirst critere 'Ajout de l'enregistrement rs.AddNew rs![NumEnt] = Me.Texte20 rs![NomEnt] = Me.Texte6 rs![NumActvEnt] = Me.Modifiable2.Column(0) rs![RueEnt] = Me.Texte8 rs![VilleEnt] = Me.Texte10 rs![CPEnt] = Me.Texte12 rs![TelEnt] = Me.Texte14 rs![MailEnt] = Me.Texte18 rs![FaxEnt] = Me.Texte16 rs![CommEnt] = Me.Texte4 rs.Update rs.MoveLast On Error GoTo Err_Commande19_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 Exit_Commande19_Click: Exit Sub Err_Commande19_Click: MsgBox Err.Description Resume Exit_Commande19_Click
J'ai un message d'erreur : "Modification non effectuée : risque de doublons dans champs index, clé principale ou relation interdisant les doublons. Modifier les données des champs contenant les doublons, enlevez ou redéfinisser l'index pour permettre les doublons et recommencez"
Le bug est sur "rs.update"
Je n'arrive pas à savoir pourquoi ! Avez vous une idée ?!?
Merci d'avance !
Partager