comment executer une requête d'ajout x fois ou x=nombre de caractère dans un enregistrements
14 réponses
dams27_56
Bonjour =E0 tous,
Je souhaiterais dupliquer un champ avec une requ=EAte d'ajout en
fonction de certains param=E8tres. Voivi le champ qui contient les
param=E8tres:1,5 | 2,0 | 2,5. En fait je voudrais copier toutes la ligne
autant de fois que le symbole "|" est pr=E9sent dans ce champs. En somme
je souhaite avoir trois fois la ligne qui contient dans une de mes
colonnes le champ 1,5 | 2,0 | 2,5.=20
En reprenant la fonction NbOc de ze_titi (2ème version) qui a oublié de déclarer i comme un Long ;-) , copies le code ci-dessous dans le module où tu as écrit sa fonction:
Sub zz() Dim bd As Database Dim snap As DAO.Recordset Dim strSQL As String, i As Long, nb As Long Set bd = CurrentDb Set snap = bd.OpenRecordset("select * from DR", dbOpenSnapshot) While Not snap.EOF nb = NbOc(snap("Sect1"), "|") If nb > 0 Then For i = 1 To nb strSQL = "Insert into DR(dpn, cpn, famille, sect1) " strSQL = strSQL & "Values('" & snap(0) & "','" & snap(1) strSQL = strSQL & "','" & snap(2) & "','" & snap(3) & "')" CurrentDb.Execute strSQL Next i End If snap.MoveNext Wend snap.Close bd.Close Set snap = Nothing Set bd = Nothing End Sub
Puis sur l'évènement clic de ton bouton de commande du formulaire: Private Sub Commande0_Click() Call zz End Sub
(A tester sur une copie de la table DR) PS : snap(0), snap(1), ... représentent les champs de ta table DR, équivalent à snap("dpn"), snap("cpn"), ... mais plus court à écrire
Donc en fait, j'ai une table DR qui contient une colonne appelé SECT1 qui contient dans quasiment tous les enregistrements le caractère | . voici un exemple d'enregistrement:
DPN CPN Famille SECT1 toto titi CG5D 0,5+1,0 | 0,5+1,5
je souhaiterais dupliquer cette ligne autant de fois qu'il y a le caractère | dedans.
peux-tu m'aider merci d'avance
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
En reprenant la fonction NbOc de ze_titi (2ème version) qui a oublié de
déclarer i comme un Long ;-) ,
copies le code ci-dessous dans le module où tu as écrit sa fonction:
Sub zz()
Dim bd As Database
Dim snap As DAO.Recordset
Dim strSQL As String, i As Long, nb As Long
Set bd = CurrentDb
Set snap = bd.OpenRecordset("select * from DR", dbOpenSnapshot)
While Not snap.EOF
nb = NbOc(snap("Sect1"), "|")
If nb > 0 Then
For i = 1 To nb
strSQL = "Insert into DR(dpn, cpn, famille, sect1) "
strSQL = strSQL & "Values('" & snap(0) & "','" & snap(1)
strSQL = strSQL & "','" & snap(2) & "','" & snap(3) & "')"
CurrentDb.Execute strSQL
Next i
End If
snap.MoveNext
Wend
snap.Close
bd.Close
Set snap = Nothing
Set bd = Nothing
End Sub
Puis sur l'évènement clic de ton bouton de commande du formulaire:
Private Sub Commande0_Click()
Call zz
End Sub
(A tester sur une copie de la table DR)
PS : snap(0), snap(1), ... représentent les champs de ta table DR,
équivalent à snap("dpn"), snap("cpn"), ... mais plus court à écrire
Donc en fait, j'ai une table DR qui contient une colonne appelé SECT1
qui contient dans quasiment tous les enregistrements le caractère | .
voici un exemple d'enregistrement:
DPN CPN Famille SECT1
toto titi CG5D 0,5+1,0 | 0,5+1,5
je souhaiterais dupliquer cette ligne autant de fois qu'il y a le
caractère | dedans.
peux-tu m'aider
merci d'avance
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
En reprenant la fonction NbOc de ze_titi (2ème version) qui a oublié de déclarer i comme un Long ;-) , copies le code ci-dessous dans le module où tu as écrit sa fonction:
Sub zz() Dim bd As Database Dim snap As DAO.Recordset Dim strSQL As String, i As Long, nb As Long Set bd = CurrentDb Set snap = bd.OpenRecordset("select * from DR", dbOpenSnapshot) While Not snap.EOF nb = NbOc(snap("Sect1"), "|") If nb > 0 Then For i = 1 To nb strSQL = "Insert into DR(dpn, cpn, famille, sect1) " strSQL = strSQL & "Values('" & snap(0) & "','" & snap(1) strSQL = strSQL & "','" & snap(2) & "','" & snap(3) & "')" CurrentDb.Execute strSQL Next i End If snap.MoveNext Wend snap.Close bd.Close Set snap = Nothing Set bd = Nothing End Sub
Puis sur l'évènement clic de ton bouton de commande du formulaire: Private Sub Commande0_Click() Call zz End Sub
(A tester sur une copie de la table DR) PS : snap(0), snap(1), ... représentent les champs de ta table DR, équivalent à snap("dpn"), snap("cpn"), ... mais plus court à écrire
Donc en fait, j'ai une table DR qui contient une colonne appelé SECT1 qui contient dans quasiment tous les enregistrements le caractère | . voici un exemple d'enregistrement:
DPN CPN Famille SECT1 toto titi CG5D 0,5+1,0 | 0,5+1,5
je souhaiterais dupliquer cette ligne autant de fois qu'il y a le caractère | dedans.
peux-tu m'aider merci d'avance
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
.../...
Et moi j'ai oublié, entre autres, de préciser que tu devais charger la référence Microsoft DAO Object Library 3.x dans tes références de l'interface VBE (Menu Outils|Références)
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
.../...
Et moi j'ai oublié, entre autres, de préciser que tu devais charger la
référence Microsoft DAO Object Library 3.x dans tes références de
l'interface VBE (Menu Outils|Références)
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Et moi j'ai oublié, entre autres, de préciser que tu devais charger la référence Microsoft DAO Object Library 3.x dans tes références de l'interface VBE (Menu Outils|Références)
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
dams27_56
Bonjour,
j'ai encore un problème, le script ne fonctionne pas correctement, il me fais une boucle infini...C'est la galère... avez-vous une solution
merci beaucoup par avance
.../...
Et moi j'ai oublié, entre autres, de préciser que tu devais charger la référence Microsoft DAO Object Library 3.x dans tes références de l'interface VBE (Menu Outils|Références)
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr
Bonjour,
j'ai encore un problème, le script ne fonctionne pas correctement, il
me fais une boucle infini...C'est la galère...
avez-vous une solution
merci beaucoup par avance
.../...
Et moi j'ai oublié, entre autres, de préciser que tu devais charger la
référence Microsoft DAO Object Library 3.x dans tes références de
l'interface VBE (Menu Outils|Références)
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr
j'ai encore un problème, le script ne fonctionne pas correctement, il me fais une boucle infini...C'est la galère... avez-vous une solution
merci beaucoup par avance
.../...
Et moi j'ai oublié, entre autres, de préciser que tu devais charger la référence Microsoft DAO Object Library 3.x dans tes références de l'interface VBE (Menu Outils|Références)
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr
Eric
Bonsoir,
Rajoutes cette ligne : snap.MoveLast: snap.MoveFirst
avant la ligne : While Not snap.EOF
Bonjour,
j'ai encore un problème, le script ne fonctionne pas correctement, il me fais une boucle infini...C'est la galère... avez-vous une solution
merci beaucoup par avance
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonsoir,
Rajoutes cette ligne :
snap.MoveLast: snap.MoveFirst
avant la ligne :
While Not snap.EOF
Bonjour,
j'ai encore un problème, le script ne fonctionne pas correctement, il
me fais une boucle infini...C'est la galère...
avez-vous une solution
merci beaucoup par avance
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr