Toon posts:

[Acces] Waarde voor query met fomulier meegeven

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey luitjes!

Ik heb 1 query en 2 formulieren in acces gemaakt:

Query:

SELECT Klant.Klantnummer, Klant.Klantvoorletters,
Klant.Klanttussenvoegsel, Klant.Klantachternaam,
Klant.Klantadres, Klant.Klantpostcode,
Klant.Klantwoonplaats, Klant.Klanttelefoon,
Klant.Terugbellen
FROM Klant
WHERE (((Klant.Klantachternaam)=[achternaam]));

Formulieren:
- Zoek
- Bestelling

Formulier Zoek:
Hier heb ik een textveld in geplaatst die ik 'achternaam' heb genoemd...
Ook heb ik een knop aangemaakt, die de volgende VBcode heeft:

Private Sub zoek_klant_Click()
On Error GoTo Err_zoek_klant_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "bestelling"

stLinkCriteria = "[Klantachternaam]=" & "'" & Me![achternaam] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_zoek_klant_Click:
Exit Sub

Err_zoek_klant_Click:
MsgBox Err.Description
Resume Exit_zoek_klant_Click

End Sub

Formulier bestelling:
Hier heb ik een List Box in geplaatst... deze roept de query die hierboven staat aan... dus er moet 'achternaam' opgegeven worden...

De VBcode in formulier zoek... opent het formulier bestelling en geeft aan dat klantachternaam = achternaam (dus de ingevoerde waarde in het textveld) maar als ik bijvoorbeeld Janssen invoer en op zoek klik dan opent hij bestelling maar ik krijg dan als nog een pop-up waarin ik 'achternaam' moet opgeven...

Maar hij moet de waarde gebruiken die ik in het textveld ingevoerd heb...
Hoe doe ik dit... het zit (zover ik denk) in de VBcode... wat moet ik eraan veranderen!?

Laat het ff weten als het niet duidelijk is!!

  • Bu588
  • Registratie: Maart 2000
  • Laatst online: 22-12-2025
Je moet óf het filteren op de achternaam doen met de query:
code:
1
2
3
4
5
6
7
Dim strSQL as String
strSQL = "SELECT Klant.Klantnummer, Klant.Klantvoorletters, " _
"Klant.Klanttussenvoegsel, Klant.Klantachternaam, " _
"Klant.Klantadres, Klant.Klantpostcode, " _
"Klant.Klantwoonplaats, Klant.Klanttelefoon, " _
"Klant.Terugbellen FROM Klant "_
"WHERE (((Klant.Klantachternaam)='" & Forms!Zoek!achternaam & "'));"

óf met de Where voorwaarde bij het openen van het formulier:
code:
1
DoCmd.OpenForm "bestelling", , , "Klantachternaam = '" & Me!achternaam & "'"

Let op: gebruik enkele quotes (') om een string te markeren binnen een query, dat is makkelijker en duidelijker dan met dubbele werken.

De laatste optie is het makkelijkste, want dan kun je het bestelling form ook nog gebruiken zonder dat het zoek-formulier geopend is.

Nothing is fool-proof to a sufficiently talented fool...