Query criteria bijwerken

Status
Niet open voor verdere reacties.

marka

Gebruiker
Lid geworden
14 jul 2009
Berichten
333
Ik heb de volgende query

Nu wil ik dat het onderste gedeelte (Seizoenspatroon.Omschrijving)="Januari")); automatisch bijgewerkt kan worden naar februari (heb namelijk nog 10 queries met zo'n omschrijving). Is dit mogelijk in een update query?
 
Laatst bewerkt:
Ja, dat kan. Voor "januari" zou je kunnen verwijzen naar een keuzelijst, met daarin de maanden, in je formulier. Dan wordt het ongeveer zo:

Code:
((Seizoenspatroon.Omschrijving)=[Forms]![Formuliernaam]![NaamVanJeKeuzelijst]));
 
Je kan de knop als volgt opbouwen:

Dim strSQL as String, strFilter as String, strTotaal as String

strSQL="SELECT Sum(([Kolommenbalans].[Veld1])*([Seizoenspatroon].[Maand])) AS bedrag1, Sum(([Kolommenbalans].[Veld2])*([Seizoenspatroon].[Maand])) AS Bedrag2, Sum(([Kolommenbalans].[Veld3])*([Seizoenspatroon].[Maand])) AS Bedrag3, Sum(([Kolommenbalans].[Veld4])*([Seizoenspatroon].[Maand])) AS Bedrag4, "Kosten maand" AS Omschrijving " & vbCrLf
StrSQL=strSQL & "FROM Kolommenbalans, Seizoenspatroon " & VbCrLf
strFilter ="WHERE (((Kolommenbalans.Rekening)>=40000 And (Kolommenbalans.Rekening)<50000) AND ((Seizoenspatroon.Omschrijving)="Januari"));" & vbCrLf

strTotaal=strSQL & strFilter
DoCmd.RunSQL strTotaal

strFilter ="WHERE (((Kolommenbalans.Rekening)>=40000 And (Kolommenbalans.Rekening)<50000) AND ((Seizoenspatroon.Omschrijving)="Februari"));"
strTotaal=strSQL & strFilter
DoCmd.RunSQL strTotaal

En zo door...

Michel
 
Laatst bewerkt:
Er is een ongeldige sql instructie gevonden (update, insert etc.) wordt verwacht
 
Marka,

gebruik je soms een query voor iedere maand?
Zo ja, dat is niet nodig.
Je hebt aan 1 query genoeg.
Zie de reaktie van Charles.

Grtz,

Tardis
 
Nee,

Ik vind het lastig om even zo uit te leggen. Het is gemakkelijker om naar de link te kijken waarna ik verwijs. Daar staat ook een vb database. @Octafish ik heb je een mail gestuurd wil je daar even naar kijken ;).
 
Je lijkt het moeilijker te maken dan nodig is.
Je kan volstaan met 2 queries.
Eentje voor de maand en eentje voor het cumulatieve budget tot en met de maand.

Maar vertel eerst eens precies in Jip en Janneke taal wat nu precies de bedoeling is.
Dus bijvoorbeeld

"Ik wil overzichten maken waarin.... et cetera"

Grtz,

PS als dit het enige is dat er moet gebeuren, zou ik Excel gebruiken.

Tardis
 
Hoi Marka,
Nog geen mailtje gezien, waar heb je 'm heengestuurd?

En even terug naar het probleem: controleer (en verwijder eventueel overtollige) het aantal haakjes in de filtering, want dat wil nog wel eens een probleem veroorzaken. In het algemeen: als de filtering van de oorspronkelijke query wel werkt, dan moet hij ook werken als je het filter verandert. Wat misschien zou kunnen, is dat de querystrings bij elkaar worden gevoegd. Daarom heb ik het standaarddeel apart, en het Maanddeel apart in een string gezet.
De string strTotaal moet dus een geldige query opleveren.

Wat je kunt doen om de verschillende strings te testen:
maak een variabele tmp aan, en gebruik het volgende commando:

tmp=Inputbox("","",strTotaal)

hiermee moet je de string kunnen uitlezen in een inputbox. Vervolgens kopieer je de string naar het kladblok bijvoorbeeld, en maak je, als alles weer is vastgelopen, een nieuwe query van. Als het goed is, geeft Access dan wat betere foutmeldingen, en kun je zien waar een fout zit.
Het kan zijn, omdat er nogal wat gedaan wordt in de query, dat de string te lang is. dan zou je hem in brokken van 255 tekens moeten knippen, en alsnog in kladblok aan elkaar plakken.
Probeer eerst dit maar eens...

Michel
 
Michel ,

RunSQL gebruik je voor actiequeries, niet voor SELECT statements ;)

Daarnaast lijkt me de richting waarin marka gestuurd wordt niet de meest handige.

Grtz,

Tardis
 
@Tardis:
Is niet helemaal waar; of eigenlijk: helemaal niet.... Ik gebruik ze wel degelijk zoals ik heb aangegeven.
 
VBA-help zegt over RunSQL:
The RunSQL method carries out the RunSQL action in Visual Basic.
...
SQLStatement Required Variant. A string expression that's a valid SQL statement for an action query or a data-definition query. It uses an INSERT INTO, DELETE, SELECT...INTO, UPDATE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, or DROP INDEX statement. Include an IN clause if you want to access another database.
...
The maximum length of the sqlstatement argument is 32,768 characters (unlike the SQL Statement action argument in the Macro window, whose maximum length is 256 characters).

Beter alternatief is de Execute methode.
 
Heb je helemaal gelijk in; ik was in de war met Execute. :o
 
@Tardis zoals eerder gezegd staat in de link waarnaar ik verwijs uitgelegd wat ik precies wil. Ik denk dat Octafish hier een duidelijk beeld van heeft. Daar staat ook een voorbeelddatabase. Excel is dan ook absoluut geen optie.

@Octafish Hoe zou jouw code er nu uit moeten zien. Ik heb hem via de optie mail gestuurd op het forum. Ik probeer het nog een keer.
 
marka,

jammer dat je geen antwoord op mijn vraag wilt geven.
Ik zal verder niet meer reageren op vragen van jouw kant.

Grtz,

Tardis
 
Hoi Marka,

Nog steeds niets te zien in mijn postbussen...

Michel
 
Laatst bewerkt:
Dit probleem is opgelost. Ik heb een tabel periode gemaakt waar eens per maand een andere maand ingevoerd moeten worden. Op deze manier wordt alles iedere maand juist doorberekend.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan