Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/06/2011, 10h54   #1
Invité de passage
 
Homme madjinov Mastovich
Développeur informatique
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme madjinov Mastovich
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 0
Points : 0
Par défaut impossible d'ecrire une nouveau enregistrement

* Bonjour *

J'ai un probleme.
Je suis dans l'impossibliter d'ecrire un nouveau enregistrement, car le curseur remonte automatiquement au premier enregistrement.
Je suis sous access 2010. Voici le code en question:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_BeforeInsert(Cancel As Integer)
Dim db As Database
Dim résultat As Recordset
Dim strrech1 As String
 
strrech1 = "SELECT DISTINCTROW [N°ch].*, * FROM [N°ch];"
 
Set db = CurrentDb()
Set résultat = db.OpenRecordset(strrech1)
Me![N°ch] = résultat![N°ch]
résultat.MoveFirst
End Sub
Merci d'avance
majdjinov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h04   #2
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Bonjour majdjinov,

Que cherches-tu à faire exactement ?

En effet, je ne vois pas dans ton code l'instuction d'écrire un nouvel enregistrement?
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h12   #3
Invité de passage
 
Homme madjinov Mastovich
Développeur informatique
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme madjinov Mastovich
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 0
Points : 0
En faite lorsque j'ouvre mon formulaire, et que j'essaye d'ecrire un nouveau enregistrement le curseur remonte en haut automatiquement.
Alors j'ai essayer d'ecrire avant que le curseur monte et sa me donne une erreur sur le code ci dessus "erreur d'execution 3020 Update ou CancelUpdate sans AddNew ou Edit"
Voila en gros.
majdjinov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h18   #4
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
En effet, c'est normal que tu tombes en erreur.

Ton instruction n'a fait qu'ouvrir le recordset en lecture et positionné sur le premier enregistrement. Pour mettre ton recordset en écriture, il faut que tu ecrive l'instruction recordset.addnew (pour ajouter un nouvel enregistrement) ou recordset.edit (pour le modifier)

A cet effet, je t'invite à consulter le tuto suivant qui est très bien fait :

http://warin.developpez.com/access/dao/
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h31   #5
Invité de passage
 
Homme madjinov Mastovich
Développeur informatique
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme madjinov Mastovich
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 0
Points : 0
Bien merci, je test d'ajouter résultat.AddNew et résultat.edit mais je ne sais pas vraiment ou les placés pour que sa marche car sur dao ce n'est pas expliquer. ( pour info meme si je veut juste aller sur le 2e enregistrement cela me ramene au 1er )
majdjinov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 15h25   #6
Invité de passage
 
Homme madjinov Mastovich
Développeur informatique
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme madjinov Mastovich
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 0
Points : 0
j'ai changer mon code mais sa ne marche toujours pas .

Private Sub Form_BeforeInsert(Cancel As Integer)

Dim db As Database
Dim Recordset As Recordset
Dim strrech1 As String

strrech1 = "SELECT DISTINCTROW [N°ch].*, * FROM [N°ch];"

Set db = CurrentDb()
Set rec = db.OpenRecordset(strrech1)
Recordset.Edit
Me![N°ch] = rec![N°ch]
Recordset.Update

End Sub
majdjinov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 15h45   #7
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Par défaut cc

Bonjour ,

As-tu consulté les FAQ ? Je te donne le lien sur la partie accès des données :
http://access.developpez.com/faq/?page=SQL

L'aide Acces est aussi très bien faite. N'hésites pas à la consulter.*

Pour résumer :
Si tu veux faire une mise à jour, tu dois d'abords localiser l'enregistrement
et donc utiliser l'enchainement suivant

Code :
1
2
3
4
5
6
1) recordset.findfirst ou .findnext ou bien .finlast (table non indexée ou requête)
ou 
recordset.seek (table indexée)
2) recordset.edit
3) ... <opérations de mise à jour> ...
4) recordset.update
Pour un ajout

Code :
1
2
3
1) Recordset.addnew
2) ... <opération d'ajout> ...
3) recordset.update
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h51.


 
 
 
 
Partenaires

Hébergement Web