Avatar billede ds-zim Nybegynder
04. oktober 2000 - 15:18 Der er 22 kommentarer og
1 løsning

Behandle hel samling (collection) med 1 kommando

R D muligt at opdatere en hel samling af formularer med fx. Allforms.Requery ?!?
Jeg har luret lidt på hjælpfilen og den påpeger at for kunne referere til et object
i en samling, skal man benytte dets nummer, altså i stil med Allforms(0).Requery !
Er det ikke muligt at opdatere hele samlingen, altså alle formularer ?
Eller er det lavet sådan for at kunne kende forskel på loaded/ikkeloaded forms ?
Avatar billede nolle_k Nybegynder
04. oktober 2000 - 22:58 #1
Du kan gøre følgende!



Dim a as Form

For each a in Allforms
  a.Requery
next
Avatar billede ds-zim Nybegynder
09. oktober 2000 - 11:22 #2
  Dim TEMP As Form
  For Each TEMP In AllForms
    TEMP.Repaint
  Next

  Dim TEMP As Form
  For Each TEMP In AllForms
    TEMP.Requery
  Next

Jeg har prøvet de to ovenstående kommando\'er til at opdatere objectet, men jeg får fejlen \'Object Required\' :(
Avatar billede moses Praktikant
12. oktober 2000 - 10:33 #3
Hvad med

Dim TmpForm as Form
For each TmpForm in AllForms
  Forms(TmpForm).Requery
Next

Avatar billede ds-zim Nybegynder
12. oktober 2000 - 10:48 #4
Hmm, jeg får stadig \'Object Required\' *SkUmLe* i linien (*)

Dim TmpForm as Form
For each TmpForm in AllForms (*)
  Forms(TmpForm).Requery
Next

Jeg har hele tiden været overbevist om, at det er .Requery man bruger til at opdatere
formularer. Til gengæld har jeg mig mit mas med at præcisere objectreferencen :)
Avatar billede nolle_k Nybegynder
12. oktober 2000 - 10:48 #5
Jeg antog bare at AllForms var en samling, du selv havde oprettet!

Prøv at skifte AllForms ud med Forms

Dim a as Form

For each a in Forms
  a.Requery
next 
Avatar billede nolle_k Nybegynder
12. oktober 2000 - 10:49 #6
Men det kræver jo at Requery er en metode, der findes på formen!! Refresh findes i hvert så prøv med den metode!
Avatar billede moses Praktikant
12. oktober 2000 - 10:50 #7
Og så den testede:

Dim db As Object
Dim TmpObject As AccessObject

Set db = Application.CurrentProject

For Each TmpObject In db.AllForms
    If TmpObject.IsLoaded = True Then
        MsgBox TmpObject.Name
    End If
Next
Avatar billede moses Praktikant
12. oktober 2000 - 10:55 #8
Jeg kan af min test se, at der ikke er tale om forms, men AccessObjects.
Disse har kun følgende properties:

FullName
IsLoaded
Name
Parent
Properties
Type
Avatar billede nolle_k Nybegynder
12. oktober 2000 - 11:02 #9
Spørgsmålet er jo egentlig hvad den collection, der skal bruges, indeholder??

Er det forme eller hvad er det ds-zim??
Avatar billede moses Praktikant
12. oktober 2000 - 11:02 #10
Derfor er LØSNINGEN:

Dim db As Object
Dim TmpForm As AccessObject

Set db = Application.CurrentProject

For Each TmpForm In db.AllForms
    If TmpForm.IsLoaded = True Then
        Forms(TmpForm.Name).Requery
    End If
Next
Avatar billede nolle_k Nybegynder
12. oktober 2000 - 11:03 #11
Så ville jeg mene at

Dim a as Form

For each a in Forms
  a.Requery
next 


er lige så god hvis ikke bedre!

Avatar billede moses Praktikant
12. oktober 2000 - 11:03 #12
Lidt MicroKryptologisk snak:

Because an AccessObject object corresponds to an existing object, you can\'t create new AccessObject objects or delete existing ones.
Avatar billede nolle_k Nybegynder
12. oktober 2000 - 11:04 #13
Den er da mere forståelig!

Men hvis det ikke er ligepræcis dette der skal opnåes hvilket jeg efterhånden ikke har den fjerneste ide om så skidt da!
Avatar billede ds-zim Nybegynder
12. oktober 2000 - 11:07 #14
Så den endegyldige konklusion må være, at man ikke (ved hjælp af denne metode)kan opdatere
en hel samling af formularer!

Tak for hjælpen !

Zim
Avatar billede ds-zim Nybegynder
12. oktober 2000 - 11:11 #15
DOH! Fik først set de nye kommentarer efter at jeg lukkede spørgsmålet :(
Avatar billede ds-zim Nybegynder
12. oktober 2000 - 11:15 #16
Hmm, right on Nolle_k .. Beklager jeg ikke fik fat i din pointe i rette tid :(
Du har seføli\' også fortjent point for en præcis besvarelse .. Nyt spørgsmål ?
Avatar billede nolle_k Nybegynder
12. oktober 2000 - 11:22 #17
Nej skidt med det du!!

Men du fik løst dit problem eller hvad??
Avatar billede moses Praktikant
12. oktober 2000 - 11:25 #18
Jamen det kan du da have så evigt ret i !!

Jeg har nok blandet to ting sammen:
ds-zim spørger om hele samlingen af forms, så derfor startede jeg ud med AllForms.
Men det giver jo ikke rigtig nogen mening at udføre en Refresh eller en Requery på en lukket form !!?!?!
Så derfor må der være tale om Forms istedet.

nolle_k\'s præcis 50 tegns løsning svaret.

Avatar billede moses Praktikant
12. oktober 2000 - 11:29 #19
HOV !!
Ja det er det her asynkrone chat.

Jeg takker, men de point skulle nolle_k nu have haft så dem får han lige på et nyt spørgsmål.
Avatar billede nolle_k Nybegynder
12. oktober 2000 - 11:32 #20
OK!!! Jeg er sgu snart faldet helt af men jeg formoder at jeg får kastet en stak point i nakken eller hva?
Avatar billede ds-zim Nybegynder
12. oktober 2000 - 12:21 #21
Klarer du den Moses ?
Avatar billede moses Praktikant
12. oktober 2000 - 13:00 #22
Har klaret.
Avatar billede nolle_k Nybegynder
12. oktober 2000 - 13:01 #23
Har fået dem!
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
Kurser inden for grundlæggende programmering

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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel