Avatar billede rosco Novice
24. november 2002 - 12:50 Der er 8 kommentarer og
2 løsninger

Åbne Form "A", Ved samme post Som Form "B" Lukkes med.

Problemet med koden er at "Forside" åbnes filtreret. 
  Dim stDocName As String
  Dim stLinkCriteria As String

  stDocName = "Forside"
  'Åbner "Forside" med samme båndnr Som "Video" lukkes med.
  stLinkCriteria = "[ID]=" & Me![ID]
  DoCmd.OpenForm stDocName, , , stLinkCriteria
  DoCmd.Close acForm, Me.Name
     
  Me.Refresh
Jeg forestillede mig  at jeg kunne bruge
DoCmd.GoToRecord acForm, stDocName, acGoTo,"[ID]=" & Me![ID]    Men den virker heller ikke, så  jeg har bug for hjælp til at rette den til.
Avatar billede mugs Novice
24. november 2002 - 12:54 #1
Åbner "form2" hvor Felt2 er = Felt1 i den form du kommer fra:

DoCmd.OpenForm "Form2"
Forms!Form2!Felt1.SetFocus
DoCmd.FindRecord Me!Felt1
Avatar billede rosco Novice
24. november 2002 - 13:00 #2
Jeg vil at form A er ved Båndnr 2, Når den lukkes Skal Form B Åbne ved Bånd 2
Uden at være filtreret.
Avatar billede mugs Novice
24. november 2002 - 13:05 #3
Der er ingen filter på. Kan sende en testdb i Access97. Fungerer også i 2000 og XP. Blot læg din e-mail.
24. november 2002 - 13:06 #4
Dim rs As DAO.Recordset
    DoCmd.OpenForm "Forside"
    Set rs = Forms!Bog.RecordsetClone
    rs.FindFirst "ID= " & Me!ID
    Forms!Forside.Bookmark = rs.Bookmark
    rs.Close
    docmd.close acform, me.name

(Kræver reference til DAO - kan også laves om til ADO, hvis det er bedre?)
24. november 2002 - 13:07 #5
Der var lige en smutter: i 3. linie skal der stå "Forside" i stedet for "Bog":

    Dim rs As DAO.Recordset
    DoCmd.OpenForm "Forside"
    Set rs = Forms!Forside.RecordsetClone
    rs.FindFirst "ID= " & Me!ID
    Forms!Forside.Bookmark = rs.Bookmark
    rs.Close
    docmd.close acform, me.name
24. november 2002 - 13:10 #6
I Access 2000/XP-version:

    Dim rs
    DoCmd.OpenForm "Forside"
    Set rs = Forms!Forside.RecordsetClone
    rs.FindFirst "ID= " & Me!ID
    Forms!Forside.Bookmark = rs.Bookmark
    rs.Close
Avatar billede dsjk Novice
24. november 2002 - 13:12 #7
Du kan måske bruge en søgefunktion:

Dim Båndnr_id as String

Baandnr_id = Cstr(ID)
DoCmd.close
DoCmd.open "Forside", AcNormal
Forms![Forside]!ID.Setfocus
DoCmd.Findrecord Baandnr_id, , , acSearchAll, , acCurrent


dsjk
24. november 2002 - 13:18 #8
Kommentar:
Ideen med SetFocus og DoCmd.FindRecord er fin nok i mange tilfælde. Men den duer ikke i flere tilfælde:
-Hvis søgefeltet ikke er synligt og aktiveret på formularen (ID-felter skjules ofte, hvis de ikke er relevante for brugeren)
-Hvis der skal søges på en kombination af flere felter (f.eks. fornavn og efternavn) Dette er ikke muligt med FindRecord.

Derfor er 'RecordsetClone'-metoden den sikreste. Den kan tillige udbygges med fejlhåndtering i tilfælde af, at den søgte post ikke kan findes eller hvis der (afhængig af søgefeltet) skulle være flere forkomster.

/Thomas
Avatar billede rosco Novice
24. november 2002 - 14:42 #9
dsjk: da jeg fik rettet dine å/aa , virkede det :)
Thomas: nyttig kommentar, den kan jeg sikkert få brug for i anden sammenhæng
Alle skal have tak for hjælpen. (Jeg sender allle jeg taler med her hen, fin hjælp man får her).
Avatar billede dsjk Novice
24. november 2002 - 15:02 #10
thomasjepsen: Tak for det, så ved jeg det til en anden gang.

rosco: takker fot point

:O)

dsjk
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