mise à jour tables access en VBA - VB/VBA/VBS - Programmation
MarshPosté le 26-05-2011 à 08:43:13
bonjour excusez moi je commence la programmation en VBA ACCESS et j'aurais besoin de votre aide également pour faire une mise à jour de la table que jai appelée "dbo_reve ident" à partir de la table "dbo_habilitation", j'ai essayer de commenter mon code un maximum... réellement je doit comparer les identifiant dans les deux tables, si ils sont égaux je les mets a jour tt de meme dans la table "dbo_revue ident" et si il y en a qui ne sont pas presents dans la table "dbo_revue ident" je les ajoute... merci d'avance !!!
Function compte()
Dim enr1 As Recordset Dim enr2 As Recordset
'valeur de ident dans la table dbo_revue ident Dim var1 As String 'valeur de Ident_FT Bénéficiaire dans la table dbo_Habilitation Dim var2 As String 'variables des compteurs permettant de connaitre le nombre de clients a mettre a jour ou a ajouter Dim compteur_ident_a_mettre_a_jour As Long Dim compteur_ident_a_ajouter As Long
'initialisation des compteurs compteur_ident_a_mettre_a_jour = 0 compteur_ident_a_ajouter = 0
'recordset table debo_revue ident Set enr1 = CurrentDb.OpenRecordset("dbo_revue ident" ) 'recorset table dbo_Habilitation Set enr2 = CurrentDb.OpenRecordset("dbo_Habilitation" )
'enr1 sur la colonne ident var1 = enr1.Fields("ident" ) 'enr2 sur la colonne Ident_FT Bénéficiaire var2 = enr2.Fields("Ident_FT Bénéficiaire" )
'on place enr1 sur la première cellule de la colonne ident enr1.MoveFirst
'tant que la colonne ident de la table dbo_revue ident na pas été entièrement balayer, faire Do Until enr1.EOF
'var1 recoit la valeur de la cellule ou se trouve le recordset var1 = enr1.Fields("ident" ) 'passage à la cellule suivante dans dbo_revue ident enr1.MoveNext
'on place enr2 sur la première cellule de la colonne ident enr2.MoveFirst 'tant que la colonne Ident_FT Bénéficiaire de la table dbo_Habilitation na pas été entièrement balayer, faire Do Until enr2.EOF
'var2 recoit la valeur de la cellule ou se trouve le recordset var2 = enr2.Fields("Ident_FT Bénéficiaire" ) 'passage à la cellule suivante dans dbo_habilitation enr2.MoveNext
'si la valeur ident de dbo_revue ident est egale a la valeur Ident_FT Bénéficiaire de dbo_habilitation, alors If (var1 = var2) Then
'on incrémente le compte ident a mettre a jour compteur_ident_a_mettre_a_jour = compteur_ident_a_mettre_a_jour + 1
'mise a jour de l'ident
Else 'on incrémente le compteur ident a ajouter compteur_ident_a_ajouter = compteur_ident_a_ajouter + 1
'ajout de l'ident manquant à dbo_revue ident
End If
Loop Loop
MsgBox " le nombre d'identifiant mis à jour est :" & compteur_ident_a_mettre_a_jour MsgBox "le nombre d'identifiant ajouter est :" & compteur_ident_a_ajouter
Marsh Posté le 26-05-2011 à 08:43:13
bonjour excusez moi je commence la programmation en VBA ACCESS et j'aurais besoin de votre aide également pour faire une mise à jour de la table que jai appelée "dbo_reve ident" à partir de la table "dbo_habilitation", j'ai essayer de commenter mon code un maximum...
réellement je doit comparer les identifiant dans les deux tables, si ils sont égaux je les mets a jour tt de meme dans la table "dbo_revue ident" et si il y en a qui ne sont pas presents dans la table "dbo_revue ident" je les ajoute... merci d'avance !!!
Function compte()
Dim enr1 As Recordset
Dim enr2 As Recordset
'valeur de ident dans la table dbo_revue ident
Dim var1 As String
'valeur de Ident_FT Bénéficiaire dans la table dbo_Habilitation
Dim var2 As String
'variables des compteurs permettant de connaitre le nombre de clients a mettre a jour ou a ajouter
Dim compteur_ident_a_mettre_a_jour As Long
Dim compteur_ident_a_ajouter As Long
'initialisation des compteurs
compteur_ident_a_mettre_a_jour = 0
compteur_ident_a_ajouter = 0
'recordset table debo_revue ident
Set enr1 = CurrentDb.OpenRecordset("dbo_revue ident" )
'recorset table dbo_Habilitation
Set enr2 = CurrentDb.OpenRecordset("dbo_Habilitation" )
'enr1 sur la colonne ident
var1 = enr1.Fields("ident" )
'enr2 sur la colonne Ident_FT Bénéficiaire
var2 = enr2.Fields("Ident_FT Bénéficiaire" )
'on place enr1 sur la première cellule de la colonne ident
enr1.MoveFirst
'tant que la colonne ident de la table dbo_revue ident na pas été entièrement balayer, faire
Do Until enr1.EOF
'var1 recoit la valeur de la cellule ou se trouve le recordset
var1 = enr1.Fields("ident" )
'passage à la cellule suivante dans dbo_revue ident
enr1.MoveNext
'on place enr2 sur la première cellule de la colonne ident
enr2.MoveFirst
'tant que la colonne Ident_FT Bénéficiaire de la table dbo_Habilitation na pas été entièrement balayer, faire
Do Until enr2.EOF
'var2 recoit la valeur de la cellule ou se trouve le recordset
var2 = enr2.Fields("Ident_FT Bénéficiaire" )
'passage à la cellule suivante dans dbo_habilitation
enr2.MoveNext
'si la valeur ident de dbo_revue ident est egale a la valeur Ident_FT Bénéficiaire de dbo_habilitation, alors
If (var1 = var2) Then
'on incrémente le compte ident a mettre a jour
compteur_ident_a_mettre_a_jour = compteur_ident_a_mettre_a_jour + 1
'mise a jour de l'ident
Else
'on incrémente le compteur ident a ajouter
compteur_ident_a_ajouter = compteur_ident_a_ajouter + 1
'ajout de l'ident manquant à dbo_revue ident
End If
Loop
Loop
MsgBox " le nombre d'identifiant mis à jour est :" & compteur_ident_a_mettre_a_jour
MsgBox "le nombre d'identifiant ajouter est :" & compteur_ident_a_ajouter
End Function