09. september 2004 - 15:44Der er
22 kommentarer og 2 løsninger
Acc97: Form-opdatering inden modul koeres
Hejsa
Jeg har en lille popup form ved opstart af databasen som chekker for opdateringer i backend-tabeller. Hvis data er opdateret skal der overfores og beregnes data til en lokal tabel hvilket tager lidt tid hvor der kaldes et modul. Derfor ville det jo vaere rart at kunne opdatere en besked paa formen om status. Derfor smed jeg et label ind paa formen. Men koden eksekveres aabenbart saa hurtigt i starten at formen ikke vises foer disse gennemloeb er foretaget, hvilket tager 2-30 sekunder. Koden ligger i Load-eventen for formularen og jeg har forsoegt mig med Me.Refresh/Me.Repaint efter at have opdateret Me.LblStatus.Caption, men der sker stadig ikke noget. Nogle ideer? Skal koden flyttes fra onLoad eller er der en anden maade at sikre at teksten vises?
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
ok nu vises formen ok naar der strtes op, men koden bliver ikke eksekveret under Activeate - hvad skal jeg smide i laod-eventen for at faa det sparket igang?
sjap - ideen med timer virker. Den naeste smaa-irriterende ting der sker er at jeg gennem modulet eksekverer en stak SQL kald. Det lader til at SQL-kaldene ikke bliver faerdige inden popuppen lukket og viser den naeste skaerm.
Mit kald er:
..... For i = 1 To 3 If LocalD(i) < ServerD(i) Then TBName = "TblZoo" & i Me.LblStatus.Caption = "Updating Zooplankton part " & i Me.Refresh DoEvents PreParsing.RunUpdates (TBName) End If Next i
DoCmd.OpenForm "STA_splash"
DoCmd.Close acForm, "Loadscreen", acSaveNo End Sub
Det lader ikke til at den venter paa at preparsing.Runupdates() er faerdig inden den maser videre i koden hvilket resulterer i at STA_splash vises mens den stadig er igang med at opdatere tabellerne. Er der en nem maade at faa den til at vente paa at runupdates er faerdig?
PreParsing.RunUpdates (TBName) Den er ny for mig, den har jeg ikke hørt om, så den kender jeg ikke. Hvis det f.eks. var kald af almindelige forespørgsler, så ville den vente indtil forespørgslen var kørt inden den fortsætter afviklingen af koden.
ok PreParsing.RunUpdates er en sub i modulet Preparsing, som gennemkoeres for tre tabeller. I denne sub gennemkoeres en tabel, og resultaterne overfoeres til to andre tabeller efter der er udfoert en raekke beregninger paa dem. Saa hvis jeg kalder RunUpdates(TBName) vil jeg koerer en lang raekke INSERT INTO kald baseret paa tabellen TBName til to andre tabeller (Dette goeres for at gore plotting hurtigere paa de beregnede felter naar brugeren har loadet). Problemet er at det lader til at alle INSERT-kaldene i RunUpdates ikke er afsluttet for koden vist ovenover fortsaetter.
Hmm det ved jeg ikke - som dig plejer jeg ikke rigtigt at bruge DoEvents, men siden Me.Lblstatus.Caption ikke blev opdateret uden proevede jeg at inkludere den hvilket virkede fint for at faa det sk*de label opdateret :-) Men jeg ved ikke om det er den der laver ged i kaldene til min sub nu...
Hvis jeg fjerner DoEvents vises der ikke nogen aendringer i label - Men til gengaled korer den koden faerdig inden den henter den naeste form!!! Saa nu er jeg rundt regnet lige vidt :-D
Jeg tror jeg er naaet til et stadie hvor jeg kan bytte lidt rundt paa tingene og faa en ok - loesning, men konklusionen er nu sjovt nok stadig at det lader til at introduktionen af DoEvents resulterer i at koden i PreParsing ikke bliver koert helt faerdigt inden der retuneres til Formens kode. Koden eksekveres dog stadigt korrekt.
Ja jeg tror ikke lige det bliver brugbart i denne sammenhaeng idet jeg jo egentligt ikke bruger Shell her - eller andre steder i opstarten - men tak for tilbuddet
Synes godt om
Ny brugerNybegynder
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.