Insertion données vba -- ado

Contenu du snippet

Cette procédure créée dans un module sous access permet d'insérer des données dans une table liées d'Oracle. (Veillez à avoir les droits nécessaire à l'écriture).
Ce code permet de transférer les compétences du métiers. Le métier à plusieurs postes et je dois insérer à chaque poste du métiers les compétences.
Mon recordset sélectionne les postes du métiers.
Je fais une boucle sur chaque poste et j'insére dans la table correspondante les données.

Source / Exemple :


Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
Dim strMetier As String '--> Recherche d'un métier
Dim strPoste As String '--> Le poste
'Création de la connection à la base locale courante
Set cnn = CurrentProject.Connection
strMetier = InputBox("Saisir le métier ?", "NetJoao")
Debug.Print "Métier : " & strMetier
'Récupération des postes en fonction du métiers
rst.Open "SELECT POSTE FROM PANDORE_POSTE WHERE METIER=UCASE('" & strMetier & "')", cnn, adOpenKeyset
'Création de command
With cmd
    .ActiveConnection = cnn
    'Boucle sur les postes
    Do Until rst.EOF
        .CommandText = "INSERT INTO PANDORE_POSTCOMP([POSTE],[COMPET],[ORIGINE],[ACTION],[REMNIV],[NOTE]) " & _
                        "SELECT '" & rst.Fields(0) & "',[COMPET],'M','C',[REMNIV], [NOTE] " & _
                        "FROM PANDORE_METCOMP " & _
                        "WHERE METIER=UCASE('" & strMetier & "')"
        .CommandType = adCmdText
        .Execute
        Debug.Print "Poste : " & strPoste
        rst.MoveNext
    Loop
End With
rst.Close
Set cmd = Nothing
Set cnn = Nothing
End Sub

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.