Avatar billede banelars Nybegynder
17. november 2001 - 01:58 Der er 24 kommentarer og
1 løsning

Fortsættelsen af \"hente data fra flere tabeller\".

Terry var en god hjælp til løsning af mit spørgsmål \"hente data fra flere tabeller\".
Det lykkedes at få den fortløbende formular til at vælge fra alle 4 tabeller ved hjælp af UNION SELECT.

Mit nye problem går ud på, at man ved tryk på en af typerne (1-4)i formularen, skal få åbnet dén formular der hører til netop denne type depeche. typenr identificerer de 4 forskellige formularer.
Det virker fint ved hjælp af en makro, når det drejer sig om bare én af formularerne.

Makroen gør som følger:

Åbner Formular FIndskriv
WHERE [TABLE]![Indskriv]![depnr]=[FORMS]![FGyldigedep]![depnr]

Nu skal den altså åbne én af 4  forskellige Formularer (depecher), som identificeres ved hjælp af typenr 1,2,3 eller 4.

Er der et bud på en løsning ?

Gode hilsner
Lars.
Avatar billede banelars Nybegynder
17. november 2001 - 02:30 #1
Jeg skal lige repetere, at det er ved tryk på et af felterne i den fortløbende formular, man skal kalde den fulde formular tilhørende typenr.
Alt efter om det er formularen med typenr 1,2,3 eller 4.
Avatar billede terry Ekspert
17. november 2001 - 10:43 #2
I have a few ideas but it would be MUCH easier if you sent the dB. Tell me which forms I need to look at.
dkTeBrSa@europe.lego.com
Avatar billede terry Ekspert
17. november 2001 - 10:54 #3
Or you can try the following.
Make a double click event procedure for one of the fields in the detail section.

Then you need some code which looks like.

    Dim stDocName As String
    Dim stLinkCriteria As String
 
    Select Case me.typenr
      case 1
        stDocName = \"frm1\"
      case 2
        stDocName = \"frm2\"
      case 3
        stDocName = \"frm3\"
      case 4
        stDocName = \"frm4\"
 
    End Select

    DoCmd.OpenForm stDocName, , , stLinkCriteria
 
Avatar billede terry Ekspert
17. november 2001 - 10:55 #4
You need to alter stDocName to the correct name of the form to open.
Avatar billede terry Ekspert
17. november 2001 - 10:56 #5
I am also assun´ming that there is a field in the detail named typenr!
Avatar billede banelars Nybegynder
19. november 2001 - 14:26 #6
Hej Terry.
Jeg har været uden internetadgang et par dage.
Men her på en café i Århus,
er der lige tid til at checke eksperten.
Jeg kigger på dit forslag sammen med min hjælper,
en af dagene og melder tilbage.
Tak indtil videre.

Lars.
Avatar billede terry Ekspert
19. november 2001 - 14:28 #7
OK :o)
Avatar billede terry Ekspert
24. november 2001 - 15:16 #8
banelars>hows your internet going?
Avatar billede banelars Nybegynder
26. november 2001 - 07:10 #9
Hej Terry.

Du må undskylde jeg ikke har meldt tilbage, men min gode ven Allan har haft travlt og vi får først kigget på det torsdag.
Jeg skal nok melde tilbage så snart vi har afprøvet din teori.

Gode hilsner
Lars.
Avatar billede banelars Nybegynder
29. november 2001 - 17:16 #10
Hej Terry.

Efter lidt bøvl med at tilpasse dit forslag til databasen, så lykkedes det og det virker sgu osse.

Du er god !

Der er så godt nok et lille problem mere, som jeg glemte at nævne.
Nu vælges den korrekte formular efter typenr.
Men efter typenr. kommer der et depnr. (autonummerering \"0001\",\"0002\" osv).
For hver type er der koblet et sådant autonummer på.
Hvis jeg har en formular fremme hedder den måske 2(typenr.) efterfulgt af 0001(depnr).
Typenr. 1,2,3 og 4 kan altså godt have samme depnr. Typenr. + depnr. er altså lig med samlet depnr. for den aktuelle formular.
Det der identificerer formularen er altså både typenr. og depnr. Disse hænger sammen.

Kan dette kobles på din Case-sætning eller skal der gøres noget andet.

Jeg skal lige sige at du selvfølgelig skal have nogle flere point, for du har været en stor faktor i løsningen af problemet.

Den gjorde vrøvl pga. denne sætning, der manglede underscore efter Form.
Select Case Form_FGyldigedep.typenr

Den rigtige sætning blev som følger :
Private Sub dato_Click()
Dim stDocName As String
Dim stLinkCriteria As String
Select Case Form_FGyldigedep.typenr
Case 1
stDocName = \"FIndskr\"
Case 2
stDocName = \"FSpsp\"
Case 3
stDocName = \"FHstgh\"
Case 4
stDocName = \"FKstrm\"
End Select
DoCmd.OpenForm stDocName, , , stLinkCriteria

End Sub
Avatar billede banelars Nybegynder
29. november 2001 - 23:20 #11
Jeg ved ikke om det er tydeligt nok forklaret, men når den skal åbne én af formularerne med f.eks samlet depnr 20001 (bestående af typenr (2) og depnr (0001)), så skal den lede efter kombinationen typenr. og depnr. som er det samlede depnr.
Som det er nu går den kun efter typenr.
Avatar billede terry Ekspert
30. november 2001 - 08:34 #12
First problem here is that an autonumber CAN NOT be = \"0001\" or \"0002\" these are text values and an autonumber is numeric so it could have values 1 2 or 3 for example:
So a \"samlet\" depnr would look like
11 or 12 or 13 (for typenr = 1) and
21 or 22 or 23 (for typenr = 2)

I am not exactle sure what you mean with a \"samlet\" depnr. This is two fields isnt it and not just one.
Avatar billede banelars Nybegynder
30. november 2001 - 08:41 #13
Hej Terry.

Det er rigtigt at der er to felter.
Det første er typenr som er fast for hver formulartype.
Det andet felt er depnr som hedder 0001.
Feltet typenr er sat lige foran feltet depnr, således at de to felter til sammen danner depechenummeret.
Med den Case-sætning du har konstrueret kaldes den rigtige formular med det aktuelle typenr.
Den tager dog ikke det rigtige depnr.
Typenr og depnr skal altså hænge sammen når formularen kaldes.
Avatar billede banelars Nybegynder
30. november 2001 - 08:49 #14
Hej igen.

Jeg skal lige sige, at funktionen med at finde det rigtige depnr har jeg brugt i et forsøg med kun én formular og dette fungererde fint.
Where-betingelsen er som følger :

[Indskriv]![depnr]=[Forms]![FGyldigedep]![depnr]

Denne betingelse finder det aktuelle depnr.
Dette sammen med typenr danner som sagt det smalede depechenummer, som kan være 10001,20001,30001 og 40001.
Avatar billede banelars Nybegynder
30. november 2001 - 09:05 #15
Hej igen igen.

Iøvrigt kan autonummer godt være 0001, hvis man under Format i tabeldesignet skriver 0000.
Så starter autonummeret med 0001.

Lars
Avatar billede terry Ekspert
30. november 2001 - 09:28 #16
Can we spool back a bit?
Only the typenr is used to open a specific form, not the depnr, is that correct?
And you want to find the record(s) where 

Typenr = Form_FGyldigedep.typenr and depnr = Form_FGyldigedep.depnr is that correct?

stLinkCriteria = \"Typenr = \" & Form_FGyldigedep.Typenr & \" AND Depnr = \" & Form_FGyldigedep.depnr

DoCmd.OpenForm stDocName, , , stLinkCriteria




Avatar billede banelars Nybegynder
30. november 2001 - 09:46 #17
Skrev du noget Terry ?
Jeg har fået en mail om at du har kommenteret mit indlæg, men jeg kan ikke se noget ???

Lars.
Avatar billede banelars Nybegynder
30. november 2001 - 09:48 #18
Nu fik jeg den og prøver det af.
Avatar billede banelars Nybegynder
30. november 2001 - 09:52 #19
Nu har jeg ikke min hjælper ved hånden lige nu, så hvor i koden skal sætningen indsættes ?

Lars.
Avatar billede terry Ekspert
30. november 2001 - 09:56 #20
Private Sub dato_Click()
Dim stDocName As String
Dim stLinkCriteria As String
Select Case Form_FGyldigedep.typenr
Case 1
stDocName = \"FIndskr\"
Case 2
stDocName = \"FSpsp\"
Case 3
stDocName = \"FHstgh\"
Case 4
stDocName = \"FKstrm\"
End Select

stLinkCriteria = \"Typenr = \" & Form_FGyldigedep.Typenr & \" AND Depnr = \" & Form_FGyldigedep.depnr

DoCmd.OpenForm stDocName, , , stLinkCriteria

End Sub
Avatar billede banelars Nybegynder
30. november 2001 - 10:27 #21
Hej Terry.

Bingo !

Nu virker min database som den skal.

Mange timers arbejde og hovedbrud ser ud til at være overstået.
Nu må vi jo lige se om der kommer børnesygdomme, men det ser sgu godt ud.

Du skal have mange tak for hjælpen Terry.

Du har jo fået 100 point, men du må sige til hvis du mener det er for lidt.

Hvis jeg havde muligheden ville jeg godt give en øl !!!

Gode hilsner

Lars.
Avatar billede terry Ekspert
30. november 2001 - 10:29 #22
100 is fine, I would also prefer the \"øl\"
Avatar billede banelars Nybegynder
30. november 2001 - 10:32 #23
Nu kommer jeg en del rundt i landet, så det kunne måske arrangeres.

Jeg bor i Aalborg og er bl.a en del på sjælland, hvor jeg stammer fra, men hvis jeg tolker din mailadresse korrekt, så er det ikke lige i de egne du befinder dig.

Lars
Avatar billede terry Ekspert
30. november 2001 - 10:53 #24
LEGO (Billund), I live in Vejle.
Avatar billede banelars Nybegynder
30. november 2001 - 10:58 #25
Det er ikke en dårlig ting at have mange \"klodser\" (brikker), at flytte rundt med.

Hvem ved måske kommer jeg til Vejle og omegn en dag.

Endnu engang tak for nu.

Lars.
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