Bonjour, jai un souci avec mon appli access :
j'ai un formulaire access avec un combo box qui récupere un champ de la table 'Edb'.
dans ce meme formulaire il y a un sous formulaire qui affichent les données de la table 'Edb temp' qui est vide.
quand je sélectionnes dans le combo box une donnée (je ferme le formulaire a la sélection), je copie cette donnée dans la table 'Edb temp1' puis copie de la table 'Edb temp1' ces données dans la table 'Edb temp'.
seul probleme je ne peux pas écrire dans la table 'Edb temp' pourtant mon formulaire est fermé.
"erreur : runtime error '3211'
the database engine could not lock table 'Edb temp' because it is already in use by another person or process"
voici le code de la fonction :
*****************************************
******************************************
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 'combo récupere la valeur du combobox Function copycombo(combo) 'Déclaration des variables Dim dbs As Database Dim qdf As QueryDef Dim STR_SQL1, STR_SQL2, STR_SQL3 'je ferme le formulaire Edb DoCmd.Close acForm, "Edb" Set dbs = CurrentDb ' on supprime la table Edb temp1 si elle existe On Error Resume Next DoCmd.DeleteObject acTable, "Edb temp1" 'requete sql on copie les enregistrements de edb dans une table temporaire suivant litem du combo box STR_SQL1 = "SELECT [Edb].* INTO " STR_SQL2 = "[Edb temp1] FROM [Edb] " STR_SQL3 = "WHERE [Edb].item ='" & combo & "';" STR_SQL1 = STR_SQL1 & STR_SQL2 & STR_SQL3 dbs.Execute (STR_SQL1) dbs.Close 'je supprime la table Edb temp si elle existe On Error Resume Next DoCmd.DeleteObject acTable, "Edb temp" 'requete sql on copie les enregistrements de edb temp1 dans la Edb temp suivant litem du combo box STR_SQL1 = "SELECT [Edb temp1].* INTO " STR_SQL2 = "[Edb temp] FROM [Edb temp1] " STR_SQL3 = "WHERE [Edb temp1].item ='" & combo & "';" STR_SQL1 = STR_SQL1 & STR_SQL2 & STR_SQL3 dbs.Execute (STR_SQL1) dbs.Close 'je réouvre le formulaire DoCmd.OpenForm ("Edb") End Function
jesperes que mon explication est assez claire.
merci d'avance pour de l'aide
Alex
Partager