Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro transfer donnée dans MS Access

Soleil11

XLDnaute Occasionnel
Bonjour,

Je transfère des données chaque mois dans une table MS Access et j'utilise le script ci-dessous. J'aimerais de l'aide pour modifier le script ci-dessous afin de pouvoir filtrer les données par Année = 2015 et Mois = 8 avant le transfer des données dans MS Access dans la table "T_Data".

Est-il possible d'ajouter ce filtre avant l'envoi des données dans MS Access. J'ai ajouté un fichier test pour faciliter mes explications.

Code:
Sub Transferdonnées()

' exports data from the active worksheet to a table in an Access database
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long, deletevalue As String
Dim strSQL As String
Dim cmd As ADODB.Command

Sheets("Données").Select

    ' connect to the Access database
    Set cn = New ADODB.Connection
    
    
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Data\Données.accdb;Persist Security Info=False"
 
   
    ' open a recordset
    Set rs = New ADODB.Recordset
    rs.Open "T_Data", cn, adOpenKeyset, adLockOptimistic, adCmdTable
    ' all records in a table
    r = 2 ' the start row in the worksheet
    Do While Len(Range("A" & r).Formula) > 0
    ' repeat until first empty cell in column A
        With rs
            .AddNew ' create a new record
            ' add values to each field in the record
            
            .Fields("Année") = Range("A" & r).Value
            .Fields("Mois") = Range("B" & r).Value
            .Fields("Nom") = Range("C" & r).Value
            .Fields("Prénom") = Range("D" & r).Value
          
           ' add more fields if necessary...
            .Update ' stores the new record
        End With
        r = r + 1 ' next row
    Loop
    
    rs.Close
    
    Set rs = Nothing
   
    cn.Close
    Set cn = Nothing

End Sub

Merci de votre aide.

Soleil11
 

Pièces jointes

  • fichier transfer donnée test.xlsm
    17.5 KB · Affichages: 14

Jam

XLDnaute Accro
Re : Macro transfer donnée dans MS Access

Salut Soleil11

La solution est assez simple, il te suffit de tester la valeur des champs Année et Mois AVANT de faire l'ajout

Un simple
Code:
if Range("A" & r).Value <> 2015 and Range("B" & r).Value <>8 Then
    with rs
    ...
    end with
end if


Bon courage
 

Discussions similaires

Réponses
10
Affichages
382
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…