Update van een tabel via een combo box

Status
Niet open voor verdere reacties.

Marcel4831

Gebruiker
Lid geworden
25 mei 2021
Berichten
21
Geachte,

Ik kan een tabel "Tijdstip" updaten zodat het aangeduide uur geen twee keer kan gebruikt worden.
Dit is de code die ik gebruik:

Private Sub CmbUur_Click()
DoCmd.SetWarnings False
CurrentDb.Execute ("UPDATE TblTijdstip SET IsInactive = True WHERE TijdstipID = " & Me.CmbUur.Value)
DoCmd.SetWarnings True
End Sub

Dat werkt gedeeltelijk, in die zin dat pas na het uitstappen en terug starten van de Form de update is uitgevoerd.
Wanneer ik in de form blijf en een volgende lijn wil invullen is de update nog niet doorgevoerd zelfs al werd de code bij on Click geactiveerd.
Welke code moet ik toevoegen of deze aanpassen zodat de update onmiddellijk wordt uitgevoerd?

M.v.g.
Marcel
 
Er moet nog een Me.Requery bij. Nu pas je de tabel aan, maar wordt het formulier niet ververst. Dat werkt, zonder Requery, nog met de oude dataset.
 
Geachte Octafix,

Ik heb de code aangepast als volgt:

Private Sub CmbUur_Click()
DoCmd.SetWarnings False
CurrentDb.Execute ("UPDATE TblTijdstip SET IsInactive = True WHERE TijdstipID = " & Me.CmbUur.Value)
Me.Requery
DoCmd.GoToRecord A_FORM, "FrmBestelling Klantenkeuze", A_NEWREC
DoCmd.SetWarnings True
End Sub

De toevoeging van Me.Requery heeft geen effect behalve dat ik een lijn moest toevoegen om direct naar een nieuw Record te gaan i.p.v. naar het begin van de records.
Hebt U een andere suggestie?

M.v.g.
Marcel
 
Ik vind de volgorde van je code niet handig, maar daar zou het niet aan mogen liggen. We zien denk ik te weinig, want ik weet zo niet hoe de keuzelijst is opgebouwd. Bij mij werkt deze constructie altijd prima. Maar wellicht ben je een stukje vergeten te vertellen. Als je de bron van een keuzelijst bijwerkt, dan moet je die bron verversen. Normaal gesproken werk je de ene keuzelijst bij vanuit een andere keuzelijst, en daar heb je de naam niet van gegeven. Dan hou ik de code dus algemeen. Stel dat je de keuzelijst cmbUur wilt bijwerken, dan ziet je code er zo uit:
Code:
Private Sub CmbUur_Click()
     DoCmd.SetWarnings False
     CurrentDb.Execute ("UPDATE TblTijdstip SET IsInactive = True WHERE TijdstipID = " & Me.CmbUur.Value)
     DoCmd.SetWarnings True
     Me.cmbUur.Requery
End Sub
Heb je een andere keuzelijst bijgewerkt, dan uiteraard daar de naam van geven.
 
Geachte Octafish,

Hartelijk dank voor de suggestie.
De code werkt zoals ik verwacht had.

M.v.g.
Marcel
 
Da's mooi; mag je de vraag op <Opgelost> zetten :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan