Query criteria of VBA

Status
Niet open voor verdere reacties.

fde

Gebruiker
Lid geworden
31 aug 2017
Berichten
110
Ik heb een doorlopend formulier: frm_sollicitant_niet_geantwoord.
De rijbron is een gekoppelde query: qry_sollicitant & qry_bewegingen (lees historiek).


De bedoeling is dat wij personen aanschrijven die niet gereageerd hebben op onze mail en/of telefoon over een bepaalde periode met een herinneringsmail/telefoon.

BV:
PersoonA een mail krijgt voor het opvragen van zijn CV krijgt dit de volgende codes mee in de historiek tabel:
ID_BEWEGING : ID_PERSOON : ID_MEDEWERKER : MEDEWERKER_INITIALEN : ID_COMMUNICATIE = "1" : COMMUNICATIE_TYPE = "E-mail" : COMMUNICATIE_OMSCHRIJVING = "CV opvragen" : DATUM
Als persoonA antwoord krijgt deze de volgende codes mee in de historiek tabel:
ID_BEWEGING : ID_PERSOON : ID_MEDEWERKER : MEDEWERKER_INITIALEN : ID_COMMUNICATIE = "3" : COMMUNICATIE_TYPE = "E-mail" : COMMUNICATIE_OMSCHRIJVING = "CV ontvangen: DATUM
of
ID_BEWEGING : ID_PERSOON : ID_MEDEWERKER : MEDEWERKER_INITIALEN : ID_COMMUNICATIE = "5" : COMMUNICATIE_TYPE = "E-mail" : COMMUNICATIE_OMSCHRIJVING = "Info ontvangen" : DATUM
of
ID_BEWEGING : ID_PERSOON : ID_MEDEWERKER : MEDEWERKER_INITIALEN : ID_COMMUNICATIE = "11" : COMMUNICATIE_TYPE = "Telefoon" : COMMUNICATIE_OMSCHRIJVING = "Info ontvangen" : DATUM

Deze persoonA heeft geantwoord en dient niet weergegeven te worden in het formulier : frm_sollicitant_niet_geantwoord.

Na x-tijd willen we diegenen contacteren die enkel "ID-COMMUNICATIE = 1" en die niet geantwoord hebben. Dit geeft het volgende weer in de historiektabel=
ID_BEWEGING : ID_PERSOON : ID_MEDEWERKER : MEDEWERKER_INITIALEN : ID_COMMUNICATIE = "2" : COMMUNICATIE_TYPE = "E-mail" : COMMUNICATIE_OMSCHRIJVING = "CV opvragen herhaling" : DATUM

Zodra deze herinneringsmail verstuurd dient deze persoon ook niet meer weergegeven te worden in de lijst.

In de gekoppelde qry is de kolom DATUM_BEWEGING het veld criteria als volgt ingesteld: "Between Date() And Date()-30". Dat werk perfect.
In de gekoppelde qry is de kolom ID_COMMUNICATIE het veld criteria als volgt ingesteld: "1" --> heb hiervan alles al geprobeerd maar het lukt me niet.

Ik hoop dat m'n vraagstelling duidelijk genoeg is.
Kan zoiets verwezenlijkt worden via een qry (criteria) of via VBA?
 
Laatst bewerkt:
Volgens mij moet je dat makkelijk kunnen filteren in een query, maar ik snap niet helemaal waarom je niet kunt filteren op een getal. Tenzij je inderdaad "1" als criterium intypt, want dan werkt het niet: getallen filter je zonder quootjes.
 
De "1" is inderdaad zonder quootes. (dit was om het te accentueren in deze tekst)
Doch het criterium krijg ik niet rond.
Zijnde: 1 + 3 = wordt niet getoond; 1 + 5 = wordt niet getoond; 1 + 11 = wordt niet getoond; 1 + 2 = wordt niet getoond --> enkel die 1 die niet voldoet aan de vorige voorwaarden mag getoond worden.
 
Laatst bewerkt:
Maar hoe ziet je query er dan uit? En wat wil je nu precies zien? Ik begrijp dat iedereen sowieso al een 1 heeft, dus als je alleen op 1 filtert in [ID_COMMUNICATIE] dan heb je al het eerste deel gefilterd. Maar wat wil je daarnaast zien? Ik begreep uit de vraag dat het ging om mensen die niet gereageerd hebben, en dat zou dan inhouden dat het veld [COMMUNICATIE_TYPE] leeg is. Of zie ik dat verkeerd? Maar alleen op [ID_COMMUNICATIE] = 1 filteren is niet genoeg?
 
Bij elke communicatie worden in de tabel tbl_beweging (opbouw historiek) deze drie velden aangevuld: [ID_COMMUNICATIE] - [COMMUNICATIE_TYPE] - [COMMUNICATIE_OMSCHRIJVING].

Zie print-screen : tbl_communicatie
tbl_communicatie.PNG

Dus de query-criteria kan toegepast worden op deze 3 kolommen.

Hierbij de opbouw-query die dient als rijbron voor het formulier frm_sollicitant_niet_geantwoord
qry_sollicitant_bewegingen.PNG
 
Je opzet is fout; volgens mij kun je veel beter twee tabellen gebruiken want je hebt nu twee entiteiten in één tabel staan die niets met elkaar te maken hebben. De ene entiteit is [Communicatietype] met zo'n 5 records, de andere [Omschrijving] met zo'n 12 records (heb ze niet allemaal geteld). Het is nergens voor nodig om alle combinaties in een aparte tabel te zetten; met twee velden in de tabel [tblBewegingen] ben je dan klaar; kun je alle combinaties maken die je wilt. Als bepaalde combinaties niet mogen, kun je nog een extra veld toevoegen in één van de twee waarin je de combinaties vastlegt die wél mogen zodat je daar in je formulier op kunt filteren. De huidige opzet gaat in ieder geval nooit goed werken.
 
Zip moet zonder meer kunnen mits je onder de 2Mb blijft. Eventueel kun je de db eerst comprimeren.
 
Ik ben er naar aan het kijken, maar ik vind het maar een knap ingewikkelde database. Ik maak ze doorgaans simpeler. Dus ik heb wat tijd nodig. Kun jij ondertussen uitleggen hoe het proces precies werkt, wamt dat gaat boven mijn pet :).
 
Wij doen projectstaffing (lees detachering) van technische vaklui uitgezonderd ict.
Dagdagelijks zoeken wij op de VDAB-website (BE) of de WW (NL) naar interessante kandidaten.
Daarvoor zijn de tbl_sollicitant en de tbl_bewegingen het belangrijkste

Doorgaans contacteren wij hen via mail voor het opvragen van hun resumé. Alle contact name wordt geregistreerd. Een database is mijns inziens maar pas relevant naarmate deze onderhouden wordt, niet toch?
Als wij dan vragen van klanten krijgen kan op een eenvoudige wijze via de form frm_sollicitant_opzoeken_functie het meest juiste profiel of meerdere profielen aangeboden worden.

.Gsm-nummers en emailadressen zijn gegevens die regelmatig wel eens durven te wijzigen bij sommige lui. Daarom we deze dan ook registeren.
De dagelijkse verjaardagsmailing frm_sollicitant_verjaardag is zo'n een tooltje enerzijds om te testen dat emailadressen nog juist zijn anderzijds om resumé's te bekomen van diegenen waar we nog er geen van hebben.

Dat deze database niet af en optimaal is dat weet ik ook wel. Maar het begin is althans gezet. En dagdagelijks werk ik ofwel een beetje programmatie en/of retroactief historiek beetje per beetje bij.

Dus de aanpassing zoals je deze gevraagd had ivm de uitsplitsing tbl_communicatie heb ik dan ook uitgevoerd. Dit zijn nu tbl_opzoeken en tbl_opzoeken_omschrijving.
. Dus de tbl_communicatie in jouw voorbeeld-db mag verwijderd worden. De relaties zien er dan momenteel zo uit: relaties.PNG.

Ik probeer dan ook veel zorg te besteden aan de juistheid van de formulieren en de daarop gezette knoppen. Alsook telkens een msgbox weer te geven als er gegevens aangepast en/of verwijderd worden. Het is de bedoeling als er interne medewerkers bijkomen zij ook met deze database kunnen werken op gebruikersniveau.
Dit is in een notendop een verklaring van hoe de database geïnterpreteerd wordt.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan