Bon voila j´ai un petit probleme avec du code en VBA et j´aurais besoin d´aide pour en faite savoir quelle partie du code correspond en faite a un enregistrement de numéros d´intervenants pour chaques taches, en gros c´est un enregistrement de numéros propres a chaques intervenants d´un projet asssocié a une taches précises. Donc de excel vers acces.
(J´espere avoir été le plus clair possible
)
Le code :
1 ere partie :
Sub ajouterPersonnel()
´données à enregistrer
Dim nomEmploye As String
Dim prenomEmploye As String
Dim initialesEmploye As String
´variables nécessaires pour le traitement de l´enregistrement
Dim lgEmployeEnCours As Integer ´indice de parcours du tableau des employés
´ le traitement
´ le traitement concernant l´enregistrement proprement dit
lgEmployeEnCours = lgDepartPersonnel ´initialisation au premier employé à traiter
nomEmploye = Worksheets(REFERENCES).Cells(lgEmployeEnCours, colNomPersonnel)
While (nomEmploye <> "")
´récupération des informations à enregister dans la base de données
prenomEmploye = Worksheets(REFERENCES).Cells(lgEmployeEnCours, colPrenomPersonnel)
initialesEmploye = Worksheets(REFERENCES).Cells(lgEmployeEnCours, colInitialesPersonnel)
´ enregistrement de l´employé dans la base de données : appel du sous-programme enregistrerUnEmploye()
Call enregistrerUnEmploye(nomEmploye, prenomEmploye, initialesEmploye)
´Passage à l´employé suivante
lgEmployeEnCours = lgEmployeEnCours + 1
nomEmploye = Worksheets(REFERENCES).Cells(lgEmployeEnCours, colNomPersonnel)
Wend
MsgBox ("Les employés ont bien été enregistrés dans la base de données.")
End Sub
´=================================================
==============================================
Sub enregistrerUnEmploye(nom As String, prenom As String, initiales As String)
Dim requeteSQL As String
´construction de la requete d´insertion
requeteSQL = requeteAjoutEmploye(nom, prenom, initiales)
´ouverture de la base de données de Gestion de projets
Call ouvertureBase
´exécution de la requete d´insertion
cnxBase.Execute (requeteSQL)
´ouverture de la base de données de Gestion de projets
Call fermetureBase
End Sub
´=================================================
==============================================
Function requeteAjoutEmploye(nomE As String, prenomE As String, initialesE As String) As String
Dim strSQL As String
Dim chargeAvecPoint As String
strSQL = "INSERT INTO INTERVENANT (nomEmploye, prenomEmploye, initialesEmploye )" & _
" VALUES(""" & nomE & """, """ & prenomE & """, """ & initialesE & """)"
´renvoie la requete SQL ainsi construite
requeteAjoutEmploye = strSQL
End Function
2 eme partie :
´ ===================== variables et constantes globales du programme ==========================================
Public cnxBase As ADODB.Connection
Public Const piloteBase As String = "Microsoft.Jet.Oledb.4.0"
´
==================================================
==========================
Public Const cheminBase As String = "E:\Info-Gestion\PROJET\l´application PERSONNEL à consulter\EXEMPLE.MDB" ´à modifier
´
==================================================
==========================
Public Const REFERENCES As String = "Références"
Public Const lgDepartPersonnel = 2 ´ ligne du tableau où est mentionné le premier employé
Public Const colInitialesPersonnel = 2 ´ colonne du tableau où sont mentionnées les initiales de l´employé
Public Const colNomPersonnel = 3 ´ colonne du tableau où est mentionné le nom de l´employé
Public Const colPrenomPersonnel = 4 ´ colonne du tableau où est mentionné le prénom de l´employé
Public Const colNumPersonnel = 6 ´ colonne du tableau où sera mentionné le numéro de l´employé (écupéré dans la BD
Sub ouvertureBase()
´ Nous testons si le fichier est accessible
If Len(Dir(cheminBase)) > 0 Then
´ Déclaration de la variable de connexion
Set cnxBase = New ADODB.Connection
´Définition du pilote de connexion
cnxBase.Provider = piloteBase
´Définition de la chaîne de connexion
cnxBase.ConnectionString = cheminBase
´Ouverture de la base de données
cnxBase.Open
Else
MsgBox "La base n´a pas pu être trouvée" & vbCrLf & _
chemin & vbCrLf & _
"n´est pas un chemin valide.", vbCritical + vbOKOnly
End If
End Sub
´=================================================
==============================================
Sub fermetureBase()
cnxBase.Close
End Sub
´=================================================
========================================
Function recupInfo(requete As String) As Variant
´Permet de retrouver une donnée dans la base de données en exécutant la requête passée en paramètre
Dim tuples As New ADODB.Recordset
´ouverture de la base de données de Gestion de projets
Call ouvertureBase
´récupération du résultat de la requête
tuples.Open requete, cnxBase
´positionnement sur le premier enregistrement renvoyé
tuples.MoveFirst
´récupère la donnée souhaitée
If tuples(0) = Null Then
recupInfo = 0
Else
recupInfo = tuples(0)
End If
tuples.Close
´permet de libérer l´espace mémoire attribué à cette variable
Set tuples = Nothing
´ouverture de la base de données de Gestion de projets
Call fermetureBase
End Function
3eme partie :
Sub recupTousLesNumEmploye()
´Permet de retrouver les numéros des employés à partir de leurs initiales
Dim initiales As String
Dim lgPersonnelEnCours As Integer
Dim leNumeroTrouve As Integer
lgPersonnelEnCours = lgDepartPersonnel
initiales = Worksheets(REFERENCES).Cells(lgPersonnelEnCours, colInitialesPersonnel)
While (initiales <> "")
´récupération du numéro d´employé associé aux initiales mentionnées dans la feuille de calcul
leNumeroTrouve = recupUnNumEmploye(initiales)
´écriture de ce numéro récupéré dans la colonne associée dans la feuille de calcul
Worksheets(REFERENCES).Cells(lgPersonnelEnCours, colNumPersonnel) = leNumeroTrouve
´Passage à l´employé suivant
lgPersonnelEnCours = lgPersonnelEnCours + 1
initiales = Worksheets(REFERENCES).Cells(lgPersonnelEnCours, colInitialesPersonnel)
Wend
End Sub
´=================================================
==============================================
Function recupUnNumEmploye(initialesE As String) As Integer
´Permet de retrouver le numéro d´employé à partir de ses initiales
Dim requeteRecupUnNumEmploye As String
´construction de la requête
requeteRecupUnNumEmploye = "SELECT NumEmploye FROM INTERVENANT WHERE InitialesEmploye= """ & initialesE & """ "
´récupération du numéro de la tâche concernée
recupUnNumEmploye = recupInfo(requeteRecupUnNumEmploye)
End Function
d´avance pour votre aide (Dieu sait que j´en est besoin
)