[VBA/Access] Form vullen aan de hand van een query*

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

  • Dysan
  • Registratie: December 2003
  • Niet online
Ik zit helemaal vast,

ik heb een bestaande tabel met artikelen met daarin de standaard velden artikelnummer enz.
Nu wil ik een leeg formulier maken, waar de gebruiker in een van de velden een (gedeeltelijke) waarde invult & vervolgens op een zoek knop drukt.
vervolgens moet het formulier dan gevuld worden met alle records die aan de (gedeeltelijke) waarde voldoen.
Volgens mij moet dat met een soort Recordset, maar tot op heden kan ik nergens duidelijke info over vinden
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
Dim Abbonr As Long

DoCmd.Hourglass True

waarde = zoekomschrijving.Value

strSQL = "SELECT ARTIKEL_NR, OMSCHRIJVING "
strSQL = strSQL & "FROM Artikelen "
strSQL = strSQL & "WHERE OMSCHRIJVING LIKE 'hier de waarde'"

Set db = CurrentDb()
Set rst = db.OpenRecordset(strSQL)

rst.MoveFirst


dit lijkt mij tot heden goed, maar hoe krijg ik nu de gegevens in het formulier?

Het idee is dat de mensen dus kunnen zoeken in een artikeldatabase op gedeeltelijke artikelnummers, omschrijving e.d. vervolgens uit de resultaten een bepaald record (lees artikel) kiezen wat vervolgens in een andere tabel wordt toegevoegd.

alle idee's zijn welkom

Im Not A Vacuum Cleaner, Thats DysOn


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Waarom neem je op het formulier waarop gezocht kan worden geen grid op waarin je de resultaten van de query laat zien. Of je opent een nieuw venster met de resultaten, wat jij netter vindt. Als de gebruiker daarna een record selecteerd kun je de actie uitvoeren die nodig zijn. Als je ook op gedeeltelijke artikelnummers wilt zoeken zou ik ook jokertekens (procentteken) in de 'hier de waarde' zetten (denk dat dat ook in access wel moet).

www.fendt.com | Nikon D7100 | PS5


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Je maakt een subformulier dat een standaard opmaak dataset verwacht en dat laat je zien met jouw query als record-bron? Volgens mij ben je dan klaar....

My personal website


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Titlefix, "[ACCESS]SQL" is nogal nietszeggend. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Kijk ook eens naar de standaard functionaliteit van "Filter by form" en "Advanced filter". Misschien doet dit al wat je bouwen wilt.

  • Dysan
  • Registratie: December 2003
  • Niet online
OZ-Gump schreef op vrijdag 08 april 2005 @ 15:43:
Je maakt een subformulier dat een standaard opmaak dataset verwacht en dat laat je zien met jouw query als record-bron? Volgens mij ben je dan klaar....
dat is ook goed, een subformulier lukt mij wel, maar hoe geef ik op dat de bron die dataset is?
ik neem aan dat mijn geposte code ergens een dataset aanmaakt met een bepaalde naam.

Im Not A Vacuum Cleaner, Thats DysOn


  • Dysan
  • Registratie: December 2003
  • Niet online
Is al gelukt, heb het sub geen bron gegeven formulier, en de velden de namen van de velden v/h recordset en de volgende code toegevoegd
Visual Basic:
1
Set Forms("zoeken").Recordset = rst

toppertje :)
toch niet

Heb het getest in hetzelfde formulier maar niet in de subform, hier geeft hij nu een foutmelding dat hij het formulier niet kan vinden ;(
gewoon het subform openen als nieuw form gaat het goed


mag op slot

[ Voor 44% gewijzigd door Dysan op 08-04-2005 16:59 ]

Im Not A Vacuum Cleaner, Thats DysOn


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Heb je het formulier wel eerst aangemaakt in code? Laat eens zien hoe je een en ander in elkaar hebt zitten en waar je wat aanroept.... Als je de code in het subform hebt zitten zou je bijvoorbeeld me.RecordSet kunnen gebruiken.

Zo wordt het moeilijk om hier iets over te zeggen natuurlijk.

[ Voor 19% gewijzigd door OZ-Gump op 08-04-2005 16:50 ]

My personal website


  • Dysan
  • Registratie: December 2003
  • Niet online
id. met me. gaat het goed, deze code toegevoegd en is in orde :)

Visual Basic:
1
Set Me.ZOEK_SUB.Form.Recordset = rst


nu alleen nog uitvinden hoe het recordset gewist kan worden als men in het scherm komt

Im Not A Vacuum Cleaner, Thats DysOn

Pagina: 1