Avatar billede naza Nybegynder
06. december 2005 - 10:50 Der er 7 kommentarer og
1 løsning

Brug af 1 til mange relatio gennem form

Hej

Jeg har en tabel (TrackChanges) hvori der registreres alle ændringer i databasen - dvs. hver gang et felt ændres oprettes der en log i TrackChanges tabellen.
Jeg ønsker nu at lave en årsagsregistrering på disse linjer. Dvs. jeg har lavet en ny tabel (ChangeReasons) som har en 1 til mange relation med TrackChanges tabel (En årsag kan høre til mange ændringer i TrackChanges)

Det jeg har brug for nu er så at få oprettet selve brugerfladen/formen til at oprette og vedligeholde dette.
Det jeg ønsker er en mulighed for at kunne se listen over TrackChanges og derefter sætte flueben i dem jeg ønsker at oprette under samme Reason - Er der nogen der kan hjælpe lidt eller evt. lave et eksempel i en db som jeg kunne se?

På forhånden tak

Mvh. Jannik
Avatar billede mugs Novice
06. december 2005 - 12:20 #1
Prøv at se her. Der er et eksempel 2Gem historik på dine tabeller":

http://www.nyholm.dk/makeiteasy/Home.asp?ContentID=30&MenuItemID=25
Avatar billede terry Ekspert
06. december 2005 - 18:38 #2
Jannik>I may be wrong, but isnt it a many-to-many relatiosnhip you need?

Can you show us the fields you have in your tables and how they are related?
Avatar billede terry Ekspert
11. december 2005 - 19:47 #3
whats the status here naza?
Avatar billede naza Nybegynder
14. december 2005 - 09:04 #4
Hej - beklager jeg ikke har svaret :-(

Nej det er en en til mange relation - mine tabeller ser således ud

Tabelnavn: TrackChanges
Felter: TrackID, ProjectID, Field, Oldvalue, Newvalue, Changedate, Changeby, ReasonID

Tabelnavn: ReasonCodes
Felter: ReasonID, ChangeReason, Description, Reportedby, Reportdate

Det er en 1 til mange relation fra ReasonCodes til TrackChanges - hvor relationen er mellem ReasonID

Ex. ReasonCodes.ReasonID 1-00 TrackChanges.ReasonID

Data i trackchanges bliver automatisk udfyldt når brugeren retter i systemet. Bruger skal så efterfølgende gå ind og markere sine ændringer og give dem en årsagskode og beskrivelse hvorfor han har ændret dette.
Jeg forestillede mig en løsning hvor jeg får vist alle linjerne i TrackChanges (hvor ReasonID er NULL) og for hver linje skal der være en tjekbox. På formen skal der desuden være indtastningsfelter for ReasonCodes (dvs. ChangeReason og Description - de to sidste felter udfyldes automatisk). Brugeren skal så indtaste i ReasonCodes felterne og krydse af i TrackChange listen udfor de linjer der hører til ReasonCode han lige har udfyldt. Han afslutter med at klikke opret.
Der der så skal ske er

1. Ny post i ReasonCodes oprettes
2. Felter i Trackchanges hvor der var krydset af i opdateres så deres felter med ReasonID bliver udfyldt med ReasonID fra den nye post der er oprettet i ReasonCodes.

Håber dette giver bedre mening hvad det er jeg ønsker - Hvis der er nogen der har eller kan lave et tilsvarende eksempel ville det være perfekt for jeg kunne godt forestille mig at det ville blive svært at forklarer med tekst.

Håber i kan hjælpe mig

På forhånden tak
Avatar billede terry Ekspert
18. december 2005 - 14:09 #5
The way I see it you will need an yes/no field in your TrackChanges table. This will allow you to check those you want to be related to a specific ReasonCodes record. Or if you dont want to use a yes/no field then you can use a listbox to show the records from TrackChanges  and then select those which you want to be related to your ReasonCodes record. It will be MUCH easier havin a yes/no field. Using a listbox will require code to loop through those selected. The Yes/no method will require only a few lines of code to make the relationship.

Any, start by having a form where you create a new ReasonCodes record. Then a sub form which shows all TrackChanges where ReasonID = NULL

Now you can select the yes/no check box for those you want to relate to the new ReasonCodes record. Now place a butto on the form and in the buttons on click event use some code something like this

Docmd.runsql "UPDATE TrackChanges SET ReasonID = " & Me.Parent.ReasonID & " WHERE YourNewYesNoField = -1 AND ReasonID Is Null"

NOTE: THis is NOT tested, but its not far out
Avatar billede naza Nybegynder
21. december 2005 - 10:30 #6
Hi Terry

I can't get it to work :-( is it possible that I send you a test database I have created with your proposal?

- Jannik
Avatar billede naza Nybegynder
21. december 2005 - 10:39 #7
Sorry - I found out what I was doing wrong - It works now - Thanks
Avatar billede terry Ekspert
21. december 2005 - 12:13 #8
great, and thanks
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester