Sql access : ajouter un enregistremt
Résolu
Jimmy59116
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
Jimmy59116 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
Jimmy59116 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je me bats avec une base Access dans laquelle j'ai des salariés. La fonction sur laquelle je travaille a une double utilité : soit modifier les données du salarié en cours, soit en créer un nouveau.
Dans le cas de création d'un nouveau salarié, il va falloir ensuite que j'utilise la nouvelle id créée dans une autre table.
J'utilise un bout de code issu d'une autre application, mais problème : il me créé 2 enregistrements...
Le premier avec le nom, le second avec le nom et les 2 "oui" que j'ai besoin d'ajouter dans la table. Je n'arrive pas à lui demander de ne créer que le second enregistrement qui lui est correct.
Il y a forcément une erreur, sans doute basique, dans mon code, mais je ne la trouve pas.
Auriez-vous une idée ?
Merci d'avance !
Jimmy
Private Sub b_valid_Click()
' Vérification de la saisie
' Enregistrer
' Déclaration de la base de données
Dim dbs As DAO.Database
Set dbs = CurrentDb()
' Déclaration du jeu d'enregistrements
Dim rstcom As DAO.Recordset
salarie_en_cours = [Forms]![f_salaries]![zt_id_sal]
' Création de la requête SQL
string_requete = "SELECT * FROM t_salaries where id_salarie=" & salarie_en_cours & " ;"
' ajouter un nouvel enregistrement et définir les champs
Set rstcom = dbs.OpenRecordset(string_requete)
If rstcom.BOF = False And rstcom.EOF = False Then
rstcom.MoveFirst
rstcom.Edit
rstcom.Fields("sal_nom") = [Forms]![f_salaries]![zt_sal_nom]
rstcom.Fields("sal_actif") = "oui"
rstcom.Fields("sal_inter") = "oui"
Else
rstcom.AddNew
rstcom.Fields("sal_actif") = "oui"
rstcom.Fields("sal_inter") = "oui"
rstcom.Fields("sal_nom") = [Forms]![f_salaries]![zt_sal_nom]
End If
rstcom.Update
rstcom.Close
dbs.Close
' actualiser l'affichage
Me.Requery
Me.Refresh
gest_annul_valid
End Sub
Je me bats avec une base Access dans laquelle j'ai des salariés. La fonction sur laquelle je travaille a une double utilité : soit modifier les données du salarié en cours, soit en créer un nouveau.
Dans le cas de création d'un nouveau salarié, il va falloir ensuite que j'utilise la nouvelle id créée dans une autre table.
J'utilise un bout de code issu d'une autre application, mais problème : il me créé 2 enregistrements...
Le premier avec le nom, le second avec le nom et les 2 "oui" que j'ai besoin d'ajouter dans la table. Je n'arrive pas à lui demander de ne créer que le second enregistrement qui lui est correct.
Il y a forcément une erreur, sans doute basique, dans mon code, mais je ne la trouve pas.
Auriez-vous une idée ?
Merci d'avance !
Jimmy
Private Sub b_valid_Click()
' Vérification de la saisie
' Enregistrer
' Déclaration de la base de données
Dim dbs As DAO.Database
Set dbs = CurrentDb()
' Déclaration du jeu d'enregistrements
Dim rstcom As DAO.Recordset
salarie_en_cours = [Forms]![f_salaries]![zt_id_sal]
' Création de la requête SQL
string_requete = "SELECT * FROM t_salaries where id_salarie=" & salarie_en_cours & " ;"
' ajouter un nouvel enregistrement et définir les champs
Set rstcom = dbs.OpenRecordset(string_requete)
If rstcom.BOF = False And rstcom.EOF = False Then
rstcom.MoveFirst
rstcom.Edit
rstcom.Fields("sal_nom") = [Forms]![f_salaries]![zt_sal_nom]
rstcom.Fields("sal_actif") = "oui"
rstcom.Fields("sal_inter") = "oui"
Else
rstcom.AddNew
rstcom.Fields("sal_actif") = "oui"
rstcom.Fields("sal_inter") = "oui"
rstcom.Fields("sal_nom") = [Forms]![f_salaries]![zt_sal_nom]
End If
rstcom.Update
rstcom.Close
dbs.Close
' actualiser l'affichage
Me.Requery
Me.Refresh
gest_annul_valid
End Sub
A voir également:
- Sql access : ajouter un enregistremt
- Acer quick access - Forum Logiciels
- Access appdata - Guide
- Logiciel sql - Télécharger - Bases de données
- Exemple base de données access à télécharger gratuit - Forum Access
- Exemple base de données Access de gestion ✓ - Forum Logiciels