Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[access 2003] Zoeken aan de hand van ingegeven nummer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor een kennis ben ik een access database aan het bouwen, een soort van kleinschalig administratiepakket.

Nu loop ik tegen het volgende aan:

Ik heb een formulier met de volgende velden:

- Artikelnummer
- Artikelomschrijving
- Aantal op voorraad
- Leverancier

Wanneer ik via het schakelbord dit formulier open in bewerkingsmodus, wil ik graag een volledige record zien als ik het artikelnummer invoer. Dus, als ik bij Artikelnummer 0001 invul, dat omschrijving, voorraad en leverancier automatisch worden aangevuld met de juiste gegevens.

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

alt-92

ye olde farte

En ik wil de 100.000 winnen :+

Maar wat had je zelf in gedachten?
Klinkt namelijk alsof je een lookup wil doen in een subform die de gegevens ophaalt aan de hand van je artikelnummer (zo, dat zijn alvast wat hints ;) )

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


Verwijderd

Topicstarter
dank voor de hints :) Ik zal hier eens mee verder zoeken.. Ik had zelf nog niet veel in gedachten, aangezien ik nou ook weer niet een ster ben in Access...

Verwijderd

Verwijderd schreef op zaterdag 28 maart 2009 @ 16:56:
dank voor de hints :) Ik zal hier eens mee verder zoeken.. Ik had zelf nog niet veel in gedachten, aangezien ik nou ook weer niet een ster ben in Access...
Hey
Dat is toevalling dat heb ik net even uitgezocht.
Dit kun je op een paar manieren doen. ik heb de volgende gebruikt:
Een invoervak gemaakt de wizard doorlopen, en daarna achter het invoervak bij eigenschappen daarna bij het tabblad gebeurtenis kies je "Na Bijwerken" dar ga je naar de programma code en voer het het volgende script in.


' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Order ID] = " & Str(Nz(Me![Keuzelijst met invoervak29], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark

Die pas je aan waar op je wilt zoeken dus het order ID en de naam van jou keuze vak vul je in en klaar.
Als het goed is met het dan werken, let wel op het invoervak moet niet in de detials van de form staan maar in de formulierkoptekst.

Ik hoop dat je hiermee verder kan

Verwijderd

Topicstarter
Hey,

Ik heb dit even geprobeerd, maar wanneer ik artikelnummer bijwerk, krijg ik de melding "Typen komen niet met elkaar overeen"

Ff googlen!

Verwijderd

Werkt DLookup niet veel handiger?

=DLookup("[naam van het veld waaruit je een waarde terug wilt krijgen]";"[naam van je tabel]";"[naam van het veld waarin de waarde staat waarop je zoekt]=[Forms]![naam van je formulier]![naam van het veld in je formulier waar je zoekwaarde in staat]")

Zo zou ik het in ieder geval doen.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

dlookup is traag en heeft de nare eigenschap readonly te zijn. ;)

Om een formulier te openen op een bepaald record / naar een bepaald record te gaan staan er in principe vier wegen open:
1) filter meegeven in de docmd.openform regel;
2) het formulierfilter instellen in de Afterupdate event van een control
3) bookmark instellen zoals nachtlamp het doet maar dan zonder die syntaxfout
code:
1
2
3
rs.FindFirst "[Order ID] = " & Me![Keuzelijst met invoervak29])
óf
rs.FindFirst "[Order ID] = '" & Me![Keuzelijst met invoervak29] 7 & "'")

afhankelijk of orderID numeriek of tekst is.
4) Formulier recordsource instellen op query met where voorwaarde

Afhankelijk van de grootte van de recordset is 3 of 4 i.h.a. de aangewezen weg.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Je kunt inderdaad ook
SQL:
1
SELECT [veld1], [veld2], [veld3], ..., [veldn] FROM [naam van je tabel] WHERE [referentieveld in tabel]=[naam formulierveld]
als recordsource gebruiken voor je formulier. De overige velden kun je dan gewoon vullen door het betreffende veld bij Besturingselementbron te selecteren.
Nog een tip: om je velden automatisch te updaten bij wijzigingen in je referentieveld, een gebeurtenisprocedure linken aan het refentieveld onder After_Update (na bijwerken):

code:
1
Me.Requery


En anders steeds Shift+F9 drukken... ;)
Pagina: 1