Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1626 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1485105
sergio_sop​rano_44
p'ti à p'ti l'oiso f son ni
Posté le 01-12-2006 à 16:45:40  profilanswer
 

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  

mood
Publicité
Posté le 01-12-2006 à 16:45:40  profilanswer
 

n°1485161
seniorpapo​u
Posté le 01-12-2006 à 17:52:27  profilanswer
 

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

n°1485221
seniorpapo​u
Posté le 01-12-2006 à 20:10:03  profilanswer
 

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
n°1485823
Papy Octet
Posté le 03-12-2006 à 23:33:07  profilanswer
 

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+

n°1485872
sergio_sop​rano_44
p'ti à p'ti l'oiso f son ni
Posté le 04-12-2006 à 09:58:42  profilanswer
 

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

n°1486064
tegu
Posté le 04-12-2006 à 14:16:26  profilanswer
 

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.

n°1487150
sergio_sop​rano_44
p'ti à p'ti l'oiso f son ni
Posté le 06-12-2006 à 12:55:11  profilanswer
 

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

n°1487198
FlorentG
Unité de Masse
Posté le 06-12-2006 à 13:54:48  profilanswer
 

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...

n°1487204
sergio_sop​rano_44
p'ti à p'ti l'oiso f son ni
Posté le 06-12-2006 à 13:58:21  profilanswer
 

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

n°1487209
FlorentG
Unité de Masse
Posté le 06-12-2006 à 14:04:18  profilanswer
 

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...

mood
Publicité
Posté le 06-12-2006 à 14:04:18  profilanswer
 

n°1487211
FlorentG
Unité de Masse
Posté le 06-12-2006 à 14:05:02  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
[Access] Liste déroulante à partir d'une fonction (syntaxe)Probs script formulaire, j'en peut plus ....
modifier des champs de texte à partir d'un formulaireModification par formulaire
pbm chaine de caractère - formulaire POSTrecomposer mail dans un formulaire (éviter les SPAM)
VBA - Ajouter controle à un formulaire via un codepied et entete de formulaire
Modifiacation des données dans une table à partir d'un formulaire 
Plus de sujets relatifs à : comment ecrire dans une table à partir d'un formulaire?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR