gebeurtenis in doorlopend formulier

Status
Niet open voor verdere reacties.

anlag1

Gebruiker
Lid geworden
31 okt 2010
Berichten
144
Hallo allemaal,

In een doorlopend formulier kun je aan de linkerkant een record selecteren.
Is het mogelijk een gebeurtenis hieraan te koppelen?
Dacht het met Form.onClick op te lossen, maar deze is ook actief in het kop en voettekst gedeelte.
ik wil een aantal velden bijwerken van de record die hierdoor geselecteerd wordt.
André
 
Je kunt aan de recordkiezers geen actie koppelen. Zelf vind ik die knoppen behoorlijk irritant, en ik zet ze ook per definitie altijd uit. Niet nodig namelijk. Ben je er zelf wel een fan van, dan kun je ze in dat geval uitzetten (verklaring volgt ;) ) en helemaal links knoppen maken die de werking overnemen. Aan een knop kun je namelijk wèl een actie hangen. Die knop maak je dan qua uiterlijk identiek (of, als je toch de gelegenheid hebt, maak je er iets van wat er nog wel enigszins appetijtelijk uitziet) en je hebt je resultaat.
 
Michel,

Stel dat ik het zo doe zoals je beschrijft, dus de standaard recordkiezer uitzetten en aan de linkerkant een knop maken.
Hoe vertel ik die knop dan welk record is geactiveerd?
 
Da's het makkelijkste stuk...

Code:
Private Sub cmdRecord_Click()
    MsgBox Me.CustomerID
End Sub
 
idd erg makkelijk,
nu wil in het doorlopend formulier de mogelijkheid hebben om 1 kolom te kunnen wijzigen.
wil d.m.v. voorwaardelijke opmaak middels een kleur een aantal velden in deze kolom markeren,
om zodoende in 1 keer een waarde in te voegen.
met de standaard access opmaak heb je 3 mogelijkheden, bij focus komt het meest in de buurt,
maar de kleur verdwijnt weer als een ander veld de focus krijgt.
doe ik hetzelfde met vba dan worden bij een veld selectie alle velden gekleurd.
en das ook niet de bedoeling.
hoe kan ik dit oplossen?
Gr.
André
 
Iets minder makkelijk, maar nog steeds simpel :)
Maak een extra tekstveld op je formulier in kop- of voettekst, en geef die een herkenbare naam (tmpRrecord in mijn voorbeeldje). Geef die een waarde middels de gebeurtenis <Bij aanwijzen> van het formulier:
Code:
Private Sub Form_Current()
    Me.tmpRecord = Me.CustomerID
End Sub
Maak nu voor al je tekstvelden een voorwaardelijke opmaak met deze Expressie:
Code:
[tmprecord]=[CustomerID]
Overigens is het in één keer aanpassen van een aantal velden op basis van een voorwaardelijke opmaak een redelijk ambitieuze klus, als ik dat zo lees ;) Al was het maar omdat je op deze manier maar één record kan markeren, en niet een aantal. Maar vermoedelijk bedoel je dat ook niet met
nu wil in het doorlopend formulier de mogelijkheid hebben om 1 kolom te kunnen wijzigen. Wil d.m.v. voorwaardelijke opmaak middels een kleur een aantal velden in deze kolom markeren, om zodoende in 1 keer een waarde in te voegen.
 
Zou zelf hier het betreffende veld (kolom) in ontwerpweergave selecteren en dan in de Menubalk bovenaan voor voorwaardelijke opmaak kiezen.
 
Dit is via voorwaardelijke opmaak...
 
Wil idd in een doorlopend formulier met kleur aangeven welke velden er in dezelfde kolom gewijzigd moeten worden.
Maar begrijp dat dit niet kan?
 
Mijn code doet het...
 
Michel,
dat zal ongetwijfeld, ik begrijp het niet,
wat moet ik dan met Me.CustomerID, dit veld heb ik niet de tabel?
 
Als je geen voorbeeldje meepost, kunnen we niet veel meer doen dan een voorbeeldje geven met een vergelijkbare situatie. Die moet je dan uiteraard naar je eigen db vertalen. Mijn voorbeeldje heb ik gemaakt op basis van een tabel uit Noordenwind. Zoals ik al zei: ik kan niet veel preciezer zijn als ik geen idee heb hoe bij jou de tabellen er uit zien...
 
ik begrijp het, je hebt gelijk, bij deze een attachment, door in de form op
een veld in kolom length te clicken wordt de waarde uit textvak "Length in mm"
overgenomen, nu wil ik eerst een aantal velden in deze kolom markeren met een voorwaardelijke opmaak
en met een knop de waarde in 1 keer overnemen in de gemarkeerde velden.
 

Bijlagen

anlag1,

Wat is de voorwaarde voor je kolom om deze de kleur blauw te geven, is dat 0 of iets anders.
 
het kleurnummer in het eigenschappenvenster geeft #8EA3BD aan
 
Ik sanp niet wat je aan het doen bent; je wilt eerst een aantal velden markeren? Hoe ga je dat doen? Door ze met een query te selecteren op een bepaalde waarde? Of door ze aan te klikken, zoals je nu eigenlijk ook al doet? En dan? In één keer met een aparte knop bijwerken? Volgens mij doe je dan uiteindelijk méér werk dan nu, want het selecteren moet je toch doen; waarom dan niet gelijk de waarde bijwerken? Wat is, kortom, de winst van het eerst selecteren?
Overigens heb je helemaal verder geen Voorwaardelijke opmaak nodig; als je velden (toch in een kolom trouwens) met selecteren een andere achtergrondkleur geeft, kun je in je recordset alleen die records bijwerken die de gewenste achtergrondkleur hebben. Maar ik snap dus weinig van je procedure :)
 
wanneer een veld wordt geselecteerd volgt er direct een update op de betreffende de waarde te geven. Wanneer er enkele honderden records aanwezig zijn zie in het formulier dat de records worden ververst bij elke update, ik dacht door eerst een selectie te maken van de te wijzigen velden, en deze dan met een knop te updaten het dit te kunnen beperken door maar 1 update te geven voor meerdere records.
 
De reden dat hij sloom gaat worden bij zoveel records, komt natuurlijk doordat je niet één record bijwerkt, maar de volledige recordset. Daar is uiteraard geen enkele reden voor, omdat je maar één veld aanklikt. En dat ene record wilt bijwerken. Dus ik zou die methodiek zeker veranderen. Verder geef je nog geen antwoord op de vraag hoe die bij te werken records (als je alles in één keer doet) moeten worden gevonden/gemarkeerd.
 
Ik dacht dat met kleuren te doen, inmiddels ben ik er achter dat het op die manier moeilijk wordt. misschien is het gebruik van Bookmark wat, weet echter niet of dat hier toepasbaar is, als dat niet mogelijk is weet ik het verder niet en zal ik het "sloom" zijn moeten accepteren.
 
anlag1,

Wanneer verander je in de kolom LENGTH met waarde van txtLngval, als LENGTH 0 is of een andere voorwaarde en wat is deze dan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan