Lire une table access en VBA
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)
Code:
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 |
Cela fonctionne, lors du premier lancement.
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.