Avatar billede ktp Nybegynder
29. maj 2001 - 15:24 Der er 5 kommentarer

Luk SubDataSheet

Hej,
Er der nogle der ved om der findes en kommando for at lukke et SubDataSheet.
Problemmet er at når jeg hopper fra en formular over i en anden, og index felterne fra begge formulare passer sammen, men hvis jeg har åbent mit SubDataSheet i den ene formular, og så vender tilbage til den igen, kan den ikke finde index feltet, fordi SubDataSheet stadig er åben. Derfor vil jeg gerne sikre mig at SubDataSheet er lukket når jeg skifter formular.
30. maj 2001 - 10:39 #1
Du kan sætte Subformens Sourceobject til ingenting:

F.eks.:

Me![Underformular].Sourceobject = \"\"

Efterfølgende skal du så sætte den tilbage til det oprindelige, når du skal bruge den:

Me![Underformular].Sourceobject = \"NavnPåUnderformular\"

/Thomas
Avatar billede ktp Nybegynder
30. maj 2001 - 17:06 #2
Hej Thomas
Det har jeg prøvet, men det lukker den ikke af, den fjerner bare dataen.
31. maj 2001 - 14:23 #3
Øh, hvad mener du helt konkret med at den bare \'fjerner\' data? Og hvad mener du præcist, når du siger, at den skal lukkes?

Mener du i virkeligheden bare, at posten skal gemmes?

undskyld min tungnemhed ;o)

/Thomas
Avatar billede ktp Nybegynder
31. maj 2001 - 19:36 #4
Hej Thomas !
Jeg vil prøve forklare det mere detaljeret.
Jeg har en form med en TabControl.
TabControl.Value=0 har en kontoplan og TabControl.Value=1 har et kontokort.
TabControllerne er synkroniseret, dvs. at hvis jeg står på en konto i kontoplanen og skifter over på kontokortet, så finder den automatisk den pågældene konto, og selvfølgelig også den anden vej rundt.
I TabControl.Value=0 har jeg en subform med et SubDateSheet for et se posteringer på de enkelte kontoer, når jeg så ønsker at skifte til TabControl.Value=1 og her finder på at bladre i mine kontokort, hvorefter jeg igen vælger TabControl.Value=0, så kan den ikke finde den konto som den er synkroniseret med, fordi SubDateSheet stadig er åben.
Så det korte og det lange er, at når jeg vælger TabControl.Value=0 så skal SubDataSheet lukke.
Jeg har prøvet med kommandoen: SendKeys \"^+{UP}\" men det virker ikke helt efter hensigten.
Jeg har prøvet flere forskellige ting, men uden held.
Jeg har en stor erfaring i VBA, så det er ikke der det halter, men det nogle gange har man bare stirret sig blindt på et problem. Det er netop derfor jeg prøver at skrive her på Eksperten.
Håber du har en ide.

Mvh.
KTP
01. juni 2001 - 10:13 #5
Hvordan er underformularene linket til hovedformularen? (er der overhovedet et link?)

Jeg har tidligere bakset lidt med synkroniseringsproblemer i tab-controls. Og jeg tror at din fejl må ligge der.

Jeg har her et eksempel, som virker i DAO (det virker desværre ikke helt i ADO, da Access ikke konsekvent benytter ADO i sine formularer men rent faktisk stadig benytter DAO internt! Derfor roder den selv rundt i begreberne, hvis man forsøger at køre rent ADO i dette eksempel.) Du skal altså lave en reference til DAO, hvis det du benytter Access 2000

Her kommer det:

Private Sub Tab_Change()
    Dim rs As Recordset
    Select Case Me!Tab
        Case 0
            Set rs = Me!SubDateSheet1.Form.RecordsetClone
            rs.FindFirst \"ID = \" & Me!SubDateSheet2!ID
            Me!SubDateSheet1.Form.Bookmark = rs.Bookmark
        Case 1
            Set rs = Me!SubDateSheet2.Form.RecordsetClone
            rs.FindFirst \"ID = \" & Me!SubDateSheet1!ID
            Me!BSubDateSheet2.Form.Bookmark = rs.Bookmark
    End Select
End Sub

ID er selvfølgelig nøglefeltet i tabellen.

Denne kode lægger jeg på Tab_Change og den synkronisere uden at brokke sig (har lige prøvet!)

Jeg håber, at du kan bruge eksemplet til noget.

/Thomas
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