Avatar billede knudj Nybegynder
22. december 2004 - 18:57 Der er 25 kommentarer og
1 løsning

hjælp til at definere relationer mellem 2 felter

Hej
Jeg har problem med via et relateret felt at oprette oplysninger i en relateret tabel

jeg følgende tabeller

tblsagsinfo  med bla feltet sagsnr
tbllæsinfo  med bla feltet læssagsnr

disse to felter er relateret

når jeg i min indtastningsformular indtaster et sagsnummer i feltet læssagsnr og dette sagsnummer ikke allerede eksisterer automatisk skal oprette oplysninger i tblsagsinfo og hvis sagen allerede er oprette springe til næste felt fra tbllæsinfo

mvh

knud j
Avatar billede terry Ekspert
22. december 2004 - 19:33 #1
You dont say if you select data (sagsnummer ) from the related table via a combo box. If you do then you can us ethe NO IN List event to accept a value which doesnt exist

EXAMPLE:
Private Sub sagsnummer _NotInList(NewData As String, Response As Integer)
Dim prompt As String
   
    Response = acDataErrContinue
   
    prompt = "Denne sagsnummer findes ikke i listen, ønsker du at oprette den?"
    If MsgBox(prompt, vbYesNo, "sagsnummer findes ikke!") = vbYes Then
   
        DoCmd.OpenForm "frmsagsnummer", , , , acFormAdd, acDialog, NewData
        If DLookup("sagsnummer", "tblsagsinfo  ", "sagsnummer = '" & NewData & "'") Then
       
            Response = acDataErrAdded
           
        End If
   
    End If
End Sub
Avatar billede terry Ekspert
22. december 2004 - 19:34 #2
this opens a form for entering sagsinfo.
Avatar billede terry Ekspert
22. december 2004 - 19:36 #3
The property "Limit To List" for the combo must be set to Yes
Avatar billede knudj Nybegynder
22. december 2004 - 19:51 #4
Okay, det lyder meget smart.
Hvor henne skal jeg så gøre sagsnummer til en komboboks? Inde i tblsagsinfo, eller inde i formularen hvor den er vist? eller begge steder?`
Er det muligt, at når man trykker YES, at der så i stedet for at åbne en formular, bare blive tildelt et sagsnummer automatisk. Noget lidt lignende et autonummererings-felt? Der skal bare altid være mulighed for at kunne lave flere læssagsnr inden for hver sagsnr.
Avatar billede terry Ekspert
22. december 2004 - 19:56 #5
Normally if you create the relationship BEFORE you create teh form then it will already be a combo (automatically)
It may be easiest to delete the field and then add a combo to your form. The wizard should guide you through the process.
Avatar billede terry Ekspert
22. december 2004 - 19:59 #6
To add the data without opening a form you can use

If (msgBox(prompt, vbExclamation + vbYesNo, "Not in list!") = vbYes) Then
       
        DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO tblsagsinfo (sagsnummer) VALUES ('" & NewData & "')"
        DoCmd.SetWarnings True
       
        Response = acDataErrAdded
Avatar billede terry Ekspert
22. december 2004 - 20:00 #7
Private Sub sagsnummer _NotInList(NewData As String, Response As Integer)
Dim prompt As String
   
    Response = acDataErrContinue
   
    prompt = "Denne sagsnummer findes ikke i listen, ønsker du at oprette den?"
    If MsgBox(prompt, vbYesNo, "sagsnummer findes ikke!") = vbYes Then
   
        DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO tblsagsinfo (sagsnummer) VALUES ('" & NewData & "')"
        DoCmd.SetWarnings True
       
        Response = acDataErrAdded
           
        End If
   
    End If
End Sub
Avatar billede terry Ekspert
22. december 2004 - 20:01 #8
I'll get it right yet!
Private Sub sagsnummer _NotInList(NewData As String, Response As Integer)
Dim prompt As String
   
    Response = acDataErrContinue
   
    prompt = "Denne sagsnummer findes ikke i listen, ønsker du at oprette den?"
    If MsgBox(prompt, vbYesNo, "sagsnummer findes ikke!") = vbYes Then
   
        DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO tblsagsinfo (sagsnummer) VALUES ('" & NewData & "')"
        DoCmd.SetWarnings True
       
        Response = acDataErrAdded
           
    End If
End Sub


think thats it
Avatar billede terry Ekspert
22. december 2004 - 22:00 #9
can you use this knudj or do you still need help?
Avatar billede knudj Nybegynder
26. december 2004 - 13:36 #10
Alle relationerne var lavede før formularen, så denne burde automatisk være en kombinationsboks?
Jeg har nu prøvet at indsætte ovenstående, men den virker ikke. Når jeg åbner min formular, og vil til at oprette en ny post, hvor jeg ikke selv indtaster noget sagsnummer, så kommer 'prompt' ikke frem på skærmen? der sker faktisk ikke noget.
For at VB accepterede dit din kode, så skulle jeg slette mellemrummet mellem
..sagsnummer _NotInList.... så den blev til ...sagsnummer_NotInList...
Har dette nogen betydning?
Koden skulle jo gerne fungere således, at hvis der ikke indtastes noget i sagsnummer feltet, så skal den spørge om man vil oprette en ny, og hvis man siger ja til dette, så tildeler den automatisk et nyt "unikt" sagsnummer, og hvis man siger nej, kan man manuelt indtastet et sagsnummer.
Avatar billede terry Ekspert
26. december 2004 - 14:58 #11
hi knudj
The code is only an example, but your right there should be no space.
If you send me your database then I can maybe see what the problem is.

eksperten@NOSPAMsanthell.dk
remove NOSPAM
Avatar billede terry Ekspert
29. december 2004 - 14:42 #12
hows it going knudj?
Avatar billede knudj Nybegynder
02. januar 2005 - 13:42 #13
Hej  Terry og  godt nytår

Undskyld jeg ikke har meldt tilbage men jeg har på grund af jul og nytår  ikke haft tid til arbejde med sagen men starter op nu igen . Jeg melder mig lidt senere

Mvh

Knud
Avatar billede terry Ekspert
02. januar 2005 - 14:11 #14
Hi Knud, og godt nytår til dig også

Your still welcome to send me your dB when your up and running again

mvh
Terry
Avatar billede knudj Nybegynder
02. januar 2005 - 21:41 #15
Hey igen Terry..
Jeg har lige prøvet det hele efter igen, og fik det nu, af en eller anden mærkelig årsag til at virke, efter jeg også have sat 'Ja' ved 'BegrænsTilList'. Jeg benyttede mig af koden fra 22/12-2004 20:01:13.
Der mangler dog stadig den funktion, at der også skal være mulighed for at automatisk få tildelt et unikt sagsnummer. Altså den skal nærmest have en form for autonummerering. Altså man skal ved promt få mulighederne 'Automatisk', 'Manuelt' og 'Anuller'. Hvor 'Manuelt' gør det samme som 'Ja' gør i den jeg bruger lige nu, og 'Anuller' det samme som 'Nej'.

Mvh. Knudj
Avatar billede knudj Nybegynder
02. januar 2005 - 22:13 #16
Jeg synes du har gjort et godt arbejde indtil videre, så jeg giver dig pointen nu.
Avatar billede terry Ekspert
03. januar 2005 - 12:18 #17
Hi knudj
I dont think I quite understand "...også skal være mulighed for at automatisk få tildelt et unikt sagsnummer."!

Dont you enter a sagsnummer in the combo box?

You also say
"Altså man skal ved promt få mulighederne 'Automatisk', 'Manuelt' og 'Anuller'. Hvor 'Manuelt' gør det samme som 'Ja' gør i den jeg bruger lige nu, og 'Anuller' det samme som 'Nej'.

What is "'Automatisk'"?

In the standard dialog boxes you cant change the texts displayed on the buttons, you will need to make your own form/buttons for doing this.
Avatar billede knudj Nybegynder
03. januar 2005 - 16:00 #18
Hi Terry

Jeg tænkte det nok  - det er måske lidt kringlet

vil du gerne jeg prøver på engelsk eller skal jeg prøve endnu engang på dansk ??

mvh
Knud
Avatar billede terry Ekspert
03. januar 2005 - 18:25 #19
jeg har ingen problem med dansk, men er ikke så god til at skrive!(langsom)
Avatar billede knudj Nybegynder
03. januar 2005 - 19:04 #20
OK Terry  jeg prøver at gøre min forklaring lidt mere simpel

Når jeg kommer til feltet SAGSID skal der være 3 muligheder :

1) bruget et allerede existerende sagsnummer
eller
2) manuelt oprette et nyt sagsnummer med tilhørede oplysninger der er oplyst af min kunde
eller
3) access tildeler et unikt sagsnummer hvorefter tilhørende oplysninger indtastes.

mulighed nr. 2 har jeg klaret med din hjælp men  havde forestillet mig er at hvis IKKE 1) er aktuel fremkommer en popup box hvor man kan vælge en af de 2 andre muligheder.

Jeg ved ikke om det er en bedre forklaring 

mvh
Knud
Avatar billede terry Ekspert
03. januar 2005 - 19:32 #21
Hi Knud,
I undersatnd what you want but I'm not sure how to do this best, it can be done in a numbers of ways!
Lets look at what we have at the moment!

1) bruget et allerede existerende sagsnummer
This is working with the current solution (choose from existing list)

2) manuelt oprette et nyt sagsnummer med tilhørede oplysninger der er oplyst af min kunde
Again this is working with current solution (enter new number which gets created in dB and is then available for further use)

3) access tildeler et unikt sagsnummer hvorefter tilhørende oplysninger indtastes.
Lets look at this part first (access tildeler et unikt sagsnummer)
Because its possible to enter ANYTHING manually (2) then we dont have a fixed sequence which we can use to find the next in sequence, so we need some rules on how we find a unique number which doesnt alreday exist! Do you have any ideas on how we could do this?
Now lets look at this part of 3 (..hvorefter tilhørende oplysninger indtastes.)

What other information do you mean, the solution given 22/12-2004 20:01:13 only enter a new sagsnummer into the table, do you want to be able to enter other fields into the table?
Avatar billede terry Ekspert
03. januar 2005 - 19:34 #22
3) I forgot to mention! If you dont enter a new number in the combo, then we dont fire the code (NOT IN LIST)
Avatar billede knudj Nybegynder
03. januar 2005 - 21:07 #23
Okay, bare glem det med at (..hvorefter tilhørende oplysninger indtastes.), da dette kommer helt af sig selv.
Det jeg havde tænkt på, var om man kunne lave et andet felt/kolonne i en tabel, som er et autonummereringsfelt, og derfra hente et unikt nummer, der ville blive indsat hvis man ikke manuelt indtastede et sagsnummer. (Hvis feltet SagsID forlades tomt, indsættes nummeret fra autonummererings-kolonen.)
Kan dette bruges?

Mvh
knud
Avatar billede terry Ekspert
03. januar 2005 - 21:14 #24
Is it possible for you to send me your DB? My address is above!

I have some ideas, but its easier to decide which to use when I know how things are at the moment!
I dont think I will have time this evening, but will look at it as soon as I do.
mvh
Terry
Avatar billede knudj Nybegynder
03. januar 2005 - 23:02 #25
Hej igen..
Det kan sagtens lade sig gøre, men jeg udsætter lige problemmet en smule, da jeg lige selv har nogle småting jeg skal have ændret først. Håber det er i orden..

Mvh.
Knudj
Avatar billede terry Ekspert
04. januar 2005 - 12:49 #26
No problem, get back when you have time, hopefully I will too :o)
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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