bonjour à tous,
J'utilise ACCESS 2003;
J'ai fait une fonction recherche et je voudrai que quand la valeur de mon champ de mon formulaire n'est pas trouvé, ça ajoute cestte donnée dans une nouvelle table.
Cdlt,
Merci
bonjour à tous,
J'utilise ACCESS 2003;
J'ai fait une fonction recherche et je voudrai que quand la valeur de mon champ de mon formulaire n'est pas trouvé, ça ajoute cestte donnée dans une nouvelle table.
Cdlt,
Merci
Je te conseille de regarder le tutoriel de Cristphe Warin sur les fonctions DAO, il y a plein de moyens simples (et surtout bien expliqués) de: ajouter des nouvelles tables, des nouveaux champs, en supprimer, ajouter, modifier ou supprimer des enregistrements.
Tu le trouveras ici
Bien a toi
A priori je n'ai pas trouver ce que je voulais faire,
si quelqu'un a une autre idée....
Merci
Euhhhh, si tu cherches savoir ajouter une nouvelle table, tout est là:
Paragraphe: 4.3.4.4. Créer une nouvelle table
Si ce n'est pas ca que tu cherches, dis nous ce que tu veux de facon un peu plus détaillé. Si tu attends que qq1 te ponde un code tout cuit, tu peux toujours attendre et ca ne te rendra pas grand grand service.
Bien a toi
En faites, j'ai un formulaire.
J'ouvre mon formulaire et je saisie une info (chiffres). Ma fonction recherche donc dans ma table si elle trouve elle l'affiche sinon je voudrai que si elle trouve pas , cette info soit stocké dans une nouvelle table. Genre comme nom de table elements manquants.
Cdlt,
Bon, je vois que tu n'as pas tres tres envie de te creuser la tete.
Si ta table dans laquelle tu recherches s'appelle TABLE1, ta table d'éléments manquants TABLE2, ton champ s'appelle id1 et ton bouton RECHERCHER, voici le code que tu dois mettre derriere ton bouton:
Avant de l'executer, dans l'éditeur VB, tu vas sur Outils/Reference et tu coches (ou tu vérifies qu'elle soit bien cochée) la reference Microsoft DAO 3.x Object Library
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 Private Sub RECHERCHER_Click() Dim rec1 As DAO.Recordset Dim rec2 As DAO.Recordset 'ouvre un jeu d'enregistrement correspondant a la TABLE1 Set rec1 = CurrentDb.OpenRecordset("TABLE1", dbOpenTable) 'Cherche dans le champ ID de cette table une valeur identique à celle que tu as tapé dans la textbox id1 rec1.FindFirst "[ID]='" & Me.id1 & "'" If rec.NoMatch Then 'S'il ne la trouve pas MsgBox "Inconnu" 'Envoi d'un message 'ouverture d'un jeu d'enregistrement de ta TABLE2 Set rec2 = CurrentDb.OpenRecordset("TABLE2", dbOpenTable) 'ajout d'un nouvel enregistrement rec2.AddNew 'Ecris dans le champ ID de la TABLE2 le numéro rentré dans la textbox rec2.Fields("ID") = Me.id1 'met a jour TABLE2 rec2.Update Else 'S'il l'a trouvé MsgBox "Trouvé" 'envoi d'un message End If rec1.Close rec2.Close Set rec1 = Nothing Set rec2 = Nothing End Sub
Petit souci au niveau de cette ligne
cela me met une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part rec1.FindFirst "[ID]='" & Me.cbo_champ & "'"
Erreur d'éxecution :"3251".
Opération is not supported for this type of objet
voila mon code
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 cmd_recherche_Click() Dim rec1 As DAO.Recordset Dim rec2 As DAO.Recordset 'ouvre un jeu d'enregistrement correspondant a la TABLE1 Set rec1 = CurrentDb.OpenRecordset("Produits", dbOpenTable) 'Cherche dans le champ ID de cette table une valeur identique à celle que tu as tapé dans la textbox id1 rec1.FindFirst "[ID]='" & Me.cbo_champ & "'" If rec.NoMatch Then 'S'il ne la trouve pas MsgBox "Inconnu" 'Envoi d'un message 'ouverture d'un jeu d'enregistrement de ta TABLE2 Set rec2 = CurrentDb.OpenRecordset("NonTrouver", dbOpenTable) 'ajout d'un nouvel enregistrement rec2.AddNew 'Ecris dans le champ ID de la TABLE2 le numéro rentré dans la textbox rec2.Fields("ID") = Me.cbo_champ 'met a jour TABLE2 rec2.Update Else 'S'il l'a trouvé MsgBox "Trouvé" 'envoi d'un message End If rec1.Close rec2.Close Set rec1 = Nothing Set rec2 = Nothing End Sub
et.... ça marche???
Non j'ai un probleme a cette ligne lorsque le debogueur se lance:
Code : Sélectionner tout - Visualiser dans une fenêtre à part rec1.FindFirst "[ID]='" & Me.cbo_champ & "'"
N'oublie pas les balises de code quand tu inseres des morceaux de VBA (bouton #)
Euhh, quel est le message ?? Tu as bien un champ ID dans ta table Produits??
J'ai changé mon champ ID car j'en avais pas mais meme en mettant le nom du champ de ma table a la place de ID cela ne fonctionne pas , l'erreur est decrit plus haut erreur 3251.
Excuse-moi, je pensais que ca marcherait en ouvrant le recordset comme ca, mais non. Il vaut mieux écrire la requete directement.
J'ai repéré deux erreurs potentielles, prends ce code là plutot:
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 Private Sub cmd_recherche_Click() Dim rec1 As DAO.Recordset Dim rec2 As DAO.Recordset 'ouvre un jeu d'enregistrement correspondant a la TABLE1 Set rec1 = CurrentDb.OpenRecordset("SELECT * FROM Produits") 'ouverture d'un jeu d'enregistrement de ta TABLE2 Set rec2 = CurrentDb.OpenRecordset("NonTrouver", dbOpenTable) 'Cherche dans le champ ID de cette table une valeur identique à celle que tu as tapé dans la textbox id1 rec1.FindFirst "[ID]='" & Me.cbo_champ & "'" If rec1.NoMatch Then 'S'il ne la trouve pas MsgBox "Inconnu" 'Envoi d'un message 'ajout d'un nouvel enregistrement rec2.AddNew 'Ecris dans le champ ID de la TABLE2 le numéro rentré dans la textbox rec2.Fields("ID") = Me.cbo_champ 'met a jour TABLE2 rec2.Update Else 'S'il l'a trouvé MsgBox "Trouvé" 'envoi d'un message End If rec1.Close rec2.Close Set rec1 = Nothing Set rec2 = Nothing End Sub
Encore un petit souci c'est que dans ma table "NonTrouver" ca affiche mon etiquette de mon champ et pas le champ que je tappe.
Aurai-tu une idée?
Je suis surpris... C'est bien un TextBox que tu as mis ?
Ecris plutot:
Sinon, quel est le format de ton champ ID dans ta table NonTrouver??
Code : Sélectionner tout - Visualiser dans une fenêtre à part rec2.Fields("ID") = Me.cbo_champ.Value
Rectification : je tappe ce que je veux recherché non pas dans unetextbox mais dans un champ je pense que le souci vient de la si tu veux j'avais commencer ma fonction de recherche, c'est la meme que ce qu'il y a dans ce tuto
http://loufab.developpez.com/recursivite/#LII
sinon pas de format spécifique
Meme avec le .Value ca merde
Ton controle cbo_champ a bien une race.
Un champ correspond a une case dans une table. Les champs sont projetés dans les formulaires avec des TextBox, des Combo, des Listes, des Checkbox etc...
Je n'ai pas le temps de lire le tuto en lien pour identifier ton pb, mais la case dans laquelle tu tapes ce que tu veux rechercher a forcement un type.
Supprime le "truc" dans lequel tu écris et créé un TextBox a qui tu donneras le nom cbo_champ.
Ca doit marcher
Peut-etre pas le temps cette apres midi mais je vais jeter un coup d'oeil
Merci de m'accorder du temps
Tu es tout pret du but. Ton pb devrait pouvoir se résoudre en 5 min, je pense !
Bon courage
probleme au niveau de
comme message d'erreur ca me met :
Code : Sélectionner tout - Visualiser dans une fenêtre à part rec2.Update
"erreur d'éxecution 3314, the field "NonTrouver.NuméroInontrouvé" cannot contain a Null value because the Required property for this field is set to true . Enter a value in this field"
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