[Access] Uitgebreid zoekformulier maken

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

Acties:
  • 0 Henk 'm!

  • Millennyum
  • Registratie: Januari 2001
  • Laatst online: 04-05-2023
Ik ben bezig om een uitgebreid zoekformulier te maken voor mijn database. Er moet onder andere aangegeven kunnen worden of er hoofdlettergevoelig gezocht moet worden, in welk veld er gezocht moet worden, of het exacte woord of een deel ervan gezocht moet worden, etc. Verder moet het ook mogelijk zijn om op meerdere zoekcriteria tegelijk te zoeken, bijvoorbeeld: plaatsnaam = Amsterdam EN trefwoord = Zorgsector.

Nu heb ik de volgende code werkend:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Knop44_Click()
On Error GoTo Err_Knop44_Click

    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim strFilterQuery As String

    stDocName = "Fondsen"
    
    stLinkCriteria = "[" & [Forms]![Zoekformulier]![Veld1].Value & "]=" & "[Forms]![Zoekformulier]![Zoektekst1].Value"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Knop44_Click:
    Exit Sub

Err_Knop44_Click:
    MsgBox Err.Description
    Resume Exit_Knop44_Click
    
End Sub

Deze zoekt keurig naar alle records die 'zoektekst1' in het veld 'zoekveld1' hebben staan, en geeft vervolgens een selectie weer van alle records die aan de criteria voldoen.

Maar: ik wil nu er voor gaan zorgen dat er ook meerdere zoektermen tegelijk kunnen worden ingevoerd, en dat er bovengenoemde zoekopties aan meegegeven kunnen worden.
Op de een of andere manier moet ik dat allemaal in stLinkCriteria gaan verwerken, maar ik heb geen idee hoe dat moet en of het wel mogelijk is?

Ik ben na wat zoeken terechtgekomen bij de functie FindRecord. Daarvoor had ik het volgende gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub FindRecord_Click()
On Error GoTo Err_FindRecord_Click

    Dim Criterium As String
    
    Criterium = [Forms]![Zoekformulier]![Zoektekst1].Value

    DoCmd.FindRecord " & Criterium & ", , , , False, acAll, True

Exit_FindRecord_Click:
    Exit Sub

Err_FindRecord_Click:
    MsgBox Err.Description
    Resume Exit_FindRecord_Click
    
End Sub

Maar deze code werkt helaas niet. Misschien omdat ik nergens kan aangeven dat hij in de tabel Fondsen moet zoeken ofzo?
Omdat mijn code bij FindRecord niet werkt, weet ik niet of het resultaat van deze functie wel doet wat ik wil: een selectie openen van alle records die voldoen aan de criteria, en niet alleen de eerste record die hij tegenkomt.

Ook heb ik met parameterqueries zitten klooien. Maar dan krijg je van die invoervakjes achter elkaar. Dat wil ik dus niet, gebruikers moeten alle waarden gelijk in het zoekformulier kunnen invoeren.

Weet iemand of ik op de juiste weg zit? Moet ik DoCmd.OpenForm of DoCmd.FindRecord gebruiken? En / of moet ik iets met queries gaan doen? Ik weet niet zo goed in welke richting ik nu verder moet zoeken om te bereiken wat ik wil.

Ik moet erbij zeggen dat ik niets weet van VB Script, ik ben me er alleen vanwege deze database in gaan verdiepen.

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Heb jij overigens al gekeken naar het onderstaande topic bij The Access Web:

Adding a Search form to a database

Acties:
  • 0 Henk 'm!

  • Millennyum
  • Registratie: Januari 2001
  • Laatst online: 04-05-2023
Euh... ik heb het bestand net bekeken, maar ik heb geen idee wat ik er nu mee moet... :?

[ Voor 3% gewijzigd door Millennyum op 05-11-2004 15:27 ]


Acties:
  • 0 Henk 'm!

  • Millennyum
  • Registratie: Januari 2001
  • Laatst online: 04-05-2023
Misschien is een verduidelijking van mijn vraag handig... het is ook wel een erg grote lap tekst :)
Het komt er op neer dat ik het volgende wil weten:
- Hoe kan ik extra zoek-opties toevoegen bij het gebruik van het commando DoCmd.OpenForm?
of:
- Hoe gebruik ik het commando DoCmd.FindRecord, zodat het doet wat ik wil?
en/of:
- Is het nodig dat ik een query gebruik om te bereiken wat ik wil?

Hoop dat het zo duidelijk is :)

Acties:
  • 0 Henk 'm!

  • Millennyum
  • Registratie: Januari 2001
  • Laatst online: 04-05-2023
Millennyum schreef op 05 november 2004 @ 16:27:
Misschien is een verduidelijking van mijn vraag handig... het is ook wel een erg grote lap tekst :)
Het komt er op neer dat ik het volgende wil weten:
- Hoe kan ik extra zoek-opties toevoegen bij het gebruik van het commando DoCmd.OpenForm?
of:
- Hoe gebruik ik het commando DoCmd.FindRecord, zodat het doet wat ik wil?
en/of:
- Is het nodig dat ik een query gebruik om te bereiken wat ik wil?

Hoop dat het zo duidelijk is :)
Niemand die me iets meer kan vertellen?