Toon posts:

[ACCESS en/of VBA] Auto in/aan vullen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor mijn database voor een sportwedstrijd moet ik deelnemers invoeren die lid zijn van een vereniging. Nu komt het vaak voor dat deelnemers lid zijn vandezelfde vereniging. Ik wil dus een invoervak die eerder ingevoerde verenigingen herkent en aanvult wanneer ik de eerste twee of drie letters invoer.

In een voorbeeld database heb ik gezien dat dit wel mogelijk is maar dit werd gedaan vanuit een lijst. Het zou geen probleem zijn als ik ook een lijst zou gebruiken maar dan wel zonder alle mogelijke sportverenigingen in te voeren.

Is dit mogelijk zonder er een speciale tabel voor te gebruiken?

Het ziet er zo simpel uit maar heb na lang zoeken nog niets kunnen vinden

[ Voor 5% gewijzigd door Verwijderd op 05-01-2007 00:17 ]


  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Ik denk dan aan AutoComplete. Dat al eens door google heen gehaald? Zou fijn zijn als je iets meer details vertelt over de ondernomen zoekacties.

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 16:36

Dido

heforshe

Kun je als bron voor je lijst niet opgeven SELECT DISTINCT kolom FROM tabel; ? Waar je dus verwijst naar de betreffende kolom zelf. Daarbovenop "limit to list" uitzetten, anders kun je niets nieuws toevoegen :)

edit: dit werkt wel, maar je keuzelijst wordt pas geupdate als je opnieuw de tabel ingaat.

Je zou dus eerst alle verschillende verenigingen 1 keer langs kunnen gaan, eruit gaan, opniwue de tabel editten, dan herkent ie alles en vult automatisch aan :)

[ Voor 38% gewijzigd door Dido op 05-01-2007 13:58 ]

Wat betekent mijn avatar?


Verwijderd

Topicstarter
sanfranjake schreef op vrijdag 05 januari 2007 @ 13:50:
Ik denk dan aan AutoComplete. Dat al eens door google heen gehaald? Zou fijn zijn als je iets meer details vertelt over de ondernomen zoekacties.
AutoComplete is inderdaad wat ik wil, heb dit net als vele andere mogelijke benamingen al door google en de help gehaald maar krijg er niets uit. Het enige wat misschien in de buurt zou kunnen komen is de eigenschap IME zinmodus: woordgroep voorspellen maar ik weet niet exact wat dit doet maar tot nu toe iig niet wat ik wil dat het doe. Ben autoComplete niet zelf als eigenschap tegen gekomen. Heb in voorbeelddatabases gezocht (noorderwind) hoe dit daar werd aangepakt maar heb het idee dat dit alleen werkt wanneer het uit een aparte tabel komt.

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 16:36

Dido

heforshe

Verwijderd schreef op vrijdag 05 januari 2007 @ 13:58:
dit alleen werkt wanneer het uit een aparte tabel komt.
Maar je hebt niet geprobeerd om gewoon dezelfde tabel op te geven ;)
Zie hierboven: dat werkt wel, maar met beperkingen.

Wat betekent mijn avatar?


Verwijderd

Topicstarter
Bedankt Dido, dit is precies wat ik zoek. Maar heb nog 1 probleem, hoop niet dat dat een van de beperkingen is. Wanneer ik het formulier open, vervolgens naar een nieuw record ga en bij dit veld een nieuwe vereniging invul moet ik eerst het formulier sluiten om deze nieuwe waarde in de lijst te krijgen. Kan er iets gemaakt worden waardoor de SQL query zich ververst bij het openen van een nieuwe record?

SELECT DISTINCT Deelnemer.Vereniging FROM Deelnemer;

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 16:36

Dido

heforshe

Dat is inderdaad de beperking. Als je inderdaad met een formulier werkt zou je kunnen proberen om bij het save-event (of ergens in die buurt) een me.refresh te doen (of een me.recordset.refresh of zo, moet je even proberen)

[ Voor 15% gewijzigd door Dido op 05-01-2007 14:25 ]

Wat betekent mijn avatar?


  • BertS
  • Registratie: September 2004
  • Laatst online: 13-02 08:33
Doe in de Form_Current een Me.JouwCombobox.Requery, dan gaat het wel goed.
Alleen niet leuk meer als je veel data hebt, maar goed...

Verder: ik heb dit in het verleden ook wel toegepast, maar ben er van af gestapt en het in aparte tabellen gaan doen (en in de hoofdtabel alleen ID's).
Reden: onderhoudbaarheid van de (in jouw geval) verenigingsnamen. Typefouten blijven meegaan. Als ze te laat worden ontdekt, kun je een hele rij records aan gaan passen.
Als beheerder is dat niet zo'n probleem (updatequery), maar voor de gebruiker wel.

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 16:36

Dido

heforshe

BertS: goed punt. Ik werk zelf inderdaad ook met alleen de ID's in de hoofdtabel. Op zich veranderd daarmee de werkwijze om die "autocomplete" te grebruiken trouwens absoluut niet, behalve dat ik meestal afvang dat een nieuwe waarde automatisch in de hulptabel wordt opgeslagen.

Wat betekent mijn avatar?


Verwijderd

Topicstarter
Super!! Dit doet de truc:

Private Sub Keuzelijst_met_invoervak27_AfterUpdate()
Refresh
End Sub

Dit n.a.v. het bericht van Dido om 14.25. Die twee volgende berichten kom ik niet helemaal uit want ben nog redelijk beginnend met ACCESS/VBA.

Kom er eigenlijk ook niet helemaal uit hoe deze refresh functie het probleem oplost. Wat refreshed hij nou precies?

[ Voor 57% gewijzigd door Verwijderd op 05-01-2007 15:32 ]


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Verwijderd schreef op vrijdag 05 januari 2007 @ 00:15:
In een voorbeeld database heb ik gezien dat dit wel mogelijk is maar dit werd gedaan vanuit een lijst. Het zou geen probleem zijn als ik ook een lijst zou gebruiken maar dan wel zonder alle mogelijke sportverenigingen in te voeren.
Vraagje: hoe wil je een autocomplete functie aanbieden die wél de verenigingen kan herkennen, maar die niét ergens in een lijst of tabel hebben staan?

Je kan 'm overigens wel opbouwen uit reeds ingevoerde namen, maar niet ingevoerde namen kunnen dus niet aangevuld worden.

Outlook adresboek aanvullen werkt op dezelfde manier, er wordt een database aangemaakt van reeds ingevoerde adressen, en daaruit kan worden aangevuld.
Verwijderd schreef op vrijdag 05 januari 2007 @ 15:10:

Kom er eigenlijk ook niet helemaal uit hoe deze refresh functie het probleem oplost. Wat refreshed hij nou precies?
Het refreshed je dropdown control zodat de net ingevoerde naam ook te vinden is.

[ Voor 16% gewijzigd door alt-92 op 05-01-2007 20:21 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device

Pagina: 1