[VBA] Vreemde programmeerconstructie *

Pagina: 1
Acties:

  • nextware
  • Registratie: Mei 2002
  • Nu online
Goedemiddag tweakers,

Door het vertrek van een collega heb ik de nobele taak op mij gekregen om een door hem geschreven programma te gaan beheren. Nu loop ik tegen een vreemd verschijnsel aan:

Een onderdeel van de code van het programma'tje is als volgt:

code:
1
forms![BEZOEKER]!totaalnummer=rst!totbeznummer


Soms loopt het programma vast. Als ik dan een debug uitvoer, krijg ik de melding dat deze regel niet correct is. Als ik deze dan verander in:

code:
1
2
x=rst!totbeznummer
forms![BEZOEKER]!beznummer=x


Dan werkt het programma weer. Als ik dan een paar dagen later deze code weghaal en de originele code terugzet, werkt het weer.

Ik heb geen enkel idee hoe dit komt. Wellicht dat iemand van jullie mij kan vertellen wat er nu precies gebeurd. Ik weet dat een uitroepteken in VB een collection lookup doet. Maar om nou drie collection lookups te laten doen in 1 syntax, lijkt mij zelf een beetje teveel van het goede.

Het gaat trouwens over een klein programma'tje om bezoekers in een dagopvangcentrum te registeren. Werkt onder Access 2000.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
VB != VBA ;)
Kleine titlefix dus ;)

En volgens Waar hoort mijn topic? hoort je topic dan in OFF ;)

Oh, en (top of my head) het lijkt er op of er in de forms collectie een form "bezoekers" wordt gezocht met daarop een control "totaalnummer". Maar ik zie in je eerste voorbeeld "totaalnummer" en in je tweede voorbeeld "beznummer" :?

[ Voor 113% gewijzigd door RobIII op 09-08-2007 18:26 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Ik hoop dat hij iets meer informatie geeft dan alleen 'deze regel is niet correct'. Het enige wat ik me zo voor kan stellen is dat er iets mis gaat bij de conversie van de variabelen, bv in het geval dat je Null waarden probeert te lezen / schrijven.
Een ander hikgeval kan zijn dat in Access de verwijzing form![index] ambigu is als een control dezelfde naam heeft als een onderliggend veld.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • nextware
  • Registratie: Mei 2002
  • Nu online
Lustucru schreef op donderdag 09 augustus 2007 @ 22:13:
Ik hoop dat hij iets meer informatie geeft dan alleen 'deze regel is niet correct'. Het enige wat ik me zo voor kan stellen is dat er iets mis gaat bij de conversie van de variabelen, bv in het geval dat je Null waarden probeert te lezen / schrijven.
Een ander hikgeval kan zijn dat in Access de verwijzing form![index] ambigu is als een control dezelfde naam heeft als een onderliggend veld.
Deze morgen nog maar eens even gekeken. Daarbij nogmaals een debug uitgevoerd. Daarbij kreeg ik dus de volgende "foutmelding":

Syntax error near '!'

:? :?
Geen idee wat er dus aan de hand is.
*zucht* wordt dus weer een boek erbij pakken en programmeren is al niet mijn sterkste vak

Verwijderd

is er een frontend/backend opsplitsing aangebracht?
in de eerste voorbeeldcode verwijs je naar !totaalnummer control/veld, in het tweede naar !beznummer om dezelfde informatie in te brengen.

  • nextware
  • Registratie: Mei 2002
  • Nu online
Nee, er is geen front / backend splitsing aangebracht.
Het hele registratie programma draait op ons netwerk.

Nogmaals, ik heb het niet geprogrammeerd. Een ex-collega van ons heeft het gemaakt, maar de documentatie is totaal nergens te vinden. Dus daarom ben ik dag voor dag bezig om het programma te ontleden en op sommige punten te verbeteren.

Echter is bovengenoemd punt kom ik niet uit.

  • Witte
  • Registratie: Februari 2000
  • Laatst online: 17-07 15:44
Ik vind het hele dubieuze code.
Je plaatst in een veld op een of ander formulier een waarde uit een recordset. Deze constructie wijst er op dat dat formulier, waarop dit veld wordt ingevuld, niet het actieve formulier is (het formulier waarbij deze code hoort). Dat is gevaarlijk, aangezien je bijvoorbeeld niet weet of het formulier wel geopend is. Of hoort deze code bij een modaal formulier, dat vanuit het formulier 'BEZOEKER' wordt geopend.

Als de alternatieve code (met x = ) gewoon werkt, gebruik die dan!

Houdoe

Pagina: 1