Access - Requery na het editen van data via een class

Pagina: 1
Acties:

  • Tinoo
  • Registratie: Januari 2005
  • Laatst online: 09-01 16:14
Het volgende probleem: Ik heb een MS-Access database waarin ik mbv diverse class modules data
wegschrijf naar de verschillende tabellen. Werkt allemaal prima alleen nu doet zich het volgende
probleem voor:

Als ik vanuit een form de class aanroep om data weg te schrijven en vervolgens een .requery op het
desbetreffende control uitvoer, gebeurt er nada. Als ik dit nog een keer doe (of nog een keer) wordt alles wel goed weergegeven.

Kan iemand mij uitleggen hoe dit kan? Maken die classes gebruik van een ander proces waardoor de requery sneller wordt uitgevoerd dan het wegschrijven van de data? (da's mijn gok) En wat doe ik hier aan?

  • Boss
  • Registratie: September 1999
  • Laatst online: 12:18

Boss

+1 Overgewaardeerd

offtopic:
waarom in goedsnaam allemaal classes gebruiken?


Ik gok dat er een verschil zit tussen een requery op een control en een requery op het form.
Requery op het control zal waarschijnlijk niet automatisch het laatste record ophalen van het form. Misschien dat dat na de 2e keer om een of andere reden wel het geval is?

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • Tinoo
  • Registratie: Januari 2005
  • Laatst online: 09-01 16:14
Helaas, dat is het ook niet. De form is unbound, net zoals alle controls. Het enige wat ik wil dat recordsource van bijvoorbeeld een listbox opnieuw gevuld wordt na het wegschrijven van de data.

Private Sub btnToevoegen_Click()
Dim iAnswer As Integer

If mObjPersoon.Isdirty Then
iAnswer = MsgBox("De wijzigingen zijn nog niet opgeslagen" & vbCrLf & _
"Nu opslaan?", vbYesNo, "Persoon opslaan")
If iAnswer = vbYes Then
mObjPersoon.Save
DoEvents
Me.lstPersoon.Requery
End If
End If


Bijvoorbeeld in de bovenstaande code is mObjPersoon de class, deze wordt met .Save weggeschreven waarna de listbox met personen opnieuw gevuld dient te worden, maar dat doet ie dus niet. (Die DoEvents had ik er voor de zekerheid maar even tussengeprutst)

(Hoe krijgen jullie die code trouwens mooi op deze pagina's)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Tinoo schreef op woensdag 19 januari 2005 @ 23:20:
(Hoe krijgen jullie die code trouwens mooi op deze pagina's)
offtopic:
Met [code] tags. Je kan ook een taal opgeven, bijvoorbeeld [code=vb] voor Visual Basic. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Probeer eens de write-cache van Access te flushen met het statement
code:
1
  DBEngine.Idle DBRefreshCache

  • Tinoo
  • Registratie: Januari 2005
  • Laatst online: 09-01 16:14
Verwijderd schreef op donderdag 20 januari 2005 @ 10:49:
Probeer eens de write-cache van Access te flushen met het statement
code:
1
  DBEngine.Idle DBRefreshCache
Getverredemme, Het werkt!! Bij deze dank ik u
Pagina: 1