IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Lire une table access en VBA


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Par défaut 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 : 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
    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.

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Par défaut
    Bonjour.

    A priori lorsque je rajoute deux msgbox d'affilée cela fonctionne.
    J'en conclut à un problème de temporisation / MaJ.

    Mais je ne trouve pas de solution !

    Avez vous une idée ?

    Merci pour votre aide

Discussions similaires

  1. lire une table Access avec VBA
    Par ivoratparis dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/06/2013, 16h56
  2. [AC-2003] lire une table Access en VBA ligne par ligne
    Par afifaNancy dans le forum VBA Access
    Réponses: 6
    Dernier message: 25/06/2012, 13h54
  3. [AC-2003] Mettre à jour une table access en VBA
    Par Smoovy35 dans le forum Access
    Réponses: 1
    Dernier message: 11/01/2011, 13h58
  4. [XL-2000] trier et renommer une table access depuis vba excel
    Par lascrabbleuse dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/04/2009, 16h05
  5. Réponses: 0
    Dernier message: 14/04/2008, 22h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo