Toevoegquery met vanaf tot waardes

Status
Niet open voor verdere reacties.

Stabiloy

Gebruiker
Lid geworden
3 okt 2009
Berichten
129
Hallo,

Ik verstuur 1x in de maand een mailing naar de nieuwe klanten. Nu doe ik dit handmatig, graag wil ik het met een toevoeg query doen. Maar het toevoegen moet vanaf klantnummer # tot klantnummer #.

De klantnummers moeten in een tabel worden gezet, en dan de week+jaar erbij.

Ik gebruik de velden:
id (autonummering)
debnr (klantnummer)
Enquête (WW-JJ)

Dus zodra ik die query start wil ik invullen vanaf welke klant en t/m welke klant, en de week+jaar. Daarna moet hij voor alle klanten tussen de opgegeven klantnummers het klantnummer erin zetten en daarbij de enquête.

Hoop dat het duidelijk genoeg is en iemand mij kan helpen! Ik weet dat het een toevoegquery moet zijn, veel verder kom ik nog niet ;)

Stabiloy
 
Als je een maandelijkse mailing hebt met een selectie uit een andere tabel, zou ik kiezen voor een aparte tabel voor de mailing, die je in twee stappen vult: eerst maak je de tabel leeg met een Verwijderquery, daarna vul je de tabel met de nieuwe gegevens. E.e.a. trap je dan af met een knop op een formulier. Op dit formulier kun je dan ook met twee keuzelijsten plaatsen waarmee je de klantnummers selecteert, en eventueel ook je periodiekselectie.
In de uiteindelijke Toevoegquery heb je in ieder geval een criterium nodig voor de klantnummers. Dat criterium ziet er dan zo uit: Between [Formulier]![cboBeginDebNr] And [Formulier]![cboEindDebNr] en het komt uiteraard te staan bij het veld [Debnr].
Iets vergelijkbaars doe je voor de periode.
Als je alles via een query wilt doen, blijft de techniek hetzelfde. Alleen gebruik je dan twee Parameters om de klantnummers te filteren: Between [Typ het eerste DebNr] And [Typ het laatste DebNr]. Dan wordt bij het uitvoeren van de toevoegquery om de juiste nummers gevraagd.
 
Als je een maandelijkse mailing hebt met een selectie uit een andere tabel, zou ik kiezen voor een aparte tabel voor de mailing, die je in twee stappen vult: eerst maak je de tabel leeg met een Verwijderquery, daarna vul je de tabel met de nieuwe gegevens. E.e.a. trap je dan af met een knop op een formulier. Op dit formulier kun je dan ook met twee keuzelijsten plaatsen waarmee je de klantnummers selecteert, en eventueel ook je periodiekselectie.
In de uiteindelijke Toevoegquery heb je in ieder geval een criterium nodig voor de klantnummers. Dat criterium ziet er dan zo uit: Between [Formulier]![cboBeginDebNr] And [Formulier]![cboEindDebNr] en het komt uiteraard te staan bij het veld [Debnr].
Iets vergelijkbaars doe je voor de periode.
Als je alles via een query wilt doen, blijft de techniek hetzelfde. Alleen gebruik je dan twee Parameters om de klantnummers te filteren: Between [Typ het eerste DebNr] And [Typ het laatste DebNr]. Dan wordt bij het uitvoeren van de toevoegquery om de juiste nummers gevraagd.

Die tabel voor de mailing staat apart, maar word alleen verstuurd naar de mensen die in die maand nieuw bij ons klant zijn geworden. Dus kan ik de tabel niet leegmaken, dit omdat je anders niet kan zien vanaf welk klant nummer je de volgende mailing moet versturen.

Met het idee dat jij geeft, geef je volgens mij aan dat hij bij de waardes an een klantnummer een veld moet aanpassen. Echter staan deze klantnummers dus nog niet in de tabel.

Dus als ik de query run wil ik 3 gegevens opgeven, klantnummer vanaf, klantnummer tot en met, en de week+jaar. En die 3 moeten dan in de tabel mailing gezet worden.;)
 
Ik dacht dat je een mailing tabel wilde maken op basis van bestaande klanten, vandaar mijn suggestie. Als je met één query verschillende records wilt toevoegen aan een tabel, zul je toch met een formulier moeten gaan werken denk ik; in een query kun je wel een selectie maken zoals ik heb aangegeven, en ook nog wel één record toevoegen, door geen criterium te maken, maar de parameter in het veld [DebNr] te zetten, maar dan moet je voor elke nieuwe klant de query apart draaien.
Op een formulier kun je twee tekstvakken maken, waarbij je in het eerste tekstvak bijvoorbeeld het eerstvolgende beschikbare nummer genereert (bijv. met een DMax) en het tweede tekstvak gebruikt om het laatste nieuwe nummer in te voeren. Vervolgens laat je de Updatequery in een Loop door de nieuwe waarden lopen, en de records toevoegen.
Overigens: als je e.e.a. genereert, zou ik zelf wel degelijk een aparte tabel gebruiken voor de mailing die je aan die betreffende klanten wilt sturen. De reden? Je kunt er dan een rapport aanhangen, waar je nooit wat aan hoeft te filteren. De te versturen records zitten namelijk altijd volledig in de tabel. Die tabel maak je bij de volgende batch weer leeg, en vul je met de nieuwe records. Simpeler kan bijna niet...
 
ik zal het zsm gaan proberen. Hoe maak je zo een loop?

En het staat allemaal al in een aparte tabel ;)
 
Aangezien je de mailing slechts één keer verstuurd, zou je ook een extra boolean veld "MailingVerstuurd" kunnen maken. Deze zet je dan op true als de mailing is verstuurd (en lekker kort de bocht in jouw geval, want je kunt voor ALLE records dit veld op true zetten als de mailing verstuurd is). De query die je gebruikt om te versturen kun je dan limiteren tot de records waarvoor MailingVerstuurd false of NULL is (bij tri-state). Hoef je ook niets ingewikkelds te doen... Tenslotte verwacht ik dat je het ID veld waarschijnlijk kan verwijderen en de PK op DebNr kan zetten omdat deze zo te horen ook al uniek is.
 
Aangezien je de mailing slechts één keer verstuurd, zou je ook een extra boolean veld "MailingVerstuurd" kunnen maken. Deze zet je dan op true als de mailing is verstuurd (en lekker kort de bocht in jouw geval, want je kunt voor ALLE records dit veld op true zetten als de mailing verstuurd is). De query die je gebruikt om te versturen kun je dan limiteren tot de records waarvoor MailingVerstuurd false of NULL is (bij tri-state). Hoef je ook niets ingewikkelds te doen... Tenslotte verwacht ik dat je het ID veld waarschijnlijk kan verwijderen en de PK op DebNr kan zetten omdat deze zo te horen ook al uniek is.

ik verstuur de mailing iedere maand naar de nieuwe klanten, ieder debnr krijgt hem dus 1x. Maar omdat wij willen bij houden wie hem allemaal al gehad hebben heb ik daar een aparte tabel voor gemaakt. Dus ga ik toch voor de optie van octafish... als ik die ga snappen xd
 
ik verstuur de mailing iedere maand naar de nieuwe klanten, ieder debnr krijgt hem dus 1x. Maar omdat wij willen bij houden wie hem allemaal al gehad hebben heb ik daar een aparte tabel voor gemaakt. Dus ga ik toch voor de optie van octafish... als ik die ga snappen xd

Uhm, dan moet je toch nog even lezen wat ik geschreven heb. In mijn oplossing stuur je de mail namelijk ook alleen naar de nieuwe klanten en hou je ook precies bij wie een mail gehad heeft. En als je er ipv een boolean veld een datum veld van maakt kun je met een update query ook nog de datum invullen wanneer de mailing voor die nieuwe klant verstuurd is. Dan kun je later nog terugvinden wanneer de klant de mailing heeft gehad. Succes in ieder geval!
 
Ik vind de optie van Renee ook niet verkeerd; het gaat er uiteindelijk om dat je op een makkelijke manier kunt aangeven wie de nieuwe klanten zijn. Voordeel van mijn voorstel is wel dat je met een relatief kleine en dus snelle tabel werkt voor het rapport. Het kan ook makkelijker zijn om een aparte tijdelijke tabel te gebruiken als je voor de mailing gegevens tijdelijk wilt opslaan die je verder niet meer nodig hebt.
Uitgangspunt: maak het jezelf niet te moeilijk, want voor je het weet zit je uren te klooien om iets te maken dat net zo goed werkt als een quick-and-dirty methode van 5 minuten...
 
Ik vind de optie van Renee ook niet verkeerd; het gaat er uiteindelijk om dat je op een makkelijke manier kunt aangeven wie de nieuwe klanten zijn. Voordeel van mijn voorstel is wel dat je met een relatief kleine en dus snelle tabel werkt voor het rapport. Het kan ook makkelijker zijn om een aparte tijdelijke tabel te gebruiken als je voor de mailing gegevens tijdelijk wilt opslaan die je verder niet meer nodig hebt.
Uitgangspunt: maak het jezelf niet te moeilijk, want voor je het weet zit je uren te klooien om iets te maken dat net zo goed werkt als een quick-and-dirty methode van 5 minuten...
Daar kan ik mij ook in vinden. Maar heb voor beide gevallen wel een begin nodig, graag zie ik jullie hulp:o
 
Kun je weer een voorbeeldje neerzetten met in ieder geval de tabellen die je wilt gebruiken? Dan maak ik wel een simpel opzetje dat je dan wat makkelijker kunt aanpassen.
 
Hierbij de tabel die ik wil gaan gebruiken. Er staan nog geen waarden is. Dit is ook de bedoeling, deze moet dus met behulp van een query (of een loop in de code) gevuld woden met debnr, en dan week+jaartal bij nieuwsbrief. Hoop dat je er wat aan hebt;)
 

Bijlagen

Laatst bewerkt:
Je hebt lang genoeg gewacht... ;) Ik kijk er dit weekend in ieder geval wel even naar.
 
zijn ondertussen alweer een maand verder. Nog steeds niet geluk/niet naar (kunnen) kijken?
 
't Is inderdaad een kwestie van lange adem :)
Zie in je voorbeeld dat er geen klantentabel is, en ook geen formulieren. Heb je een iets minder uitgekleed voorbeeld?
 
't Is inderdaad een kwestie van lange adem :)
Zie in je voorbeeld dat er geen klantentabel is, en ook geen formulieren. Heb je een iets minder uitgekleed voorbeeld?

dat heb je eigenlijk niet nodig. Dit omdat ik aan wil geven dat bv nr 100 tot 456 een enquete hebben gehad, en die dus in de tabel moeten verschijnen. Heb zaterdag pas weer de beschikking tot het bestand. Zal dan wel een iets mindere uitgekleed voorbeeld neer zetten.
 
Je wilt klantnummers kunnen toevoegen aan de mailing tabel. In de tabel in je db wordt voor het veld Debnr gekeken naar de tabel Klanten, voor beschikbare klantnummers. Aangezien die tabel er niet bijzit, wordt het een beetje lastig verhaal.... Ook mis ik het formulier waarop je alles af zou moeten trappen, omdat je toch ergens wilt kunnen aangeven welke selectie je wilt gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan