Expressie werkt wel in formulier, niet in tabel

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Anoniem: 1059965

Topicstarter
Mijn vraag
Deze expressie geeft de laatste dag van volgende maand.
Het werkt wel in een besturingselement in een formulier, maar ik krijg het niet voor elkaar om het werkend te krijgen in een berekend tabel-veld ("De expressie kan niet worden gebruikt in een berekende kolom"). Het is nodig dat de expressie in de tabel komt te staan, omdat de tabelvelden als variabelen gebruikt worden door een ander softwareprogramma.

=DateSerial(Year(Date());Month(Date())+2;0)

Relevante software en hardware die ik gebruik
Office365 / Access 2016

Wat ik al gevonden of geprobeerd heb
Google....
Expressie aangepast; probleem lijkt te liggen aan Date(), die functie blijkt daar niet gebruikt te kunnen worden, maar waarom niet wordt niet vermeld.

Iemand enig idee hoe ik dit voor elkaar kan gaan krijgen...?

Beste antwoord (via Anoniem: 1059965 op 12-04-2018 14:00)


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 22:09
Als je vanuit het andere pakket updates doet, zou je wellicht de huidige datum ook bij kunnen werken in een separate kolom en de berekende kolom hierop baseren.

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans

Alle reacties


Acties:
  • 0 Henk 'm!

  • shadvet
  • Registratie: Juli 2015
  • Laatst online: 09:56
Je kan de Date() functie misschien in een hidden column stoppen en die aanroepen in je functie?
het is niet netjes maar als het werkt dan kun je er nog wel eens mee wegkomen

i5-6400, r9 280x, 8g ram, BenQ GW2470H, NZXT S340 Black | i5-4570, XFX 7970, 8g ram, Acer X223W, FD Core1000


Acties:
  • 0 Henk 'm!

Anoniem: 1059965

Topicstarter
Kun je iets specifieker zijn hoe ik dat kan doen? Ik heb weinig ervaring met het aanroepen van functies, en die Date() wil gewoon niet in een berekend tabelveld; ook niet los.
Ik kan 'm wel als standaardwaarde kiezen (mijn eigen expressie ook), maar die verschijnt alleen bij nieuwe toevoegingen aan de tabel.

Acties:
  • 0 Henk 'm!

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 22:09
Het klopt dat je Date() niet in een berekende kolom kunt gebruiken omdat deze functie non-deterministic is. Dit betekent dat de uitkomst van de berekening niet enkel afhankelijk is van de inputvariabelen.

Als dit wel zou worden toegestaan, zou je berekende kolom iedere keer anders kunnen zijn (de tijdstip van berekening staat niet vast, bij opslaan of bij opvragen of ergens ertussen).

Je zou een after update-event aan kunnen maken die je kolom bijwerkt. Voor de insert kun je kiezen tussen default value of after insert.

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Acties:
  • 0 Henk 'm!

Anoniem: 1059965

Topicstarter
Oei. Dan denk ik dat het niet gaat werken; eenmaal ingevoerd doen we geen inserts en updates meer, het softwareprogramma wat de ingevoerde gegevens gebruikt maakt gebruik van een ODBC-koppeling en dat "ziet" Access niet als een actie.

Stel dat ik mijn expressie als standaardwaarde zet, wordt die dan wel bijgewerkt, of blijft die staan op waar het bij de insert op stond?

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 22:09
Als je vanuit het andere pakket updates doet, zou je wellicht de huidige datum ook bij kunnen werken in een separate kolom en de berekende kolom hierop baseren.

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Acties:
  • 0 Henk 'm!

Anoniem: 1059965

Topicstarter
Ja, ik ga proberen of dat lukt; niet alles kan helaas met ODBC geupdated worden, dus ben benieuwd :).
Ik laat het jullie weten.

Bedankt in ieder geval voor jullie snelle reacties, weer iets geleerd over berekende velden!

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Het is niet duidelijk of het 'andere programma' ook schrijfakties doet op die tabel. Zoniet, maak dan een query die door t andere programma wordt uitgelezen.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

Anoniem: 1059965

Topicstarter
Ja, dat schrijft ook weg. Ik heb het inmiddels voor elkaar gekregen. Hartelijk dank voor jullie meedenken!
Pagina: 1