Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[access] alleen regels "between" een bepaalde datum selecter

Pagina: 1
Acties:

  • Zerveza
  • Registratie: Maart 2001
  • Laatst online: 17-12-2021

Zerveza

DoS porfavor

Topicstarter
ik heb een heleboel data (Table_Data), nu wil ik ergens simpel ingeven wat de minimum en maximum datum ingeven zodat daarop een selectie gemaakt wordt.

Ik heb een excel gemaakt met daarin twee kolommen:
min max
1-1-2008 1-2-2008

in access heb ik een link gemaakt naar die excel table (Table_Date). Gebruikers snappen excel ik wil dat ze het daar veranderen, en dat dat de gelinkte tabel in access zich aanpast.

In access heb ik een query gemaakt op basis van twee tabellen, te weten Table_Data en Table_Date. Sql statement ziet er zo uit:
code:
1
2
3
4
SELECT Table_Data.[Date]
FROM Table_Data, Table_Date
GROUP BY Table_Data.[Date]
HAVING (((Table_Data.[Date]) Between "min" And "max"));


ik krijg dan een type mismatch... als ik daar op google vind ik niets.. iemand een idee hoe dit aan te pakken, of waari k een oplossing kan vinden.

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Zerveza schreef op dinsdag 28 juli 2009 @ 20:15:
[...] twee tabellen, te weten Table_Data en Table_Date.
Ehm, oh, nu zie ik het. Misschien een iets betere naamgeving? :) "Table_" is wat onnutig, en Data en Date zijn geen goede omschrijvingen.

Verder denk ik dat dat die GROUP BY [...] weg kan, dat je WHERE ipv HAVING bedoelt, en dat je [min] en [max] bedoelt ipv "min" en "max". En voor de rest doet deze combinatie van Access en Excel mij een beetje vreemd aan. :)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Verwijderd

Een type mismatch treedt alleen op wanneer de datatypen in beide tabellen niet met elkaar overeenkomen. Gelet op je query is dat ook wel logisch: in je HAVING-clause (die inderdaad een WHERE moet zijn, omdat je eerst een selectie van alle unieke records wilt maken die een datum hebben tussen de min- en de maxdatum en pas daarna wilt groeperen) heb je bij je criterium twee strings ingevuld. Dat vergelijkt wat lastig met date/time-datatypen.

De juiste SQL zou er alsvolgt uitzien:

SQL:
1
2
3
4
SELECT Data.Datum
FROM Data, [Date]
WHERE (((Data.Datum) Between [Date]![mindatum] And [Date]![maxdatum]))
GROUP BY Data.Datum;