[Access] Status log bijhouden

Pagina: 1
Acties:

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

Zerveza

DoS porfavor

Topicstarter
Ik wil een soort van Issue log gaan bijhouden in een Access database.

Ik wil van de issues een aantal dingen bijhouden waaronder de status. (open, closed, re-opened). Ik wil als het kan daar ook weer een log van bijhouden in een tabel.

Ik stel me dan voor dat ik de volgende tabellen ga gebruiken:

Tabel: issue
issueID (sleutel)
datum
description
status
type

Tabel: involved
issueID (sleutel)
person (sleutel)
role

Tabel: statuslog
issueID (sleutel)
status (sleutel)
date (sleutel)
time (sleutel)

De velden issue.status en issue.type zullen gebruik maken van refentietabellen met daarin ook nog een description per status en type

--> Ik zou graag willen dat de laatste tabel automatisch wordt geupdate zodra ik de waarde van het veld status in de tabel issue wijzig.

--> Heeft iemand vaker zoiets gemaakt en kan hij/zij vertellen of ik "goed op weg" ben?

Verwijderd

Je gebruikt het meeste de engelse benamingen, gebruik voor Datum dus ook een engelse benaming. Bovendien zijn veldnamen als date, type, time en role in weze nietszeggend en kunnen wellicht later problemen geven i.v.m. reserved words.
Gebruik dus bv IssueDate, IssueState, IssueType, PersonRole en ChangeDate. De tijd in een apart veld is misschien overbodig, omdat een date-veld al datum en tijd bevat.

In de Form gebaseerd op de tabel Issue, kan je een globaal veld op module niveau definieren bv Dim bStateChanged as Boolean. Dit veld zet je op False in de OnCurrent-event van de Form en op True in de AfterUpdate-event van het IssueState-veld. In de AfterUpdate-event van de Form voer je het SQL-statement INSERT into StateLog (...) values (...) uit, indien bStateChanged True is.

Je kan misschien zonder de boolean werken, indien je deze test oid kan doen:
IssueState.old <> IssueState.new Zoek eens in de help enzo.

[ Voor 9% gewijzigd door Verwijderd op 09-09-2004 10:52 ]


  • Witte
  • Registratie: Februari 2000
  • Laatst online: 26-08 12:17
Ik heb ook zoiets gemaakt, om de statusgeschiedenis van productrevisies bij te houden.

Ik had een tabel voor producten met sleutel 'productID'
Een tabel voor de revisies met sleutel 'revisionID',
in deze tabel zat een veld 'currentstate'

Een tabel met de statehistory met sleutel stateID
in deze tabel had ik velden 'newstate', 'date' en 'user'

Voorts was er een tabel met de omschrijvingingen van de statussen.

Een dergelijk principe heb jij ook met je issues.

Je laatste vraag: ik denk dat het het beste werkt als je zelf de records aanmaakt in je log-tabel, i.p.v. dit 'automatisch' te laten verlopen.

[ Voor 20% gewijzigd door Witte op 09-09-2004 10:48 ]

Houdoe


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

Zerveza

DoS porfavor

Topicstarter
hier gaan we uitkomen! Thnx

Nog iets wat ff niet snel genoeg wil lukken..

Ik heb enkelvoudige feiten van een Issue (zoals de status en de omschrijving), daarnaast heb ik ook een meervoudig feit (de betrokken personen)

Hoe kan ik dit in 1 form weergeven??

vb.

Issue 20040908-1

Status Open
Description: Het lukt me niet meervoudige feiten van een issue in 1 form weer te geven.


Person----- Role
Zerveza-----niet slim genoeg
Witte-------weet het misschien


Ik heb een query gemaakt die alle informatie uit de Issue en Involved tabel haalt, ben ik dan goed op weg?

code:
1
2
SELECT Issue.*, IssueInvolved.*
FROM Issue INNER JOIN IssueInvolved ON [Issue].[IssueID]=[IssueInvolved].[IssueId];

  • TheXception
  • Registratie: December 2003
  • Niet online
Zerveza schreef op 09 september 2004 @ 11:43:
Ik heb enkelvoudige feiten van een Issue (zoals de status en de omschrijving), daarnaast heb ik ook een meervoudig feit (de betrokken personen)

Hoe kan ik dit in 1 form weergeven??
Door middel van een subform.
Maak een nieuwe tabel, gekoppeld aan je Issue tabel (op basis van je Issuenummer. Dan kun je meerdere namen koppelen....

Dus nieuwe tabel heeft in elk geval de volgende velden:
IssueID (die koppel je in je subform aan je IssueID uit de Issuetabel)
Person (waarin je namen laat selecteren uit je tabel Involved)
Role (weet niet of je dit als tekstveld wilt. Je kunt ook waardes laten selecteren uit tabel Role o.i.d.)

hoop dat dit duidelijk is

"It's better to burn out, than to fade away"