Bonjour,
Je rencontre un petit problème :
J'ai fait un fichier excel avec des macros qui enregistrent des lignes sur Access puis des tables pivot sur le fichier excel avec des données de ce fameux fichier Access.
Mon problème est le suivant :
Quand je mets le fichier et la base sur mon ordinateur, tout marche bien, quand je le mets sur l'espace commun de mon travail ça ne marche plus. Ce n'est pas un souci de base Access non trouvée car j'ai fait un code avec une database de chemin libre.
Cependant, la macro pour enregistrer les données dans la base access ne marche pas : j'ai le message suivant : Current Recordset does not support updatind.This may be a limitation of the provider, or of the selected locktype.
Pourriez-vous m'aidez s'il-vous-plait? Quand je fais passer le code ligne à ligne il s'arrete à : .Fields("start_date") = Range("E39") comme s'il ne trouvait pas cette attribut alors qu'il existe très bien et l'index "1" également. Tout marche très bien sur mon ordi mais pas sur l'espace commun.
Je vous serais très reconnaissante de m'aider.
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 Fill = Sheets("pilot").Range("F15").Value If Fill = "" Then 'test dates DATABASE = Sheets("Pilot").Range("C42").FormulaR1C1 If Sheets("Pilot").Range("C42").FormulaR1C1 = "" Then DATABASE = Application.GetOpenFilename("Access files (*.accdb),*.accdb", , "Select the P4P DATABASE ") Sheets("Pilot").Range("C43").FormulaR1C1 = "Database linked" Sheets("Pilot").Range("C42").FormulaR1C1 = DATABASE End If ' ** set up pivot tables Dim conn As WorkbookConnection If DATABASE <> False Then Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _ "Data Source=" & DATABASE & ";" ' open a recordset Set rs = New ADODB.Recordset rs.Open "SELECT * FROM dates " & _ " WHERE (ID = 1)", _ cn, _ adOpenStatic, _ adLockOptimistic With rs .Fields("start_date") = Range("E39") .Fields("end_date") = Range("G39") .Update End With rs.Close ActiveWorkbook.RefreshAll MsgBox ("P4P is now up to date!") End If Else MsgBox ("Please be sure that starting date < ending date") End If ' fin test dates
Bien à vous,
Rosy
Partager