Bonjour
Je rencontre un problème "d'actualisation" d'enregistrement dans une table access.
Dans access (2003) j'ai un bouton qui déclenche l'ouverture d'un fichier excel (avec macro automatique à l'ouverture)
Cette macro Excel, écrit dans une table de la base access 2003 puis se ferme (autre instance)
Access 2003 lit alors cet enregistrement (Requete "R_import_temp") et fait un traitement derrière (import de fichier excel ayant pour nom le contenu de cet enregistrement)
Cela fonctionne, lors du premier lancement.
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 nom_fichier = "c:\macro.xlsm" Set retval = CreateObject("Excel.Application") Set Excel = retval.Workbooks.Open(nom_fichier) Set retval = Nothing Set Db = CurrentDb.QueryDefs("R_import_temp") Set lotcru = Db.OpenRecordset() msgbox lotcru(0) & "TEST" If lotcru(0) <> "annulée" Then VarX = DLookup("[n° lot cru]", "cru", "[n° lot cru] = '" & lotcru(0) & "'") If VarX <> "" Then Réponse = MsgBox("le lot " & lotcru(0) & " existe déjà dans la table." & vbCrLf & "Voulez vous le réimporter", vbCritical + vbYesNo + vbDefaultButton2, "ATTENTION") If Réponse = 7 Then Exit Sub Else DoCmd.RunSQL ("DELETE CRU.*, CRU.[n° lot cru] FROM CRU WHERE (((CRU.[n° lot cru])='" & lotcru(0) & "'));") End If End If DoCmd.TransferSpreadsheet acImport, 8, "CRU", "C:\Import\" & lotcru(0) & ".XLS", True MsgBox "Lot " & lotcru(0) & " correctement importé" End If
Pour le 2nd lancement : lors de la ligne msgbox lotcru(0) & "TEST" la variable est fausse (= celle du premier lancement) mais plus tard (cette même variable) dans le traitement celle-ci devient juste.
Je ne comprends pas pourquoi.
Mon but étant de lire une table temporaire access contenant un seul enregistrement alimenté par une macro excel externe.
Merci pour votre aide.
Partager