Toon posts:

[VB] datagrid bewerking ongedaan maken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik heb in visual basic een datagrid op een formuliertje die via een ado gekoppeld is aan een access database. So far no problem :-) Nu is de datagrid zo ingesteld dat de gebruiker in staat is om via de datagrid de database te muteren (lees record toevoegen, verwijderen, wijzigen). Als de gebruiker bijvoorbeeld een nieuwe record aanmaakt en wil opslaan dat controleer ik de invoerwaarde, bijvoorbeeld op verplichte velden. Als alles goed is ingevuld dan slaat de datagrid de gevens zelf op in de database en ik sluit het formulier.

Nou komt het probleem:
Iemand voert niet alle verplichte velden in als hij een nieuwe record via de datagrid wil toevoegen. Dan drukt hij op de X van het formulier om het formulier te sluiten. Nu krijg ik dus een foutmelding want voordat het formulier wordt gesloten probeerd hij de record toe te voegen (wat natuurlijk niet kan doordat niet alle verplichte velden zijn ingevoerd) Hoe kan ik het unload event van het formulier onderbreken of er voor zorgen dat ik in het unload event de mutatie die de datagrid wil uitvoeren ongedaan kan maken?

Alvast bedankt

Verwijderd

Kun je in het queryunload event van het formulier niet controleren of alle velden ingevuld zijn.
Als dat niet het geval is: De gebruiker een keus geven (msgbox) om de gegevens aan te passen of weg te gooien.
Als de gebruiker de gegevens wil aanpassen -> cancel = true
Als de gegevens weg gegooid kunnen worden -> gooi het 'probleem' record weg, ssla eventuele andere wijzigingen op en sluit het formulier.

Als cancel op true staat wordt het formulier niet gesloten, de gebruiker kan de gegevens nog aanpassen.

Verwijderd

Topicstarter
inderdaad met cancel op true is het mogelijk om er voor te zorgen dat het form niet kan sluiten. Erg handig, de controle heb ik ook al. Nou zit ik echter nog met een paar kleine dingen.

Is het mogelijk om de record te verwijderen en hoe? Op het moment geeft hij dus een melding welk veldje niet,of niet correct is ingevuld. En door de cancel op true te zetten sluit hij dan niet het venster af. Maar nu moet ik dus alle velden wel invullen tot dat de controle zegt het is ok. Op zich geen probleem, maar wat nou als ik de record toch niet wil invoegen? Hij zegt als ik de record probeer te verwijderen dat dat niet mogelijk is. Het lijkt er op dat hij hem eerst wil opslaan voordat ik hem kan verwijderen. Is er een mogelijkheid om de invoer van het nieuwe record ongedaan te maken? ALthans in ieder geval de record met het * er voor?

bijvoorbeeld iets van datagrid.lastrecord.delete (denk dat dit wel illustreerd wat ik bedoel)

[ Voor 6% gewijzigd door Verwijderd op 20-07-2003 12:25 ]


  • IFASS
  • Registratie: April 2003
  • Laatst online: 15-08 09:14
ik heb zelf ook een database programma geschreven in basic (het was geen slechte want hij word nog steeds door meerdere bedrijven gebruikt) voor klantgegevens. ik had het iets anders aangepakt: een grid, niet aanpasbaar, ernaast had ik dan een paar velden die hetzelfde waren als inhoud database en daarmee kon je op wissen, bewerken, enz. drukken

allez was er mee mogelijk, ook overhevelen naar andere databases, dingen verwijderen, aanpassen, etiketten, enz.

ik zal zometeen een paar screens posten hoe het werkt en ook de source als je wilt.

stay tuned, het komt eraan (kan ff duren, het proggie staat op de pc naast me, en daar zit me zusje op :X 8)7 )

[ Voor 21% gewijzigd door IFASS op 20-07-2003 16:49 ]


Verwijderd

Topicstarter
Is je zusje nog niet van die pc? gewoon tijdelijk het internet er uit! haha

  • IFASS
  • Registratie: April 2003
  • Laatst online: 15-08 09:14
jawel, ze is er af (al een tijdje maar ik was weg, ik zal hier de source neerzetten, en morgen wat screens, doe me een lol, kopieer niet het hele proggie, ik heb ook m'n trots :P)

source (ff hosten nog)

hier is ie: het complete project, gewoon ff compilen of laden in visual basic, mag jij weten :P

http://www.solcon.nl/wvdridder/fixdata.rar

[ Voor 27% gewijzigd door IFASS op 20-07-2003 22:57 ]

Pagina: 1