Bonjour,
j'ai une table Ville avec le champ nom.
J'ai une zone de texte dans un formulaire.
J'aimerais quaprès avoir tapé par exemple "Lyon" dans cette zone de texte, Lyon s'ajoute dans ma table.
Comment faire !?
Bonjour,
j'ai une table Ville avec le champ nom.
J'ai une zone de texte dans un formulaire.
J'aimerais quaprès avoir tapé par exemple "Lyon" dans cette zone de texte, Lyon s'ajoute dans ma table.
Comment faire !?
Ok, tu peux m'en dire un peu plus sur cette méthode stp ?
AddNew, méthode
Crée un enregistrement pour un objet Recordset pouvant être mis à jour.
Syntaxe
recordset.AddNew
L'espace réservé recordset est une variable objet qui représente un objet Recordset pouvant être mis à jour et auquel vous souhaitez ajouter un nouvel enregistrement.
Tu as trouvé ça sur le net ou sur ce site ?
Parceque je n'ai pas accés au net de mon bureau.
Si c'est sur ce site, envoie moi le lien stp.
Non, j'ai juste appuyé sur la touche F1 dans Access
Une fois que tu auras compris à quoi sert la méthode AddNew, cherche des exemples sur le forum
J'ai trouvé quelque chose, mais ça ne fonctionne pas. Je pense avoir une erreur de syntaxe :
Est ce que vous voyez mon erreur et je dois mettre quelle table à la place de "Nom-de-la-table" . . . ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Dim Calcul As DAO.Database Dim SAVE As DAO.Recordset Dim Tville As String Dim TQuartier As String Dim TAdresse As String Tville = Texte0 TQuartier = Texte2 TAdresse = Texte4 Set Calcul = CurrentDb() Set SAVE = Calcul.OpenRecordset("Nom-de-la-table") SAVE.AddNew SAVE![Nom ville] = Tville SAVE![Nom quartier] = TQuartier SAVE![Nom adresse] = TAdresse SAVE.Close MsgBox "Vos saisies ont bien été enregistrées !", vbOKOnly Texte0 = "" Texte2 = "" Texte4 = ""
Merci
Ya de ça, mais certains trucs inutiles. A priori, tu as juste besoin de ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim t As Recordset Set t = CurrentDb.OpenRecordset("MaTable", DB_OPEN_DYNASET) t.AddNew 'Ajout des enregistrements dans la table MaTable t![MonChamp] = Me.MonContrôle t.Update t.MoveLast
Ok, mais j'ai un peu de mal là.
Tu ne pourrais pas écrire le code exact qu'il me faut stp ?
Je veux dire, "Me.MonControle" sachant que je mets sur un click de la Commande8 ça donne quoi ?
En fait j'ai plusieurs tables à remplir grâce aux valeurs de ces zones de texte: Ville, Quartier et Adresse.
Ben tu remplace :
- MaTable par le nom de ta table
- MonChamp par le nom de ton champ (ex. Ville, Quartier ...)
- MonContrôle par le nom de ta zone de texte
Ensuite, si c'est sur clic du bouton de commande Commande8, ça donne ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Commande8_Click() Dim t As Recordset Set t = CurrentDb.OpenRecordset("MaTable", DB_OPEN_DYNASET) t.AddNew 'Ajout des enregistrements dans la table MaTable t![MonChamp] = Me.MonContrôle t.Update t.MoveLast End Sub
Bon ça marche très bien pour la ville, mais j'ai plusieurs zones de texte comme je l'ai dit précedemment.
C'est pas juste d'écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Private Sub Commande8_Click() Dim t As Recordset Dim u As Recordset Set t = CurrentDb.OpenRecordset("Ville", DB_OPEN_DYNASET) Set u = CurrentDb.OpenRecordset("Quartier", DB_OPEN_DYNASET) t.AddNew u.AddNew t![Nom ville] = Me.Texte0 u![Nom quartier] = Me.Texte2 t.Update u.Update t.MoveLast u.MoveLast End Sub
Attention, il te faut un AddNew par table ! Et je suppose que la ville et le quartier sont dans la même table ?
D'autre part, si tu veux intervenir sur une autre table, il ne faut pas enchasser tes AddNew. Tu en fais juste un nouveau AddNew en dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Commande8_Click() Dim t As Recordset Set t = CurrentDb.OpenRecordset("Ville", DB_OPEN_DYNASET) t.AddNew t![Nom ville] = Me.Texte0 t.Update t.MoveLast End Sub
Tu supposes mal !
Ville : Numéro ville, Nom ville
Quartier : Numéro ville, Numéro quartier, Nom quartier
Adresse : Numéro ville, Numéro quartier, Numéro adresse, Nom adresse, Nombre de logements
Voilà mes tables, ça donne quoi dans ce cas là ... ?
Ben t'enleve le quartier ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Commande8_Click() Dim t As Recordset Set t = CurrentDb.OpenRecordset("Ville", DB_OPEN_DYNASET) t.AddNew t![Nom ville] = Me.Texte0 t.Update t.MoveLast End Sub
Oui ça j'ai bien compris.
Mais je ne veux pas mettre un bouton du style "Ok" après chaque zone de texte.
Je veux que sur mon formulaire il y ait une zone pour vill, une pour quartier et un seul bouton "Ok" en bas de la page.
Quand je cliquerai dessus après avoir renseigné les zones, ça enregistrera le nom de la ville dans Nom_ville et le nom du quartier dans Nom_quartier.
Tu vois ce que je veux dire ?
Ben je t'ai déjà expliqué : tu fais un AddNew par table.
C'est pas plus compliqué ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Private Sub Commande8_Click() ' === Traitement de la ville === Dim tVille As Recordset Set tVille = CurrentDb.OpenRecordset("Ville", DB_OPEN_DYNASET) ' Ajout de la ville tVille.AddNew tVille![Nom ville] = Me.Texte0 tVille.Update tVille.MoveLast MsgBox "La ville " & Me.Texte0 & " a bien été ajoutée", VbOkOnly + VbInformation, "Confirmation d'ajout..." ' === Fin du traitement de la ville === ' === Traitement du quartier === Dim tQuartier As Recordset Set tQuartier = CurrentDb.OpenRecordset("Quartier", DB_OPEN_DYNASET) ' Ajout du quartier correspondant à la ville donnée tQuartier.AddNew tQuartier![Nom quartier] = Me.Texte1 tQuartier![Numéro Ville] = Me.Texte0 tQuartier.Update tQuartier.MoveLast MsgBox "Le quartier " & Me.Texte1 & " a bien été ajouté", VbOkOnly + VbInformation, "Confirmation d'ajout..." ' === Fin du traitement du quartier === ' === Traitement de l'adresse === ' etc ... ' === Fin du traitement de l'adresse === End Sub
Ouais désolé, en fait je fais pleins de requêtes en même temps donc je me mélange un peu les pinceaux . . .
Je te remercie pour ton aide.
Y'a toujours un truc qui ne fonctionne pas ...
Quand ma zone de texte est vide, lorsque j'appuie sur "ok", ça me met une erreur d'execution/débogage et ça surligne : tVille.Update
J'aimerais juste qu'un message comme "Veuillez remplir tous les champs".
Comment faire !?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If IsNull(Me.MonContrôle) Or Me.MonContrôle = "" Then MsgBox "Veuillez remplir tous les champs", VbOkOnly + VbInformation, "Information manquante..." Else ' Code d'ajout End If
Marche toujours pas ...
Je rentre le nom de la ville puis du quartier dans mes zones de texte.
ça les enregistre dans les bonnes tables, en les répertoriant par un numéro, mais lorsque j'ajoute les adresses et les nombres de logements ça me met le message d'erreur suivant : " Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table Quartier" .
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager