Toon posts:

[VBA / Access] Schakelen van recordset

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ola,

Ik heb het volgende probleem. Ik wil op een formulier tussen recordsets schakelen zonder deze elke keer opnieuw te hoeven laten berekenen. (Dus is wel niet direct de recordsource eigenschap aanpassen).

Het probleem is echter dat zodra ik de recordset van een formulier set, hier niet meer juist requeried. Alle verwijzingen naar objecten (bijv. forms!frmTest!cboIets) worden niet meer up gedate.

Het maakt niet uit wat voor recordset is gebruik:
Set Me.RecordSet = Me.RecordSet

Heeft iemand hier al eerder mee gepield.

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

Boss

+1 Overgewaardeerd

doet
- me.redraw
- me.recalc
- me.requery
allemaal niets?

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.


Verwijderd

Topicstarter
Requery, Refresh, Repaint en Recalc zorgen er inderdaad geen van alle voor dat de recordset word geupdate.

Verwijderd

via me.controls (1 .. me.controls.count).redraw/refresh/repaint kun je de controls individueel refreshen . .. kweenie of het helpt

Verwijderd

Topicstarter
Skizmo heb je uberhoud wel mijn vraag gelezen?

  • FoggyFreek
  • Registratie: Juni 2000
  • Laatst online: 23-07 17:23

FoggyFreek

I'm a llama again!

Waarom maak je niet gewoon een nieuw formulier ?
je wilt switchen van Recordset's op 1 formulier.. waarom niet ff copy-pasten dat formulier. knop maken, en een nieuwe recordset in dat nieuwe formulier gebuiken.

of heeft het een specifieke reden ?

-- Altijd blijven prutsen --


Verwijderd

Topicstarter
Ja dit heeft zeker een specifieke reden.

Ik het een tabel met zo'n 5000 relaties. Elke relatie kan in een onbepaald aantal categorien zitten. Nu moet er een selectie worden gedaan op een categorie. Ik maak hiervoor gebruik van een query met een join tussen de relatie en de categorie. Echter wanneer er geen selectie is wil ik gewoon de tabel gebruiken en niet de query.

Daarnaast werk ik met bewerken, opslaan en annuleren. Daarvoor zet is de gegevens eerst in een lokale tabel waarin de gegevens kunnen worden bewerkt. Bij opslaan zet ik de gegevens terug. Dit mag niet merkbaar zijn voor de gebruiker.

Om niet 100x de zelfde queries te laten uitvoeren (wat nu gebeurd) wil ik de recordsets opslaan.

Dat werkt op het eerste gezicht prima, maar het probleem is dat de recordset van het formulier geheel statisch wordt wanneer ik deze set. Parameters zoals verwijzingen (bijv. Forms!frmTest!txtVeld) behouden de waarde die ze hadden bij het setten. Het formulier valt dus niet meer juist te requerien.

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

Boss

+1 Overgewaardeerd

Ik snap het niet helemaal.
Je hebt een recordset van je formulier (bijv. tabel1) en die zet je via me.recordset = query1 om naar query1. Wat lukt er daarna niet meer?

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.


Verwijderd

Topicstarter
Voorbeeld:

Voor subformulier sfrFactuurRegel heb ik:
code:
1
me.recordsource = "Select * from tblFactuurRegel WHERE fcrFactuurId = Forms!frmFactuur!facId"

Ik doe in sfrFactuurRegel
code:
1
2
3
4
5
6
7
8
9
10
11
dim rstNormaal as recordset
Sub Bewerken()
  Set rstNormaal = me.recordset
  ...
  set me.recordset = currentdb.openrecordset("tblFactuurRegelTijdelijk")
End sub

Sub Opslaan()
  ...
  set me.recordset = rstNormaal
End Sub

In frmFactuur
code:
1
2
3
Sub NaarVolgende()
  call me.recordset.movenext
  call me.sfrFactuurRegel.requery

Nadat ik bewerken/opslaan heb aangeroepen werkt het requerien van sfrFactuurRegel niet meer.
Pagina: 1