Toon posts:

[SQL/VBA] record wijzigen dmv checkbox

Pagina: 1
Acties:
  • 123 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik krijg het niet voor elkaar om dmv een checkbox (een boolean) een record in hetzelfde formulier te wijzigen.

ik heb nu deze regel.

If checkbox = True Then
DoCmd.RunSQL "update tabel1 set prijs = '12' where tabel1.ID = (wat moet hier dan?) ;"
End If
End Sub

Als ik dus de checkbox aanvink dan wil ik dat de prijs in het huidige formulier ge-update wordt.
Ik krijg het alleen voor elkaar om de record "prijs" in de hele tabel te updaten (dus elke prijs wordt geupdate naar 12 als ik ergens de checkbox aanvink), en dat moet niet.

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Is dit met behulp van MS Access? Want als je dan gewoon een koppeling naar een boolean veld in je tabel hebt, wordt er toch al automatisch een update gedaan op de getoonde record?

Verwijderd

Topicstarter
Woudloper schreef op donderdag 17 februari 2005 @ 17:16:
Is dit met behulp van MS Access? Want als je dan gewoon een koppeling naar een boolean veld in je tabel hebt, wordt er toch al automatisch een update gedaan op de getoonde record?
dit is mbv MS Access ja.

Ik heb dus 1 grote tabel, daarbij hoort 1 formulier. Als ik dan op dit formulier een boolean AANvink dan moet de record prijs geupdate worden naar 12 (alleen op het huidige formulier), maar ik krijg het alleen maar voor elkaar om ALLES te updaten (bijv update tabel1 set prijs = '12' where prijs = > '5' ;)

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Dit kan dus alleen als je tabel1 een veld ID heeft. Je vult dan gewoon de waarde voor ID in van de rij waarvan je de prijs wilt aanpassen.

Noushka's Magnificent Dream | Unity


Verwijderd

Topicstarter
Michali schreef op donderdag 17 februari 2005 @ 17:21:
Dit kan dus alleen als je tabel1 een veld ID heeft. Je vult dan gewoon de waarde voor ID in van de rij waarvan je de prijs wilt aanpassen.
juust, dat is wat ik wil, ik heb ook een veld ID (primairy key), MAAR ik wil dus dat alles automatisch gebeurt.

iemand vult zijn formulier in en als hij/zij dan de checkbox aanvinkt dan moet in de HUIDIGE record de prijs aangepast worden naar 12. (alle andere records,velden,tabellen etc moeten dus ongewijzigd blijven).

Oftewel het moet variabel gaan. In die SQL statement moet bij "where id = XX" op de plaats van XX een variabele komen die de ID van de huidige record (die openstaat dus op het formulier) aangeeft.

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
Om wat voor soort applicatie gaat het? Een webapplicatie? Access formulieren?

stp - PSN ID: stp_4


Verwijderd

Topicstarter
Het gaat om dit:

Een leden bestand vanuit Excel heb ik geimporteerd in Acces. Daarna heb ik van die tabel een formulier gemaakt zodat de administratie in de toekomst nieuwe leden via een grafisch formulier kan invullen/toevoegen/wijzigen.

Dit is allemaal al werkend, alleen er moet dus 1 waarde automatisch aangepast worden wanneer ik een boolean aanvink.

In mijn tabel moet dan ook maar 1 waarde gewijzigd worden per keer.
(je moet het ook per record zien, ik heb een klant_id A, daarbij hoort adres A, telefoonnummer A, aantal A, prijs A enz enz. Nou het komt vaak voor dat er bij 1 klant 1 waarde gewijzigd moet worden (bijv 1 klant krijgt een ander telefoonnummer.) Die waarde kun je dan handmatig in je tabel aanpassen.
In mijn geval hoeft er telkens maar 1 waarde gewijzigd te worden , en ALS die gewijzigd moet worden dan is die waarde altijd 12.
Ik wil het dus zo dat ik mbv een formulier, 1 waarde in de tabel aan kan passen.
En dat moet/ga ik doen met een boolean. Als ik die boolean aanvink (in de tabel staat bij klant_id A dus ook boolean A) dan moet de waarde die in "prijs" staat worden aangepast naar 12. (de standaard waarde van dit veld is 5). En ALLE andere records en velden moeten ongewijzigd blijven.

Ik moet dus een soort variable hebben waarin staat: id = <id-waarde van huidige openstaande record>

[ Voor 8% gewijzigd door Verwijderd op 17-02-2005 19:20 ]


Verwijderd

Topicstarter
Iemand nog een idee?

  • Mystiqes
  • Registratie: Juli 2002
  • Laatst online: 26-12-2022
Je kan bijvoorbeeld de ID naar het geheugen laden (int_ID ofzo) of wanneer je gebruik maakt van een Flexgrid laat je zichtbaar of onzichtbaar in de eerste rij tonen.

Wanneer je iets selecteert gooi je het ID naar het geheugen.
Dus bij click dan int_ID= rij 1 (weet zo niet uit mijn hoofd script, zit opt werk). Wanneer je op de boolean klikt gebruik je het script om het te veranderen WHERE tabel.id=int_ID. Dan wijzigt hij alleen je geselecteerde boolean.

Verwijderd

Topicstarter
Mystiqes schreef op vrijdag 18 februari 2005 @ 16:25:
Je kan bijvoorbeeld de ID naar het geheugen laden (int_ID ofzo) of wanneer je gebruik maakt van een Flexgrid laat je zichtbaar of onzichtbaar in de eerste rij tonen.

Wanneer je iets selecteert gooi je het ID naar het geheugen.
Dus bij click dan int_ID= rij 1 (weet zo niet uit mijn hoofd script, zit opt werk). Wanneer je op de boolean klikt gebruik je het script om het te veranderen WHERE tabel.id=int_ID. Dan wijzigt hij alleen je geselecteerde boolean.
Hm klinkt interessant. Maar als ik int_ID = rij_1 doe dan ziet access toch niet dat ik elke keer een andere id wil veranderen?

Verwijderd

Heb je ook de record Id (tabelid, dat uniek is voor elk record) op je formulier staan?

Als je dat hebt dan kan je gewoon je regel die je al had aanpassen aan deze:

If checkbox = True Then
DoCmd.RunSQL "update tabel1 set prijs = '12' where tabel1.ID = Me.LedenID;"
End If
End Sub

Me.LedenID is in jou geval dan de naam van tekstveld wat je op je formulier hebt staan.

Suc6,

Remco

Verwijderd

Topicstarter
Als ik dat doe;

(If checkbox = True Then
DoCmd.RunSQL "update tabel1 set veld = '12' where tabel1.ID = me.veld ;")

dan krijg ik als ik de boolean aanvink een invoervenster en dan moet ik zelf iets invullen.

Maar ik snap niet precies wat ik nu bij " where tabel1.id = me.veld ; " moet invullen. (ik heb verschillende dingne geprobeerd, maar ik kreeg of een foutmelding of ik moest zelf een ID invullen dmv een invoervenster).
Pagina: 1