comment ecrire dans une table à partir d'un formulaire?

comment ecrire dans une table à partir d'un formulaire? - VB/VBA/VBS - Programmation

Marsh Posté le 01-12-2006 à 16:45:40    

Bon un question de base qui m'a toujours pertubé et mare de triffouiller les forum pour le savoir.  
j'ai un formulaire d'inscription avec les champ  
nom,prenom,c1,c2  
je creer un table Personne qui est vide.  
comment ecrire dans une table ou encore comment creer un enregistrement?  
voici ce que j'ai fait j'ai quand meme cherché!  
 
Dim rst As Recordset  
Set rst = CurrentDb.OpenRecordset("personne" )  
 
Do Until rst.EOF  
rst.AddNew  
Me.Nom = rst!Nom  
Me.Prenom = rst!Prenom  
Me.Adresse = rst!Adresse  
Loop  
 
'rst.MoveNext  
'rst.Update  
rst.Close  
Set rst = Nothing  
MsgBox "bien"  
End Sub  

Reply

Marsh Posté le 01-12-2006 à 16:45:40   

Reply

Marsh Posté le 01-12-2006 à 17:52:27    

Bonsoir,
C'est vrai, on voit que tu as cherché.
 
En dehors d'autres "erreurs" que l'on peut traiter  après, j'insiste sur un point que l'on a vu dans un de tes posts précédents:
 
lorsque tu écris:
Me.nom = rst!Nom   cela signifie que tu veux mettre dans Me.nom le contenu de rst!Nom
si tu veux mettre dans rst!Nom le contenu de Me.Nom, il faut écrire:
rst!Nom = Me.Nom
 
Quel est le rôle de :  Do Until rst.EOF   avec le :Loop??
 
Cordialement

Reply

Marsh Posté le 01-12-2006 à 20:10:03    

Bonsoir,
j'ai trouvé pour toi une adresse:
http://www.info-3000.com/access/daorecordset.php
 
une autre:
http://warin.developpez.com/access [...] tie_5#L5.2
Cordialement


Message édité par seniorpapou le 01-12-2006 à 20:13:34
Reply

Marsh Posté le 03-12-2006 à 23:33:07    

Salut,
J'ai également longuement cherché à atteindre une table directement, mais c'est peine perdue !
 
Tu ne peux pas atteindre directement une table access avec du code VBA. Lorsqu'un formulaire affiche des données, c'est lui qui verrouille la table et en interdit l'accès.
Pour enregistrer les nouvelles valeurs, tu dois absolument passer par le formulaire lui-même en le fermant et autorisant l'enregistrement des données.
 
A+

Reply

Marsh Posté le 04-12-2006 à 09:58:42    

Bon Comme vous etes gentil!
voici une solution tres pretique que j'ai trouve si ça peux vous aider.
Ecriture directe dans une table à partir un formulaire.
soit la table Personne :
 
Private Sub btAjout_Click()
Dim strSql As String
Dim cmd As ADODB.Command
 
strSql = "INSERT INTO personne ( nom, prenom, Adresse )" _
        & "SELECT [NOM] AS Expr1, [PRENOM] AS Expr2, [ADRESSE] AS Expr3"
         
Set cmd = New Command
cmd.CommandType = adCmdText
cmd.CommandText = strSql
cmd.Parameters.Append cmd.CreateParameter("NOM", adVarChar, adParamInput, 250, Me.txbNom)
cmd.Parameters.Append cmd.CreateParameter("PRENOM", adVarChar, adParamInput, 250, Me.txbPrenom)
cmd.Parameters.Append cmd.CreateParameter("ADRESSE", adVarChar, adParamInput, 50, Me.txbAdresse)
cmd.ActiveConnection = Application.CurrentProject.Connection
cmd.Execute
 
Set cmd = Nothing
End Sub

Reply

Marsh Posté le 04-12-2006 à 14:16:26    

J'arrive après la bataille, mais il faut que je corrige le commentaire de Papy Octet.
On peut avoir accès aux valeurs d'une table, même si un formulaire est ouvert et lié à celle-ci.
En VBA cherchez du côté des propriétés de formulaire .RecordsetClone et .Bookmark pour rtavailler sur la table du formulaire et synchroniser l'affichage du formulaire avec le recordset.

Reply

Marsh Posté le 06-12-2006 à 12:55:11    

Est-ce que papy octet a pigé comment ecrire sur une table?
 
avec exemple d'execution ici!!!!
 
http://www.e-rus.net/telecharg/bd1.zip

Reply

Marsh Posté le 06-12-2006 à 13:54:48    

Si le formulaire est lié à la table, il n'y a aucun besoin de passer par un recordset... Suffit d'ouvrir le formulaire en mode nouveau machin, et ça roule...

Reply

Marsh Posté le 06-12-2006 à 13:58:21    

bah! la table est vide à la base.le but est de la remplir à partir du formulaire.

Reply

Marsh Posté le 06-12-2006 à 14:04:18    

Ben justement, access a tout ce qu'il faut sans se faire chier avec du code.
 
Moi un même formulaire sert pour l'ajout et l'édition, même si la table est vide. Pour ajouter, faut ouvrir le formulaire avec par exemple :

Code :
  1. DoCmd.OpenForm "nomFormulaire", acNormal, , , acFormAdd


Pour mode édition, par exemple (faut mettre un petite clause qui sélectionne l'enregistrement à modifier par exemple) :

Code :
  1. DoCmd.OpenForm "nomFormulaire", acNormal, , "id= " & idPersonne, acFormEdit


 
Ensuite deux boutons, un ok et un annuler par exemple...

Reply

Marsh Posté le 06-12-2006 à 14:04:18   

Reply

Marsh Posté le 06-12-2006 à 14:05:02    

A moins que tu n'utilises une version traditionnelle Access, où un formulaire fait tout : navigation entre les enregistrements, ajout, édition, etc.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed