[VB6] Probleem met updaten gegevens

Pagina: 1
Acties:

  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
Hallo Tweakers

Ik heb een probleempje met m'n applicatie die aan het ontwikkelen ben.

Het zit zo:

Ik heb een invoerformulier aangemaakt waarop ik door middel van verschillende soorten controls (textbox, checkbox, combobox, dtpicker) gegevens laat invoeren.

Deze controls zijn door een ADO DataControl rechtstreeks verbonden met de database. Nu had ik een probleem met de combobox en de dtpicker. Deze gaven bij het opstarten de melding "unable to bind to field or datamember". Na wat opzoekwerk ben ik erachter gekomen dat deze fout zich enkel voordoet als de database leeg is. Ik heb deze kunnen opvangen door deze controls niet rechtstreeks meer aan de database te koppelen maar gebruik te maken van een achterliggend tekstvak dat telkens wordt bijgewerkt nadat de gegevens van de dtpicker of combobox gewijzigd worden.

Als ik nu een nieuwe record toevoeg worden de gegevens perfect opgeslagen. Open ik nu die record opnieuw en wijzig ik de datum of het gegeven in de combobox dan wordt het gekoppelde tekstvak netjes meegewijzigd zoals het zou moeten. Ga ik dan in de database kijken blijkt deze waarde NIET te veranderen. Enkel indien ik zelf het gegeven in het gekoppelde (en normaal verborgen) tekstvak manueel ga veranderen voert hij deze wijziging door in de database. Dit is dus niet de bedoeling natuurlijk vermits ik het programma juist handiger wil maken door die controls te gebruiken.

Ik heb al gespeeld met verschillende instellingen en een paar events geforceerd laten triggeren maar niets helpt.

Iemand enig idee waaraan dit kan liggen? Ik heb geen idee meer.

(hopelijk is m'n uitleg een beetje duidelijk)

  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
Na nog wat uittesten ben ik erachter gekomen dat bij het wijzigen van het tekstvak (nadat ik de dtpicker of combobox gebruikt heb) het validate-event NIET wordt uitgevoerd. Mogelijk ligt hier dus door oorzaak van m'n probleem.

Nu wilde ik dit event zelf triggeren maar kan geen command terugvinden om dit te doen. Is het mogelijk om die event toch uit te voeren zonder dat ik echt in het veld moet gaan klikken?


edit:

m'n excuses voor reply, wilde edit doen maar ben weer te snel geweest :X

[ Voor 12% gewijzigd door Blacksnak op 20-09-2004 13:44 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Blacksnak schreef op 20 september 2004 @ 13:43:
Na nog wat uittesten ben ik erachter gekomen dat bij het wijzigen van het tekstvak (nadat ik de dtpicker of combobox gebruikt heb) het validate-event NIET wordt uitgevoerd. Mogelijk ligt hier dus door oorzaak van m'n probleem.

Nu wilde ik dit event zelf triggeren maar kan geen command terugvinden om dit te doen. Is het mogelijk om die event toch uit te voeren zonder dat ik echt in het veld moet gaan klikken?


edit:

m'n excuses voor reply, wilde edit doen maar ben weer te snel geweest :X
Call txtBox_Validate of me.validatecontrols :?

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


  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
Hier wordt spijtig genoeg ook niet de Validate getriggerd. Voorlopig is het me enkel gelukt door zelf in het veld te klikken (wat logisch is natuurlijk). Alleen is dat natuurlijk niet de bedoeling vermits het maar een hulpveld is en dus niet zichtbaar gaat zijn.

[ Voor 4% gewijzigd door Blacksnak op 20-09-2004 14:21 ]


  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
Niemand een idee? :?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Call txtBox_Validate, zoals ik al zei

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


  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
RobIII schreef op 21 september 2004 @ 17:18:
Call txtBox_Validate, zoals ik al zei
Dit had ik ook al geprobeerd (natuurlijk txtBox vervangen door het juiste tekstvak). Geeft dan gewoon de melding "Sub or Function not defined".

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:52
Je moet ze natuurlijk wel eerst definieren....
Ik denk dat txtBox_Validate een event-handler is, die gekoppeld is aan het 'Validate' event van je textbox. (Althans, ik denk dat RobIII dat bedoeld).

https://fgheysels.github.io/


  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
whoami schreef op 22 september 2004 @ 12:10:
Je moet ze natuurlijk wel eerst definieren....
Ik denk dat txtBox_Validate een event-handler is, die gekoppeld is aan het 'Validate' event van je textbox. (Althans, ik denk dat RobIII dat bedoeld).
Dus gewoon even een lege sub aanmaken met als naam txtBouwjaar_Validate (in mijn geval dan) en die dan aanroepen. Als ik het goed begrijp zou dan automatisch de validate aangeroepen worden?

edit:

Heb het bovenstaande even uitgeprobeerd (als ik natuurlijk het goed begrepen heb :) maar de gegevens worden nog steeds niet geupdate (het validate-event wordt wel uitgevoerd nu). Enkel als ik effectief in het veld klik wordt de wijziging opgeslagen. Zeer vreemd in mijn ogen :?

[ Voor 25% gewijzigd door Blacksnak op 22-09-2004 12:22 ]


  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
Ik ga een laatste keer een pushke geven aan de topic in de hoop toch nog ergens een oplossing te vinden :X

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Wat je -denk ik- bedoelt is dat als je een bound control via code wijzigt dat dan het will_change event van de datacontrol niet wordt getriggerd. Je kunt dat afdwingen door de recordset 0 plaatsen te verplaatsen: datacontrol.recordset.move 0.

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


  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
Niesje schreef op 23 september 2004 @ 23:33:
Wat je -denk ik- bedoelt is dat als je een bound control via code wijzigt dat dan het will_change event van de datacontrol niet wordt getriggerd. Je kunt dat afdwingen door de recordset 0 plaatsen te verplaatsen: datacontrol.recordset.move 0.
Dit is inderdaad de oplossing! Hartelijk dank Niesje!
Pagina: 1