[Access] Keuze uit keuzelijst opent betreffende record.*

Pagina: 1
Acties:
  • 153 views sinds 30-01-2008

  • MrMartinH
  • Registratie: Juni 2001
  • Laatst online: 29-07-2024
Ik weet dat deze vraag vaker geweest is en ik heb betreffende topics ook doorgespit maar ben nog niet tot een werkende oplossing gekomen en ook google hielp me niet veel verder.

Goed ik heb dus een keuzelijst (persoonslijst) en een knop (bekijken). Als ik dus een persoon selecteer uit de keuzelijst en dan op de knop bekijken klik dan moet er een ander form (Personen) worden geopend waar het desbetreffende record word getoont. nouja je snapt het idee.

nu heb ik deze code uiteindelijk:

code:
1
2
3
4
5
6
Private Sub bekijken_Click()

DoCmd.OpenForm "Personen", , , "[Persoonsgegevens.Auonummer]=" & Me.bekijken & "'"
DoCmd.Close

End Sub


Nou krijg ik een foutmelding:

Deze eigenschap of methode word niet ondersteund door dit object.

Vervolgens kom ik weer in de vb editor en maakt hij de hele eerste zin geel.

Signature


  • Pyrowired
  • Registratie: Februari 2004
  • Laatst online: 05-01-2025
Als je een verwijzing maakt naar een veld op je formulier hoef je die in access 2K niet extra aanhalingstekens te gebruiken.

code:
1
2
3
4
5
6
Private Sub bekijken_Click()

DoCmd.OpenForm "Personen", , , "[Persoonsgegevens.Auonummer]= forms![formuliernaam]![veld_met_waarde]"
DoCmd.Close

End Sub


zou dan moeten werken.

b.t.w haal je wel de waarde uit het juiste veld?

aangezien je sub bekijken_click heet, mag ik aan nemen dat de knop om het formulier te openen bekijken heet.
Het commando om het formulier te openen verwijst dan naar de knop i.p.v. het veld waar de waarde vandaan moet komen.

Zolang de zon schijnt, blijf ik binnen.


Verwijderd

DoCmd.OpenForm ......."ID-veld = " & Me.Lijst.Column(0)
Lijst.Column(0) moet dan wel een numerieke waarde zijn!

  • MrMartinH
  • Registratie: Juni 2001
  • Laatst online: 29-07-2024
Sorry voor de wat late reactie, had wat pc probs hier.

Goed heb nu deze code

code:
1
2
3
4
5
Private Sub bekijken_Click()

DoCmd.OpenForm "Personen", , , "[Persoonsgegevens.Autonummer]= forms![Personen]![Achternaam]"

End Sub


Deze opend dus het forumulier "Personen" maar laat daar een leeg scherm zien en geeft aan dat er maar 1 record aanwezig is (zijn er toch echt meer).

Als ik de 2e code gebruik van tjiba krijg ik een error:

code:
1
2
3
4
5
Private Sub bekijken_Click()

DoCmd.OpenForm "Personen", , , "[Persoonsgegevens.Autonummer]= forms![Personen]![Achternaam]" & Me.persoonslijst.Column(0)

End Sub
Fout 3075 tijdens uitvoering:

Syntax error (missing operator) in query expression "Persoonsgegevens.Autonummer]= forms![Personen]!Achternaam](achternaampersoon)".
Dit is ovigens mijn reverentie van een andere database vaninternet waar het wel werkt

code:
1
2
3
4
5
6
7
8
9
10
Private Sub ShowRecord_Click()
'Find a selected record, then close the search dialog box

    DoCmd.OpenForm "frmSalespersonContact", , , _
        "[tblSalespersonContact.strSalespersonID]=" & "'" & Me.lstSearch.Column(0) & "'"
    
    'Close the dialog box
    DoCmd.Close acForm, "frmListBoxSearch"
    
End Sub


Maar dit werkt bij mij dus niet, dan krijg ik dus de fout uit mijn post hierboven.

Signature


  • Boss
  • Registratie: September 1999
  • Laatst online: 24-07 08:05

Boss

+1 Overgewaardeerd

In deze code:
code:
1
DoCmd.OpenForm "Personen", , , "[Persoonsgegevens.Auonummer]=" & Me.bekijken & "'"

zit een taalfoutje. Weet niet of dat je probleem oplost, maar de & "'" op het einde is niet goed. Zo sluit je iets af met een quote, wat niet geopend is met een quote. Als je er het volgende van maakt, werkt het misschien wel?
code:
1
DoCmd.OpenForm "Personen", , , "[Persoonsgegevens.Auonummer]=" & Me.bekijken

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

zet er een statement voor:
MsgBox "[Persoonsgegevens.Auonummer]=" & Me.bekijken & "'"

Kijk of het selectiekriterium er gezond uitziet. Is Auonummer in de tabel een numeriek veld, dan moet je ....=4711 zien. Is het een text veld dan moet je ....='4711' zien.

  • MrMartinH
  • Registratie: Juni 2001
  • Laatst online: 29-07-2024
Verwijderd schreef op 23 mei 2004 @ 13:09:
zet er een statement voor:
MsgBox "[Persoonsgegevens.Auonummer]=" & Me.bekijken & "'"

Kijk of het selectiekriterium er gezond uitziet. Is Auonummer in de tabel een numeriek veld, dan moet je ....=4711 zien. Is het een text veld dan moet je ....='4711' zien.
Het hoort Autonummer te zijn is idd een typfoutje van mij, maar dat geeft verder niks, Autonummer is dus idd numeriek.

Ik zal bovenstaande dingen strax even proberen bedankt voor reacties.

Signature


  • MrMartinH
  • Registratie: Juni 2001
  • Laatst online: 29-07-2024
Beide keren krijg ik de fout uit mijn eerste post.

:'( :'(

Signature


  • Pyrowired
  • Registratie: Februari 2004
  • Laatst online: 05-01-2025
Mischien een optie om eens met andere type aanduidingen te werken.

' " & staat nl voor een variabele die als tekst wordt gebruikt en & " & staat voor een long integer (zoals bij autonummers).
en met #"& kan je een datum variabele met je sql statement mee geven.

Zolang de zon schijnt, blijf ik binnen.


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

NukeZz schreef op 19 mei 2004 @ 23:18:
code:
1
DoCmd.OpenForm "Personen", , , "[Persoonsgegevens.Auonummer]=" & Me.bekijken & "'"
Dolletjes :+. Behalve de tikfout en de losse quote staat er nog een syntaxfout in: als persoonsgegevens een tabel is en autonummer de naam van het veld moeten de haken zo (of helemaal niet) staan: [persoonsgegevens].[autonummer]. Haken omsluiten een object naam en zijn in principe alleen nodig als er speciale tekens in een veld/tabelnaam voorkomen.
En nu maar hopen dat me.bekijken een numerieke waarde oplevert ;)

[ Voor 77% gewijzigd door Lustucru op 24-05-2004 23:20 ]

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


  • MrMartinH
  • Registratie: Juni 2001
  • Laatst online: 29-07-2024
Ok ik ben nu zover dat ik het half werkend heb.

Deze code

code:
1
2
3
4
5
Private Sub bekijken_Click()

DoCmd.OpenForm "Personen", , , "[Autonummer]=" & Me.persoonslijst

End Sub


Voor de duidelijkheid "Bekijken" is dus de knop waarop geklikt word om de code actief te maken. "Personen" heet het form dat geopend moet worden waar alle records in staan en "Persoonslijkt" is de listbox waarin een naam word aangeklikt. "Autonummer" is autonummer.

Nou krijg ik geen error meer maar als ik nu een naam aanklik en op "bekijken" klik dan krijg ik een popupschermpje met "Parameterwaarde opgeven" en daarin moet ik dus het juiste nummer van het record (uit de tabel) opgeven. Dit is dus niet helemaal de bedoelling nog maar ik ben al een stap verder.

Signature


  • TheXception
  • Registratie: December 2003
  • Niet online
NukeZz schreef op 25 mei 2004 @ 16:23:Nou krijg ik geen error meer maar als ik nu een naam aanklik en op "bekijken" klik dan krijg ik een popupschermpje met "Parameterwaarde opgeven" en daarin moet ik dus het juiste nummer van het record (uit de tabel) opgeven. Dit is dus niet helemaal de bedoelling nog maar ik ben al een stap verder.
Dan ken ie het veld (de veldnaam) waarop je filtert dus niet. In dit geval dus mijns inziens "[Autonummer]="
Hint: Dat = teken hoort vast niet tussen het Quote-je :+

[ Voor 5% gewijzigd door TheXception op 25-05-2004 16:42 ]

"It's better to burn out, than to fade away"


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

TheXception schreef op 25 mei 2004 @ 16:41:
[...]
Hint: Dat = teken hoort vast niet tussen het Quote-je :+
Doe maar wel :Y)

Even terug naar af:
1: Hoe heet het veld / afh. element op form. personen waarin het persoonsnummer staat?
2: Levert persoonslijst een numerieke waarde? je kunt dat checken door de regel
debug.print me.persoonslijst in je code op te nemen.
(msgbox me.perssonslijst werkt ook; minder mooi)
3: Als je het form personen opent vanauit het databasevenster geeft ie dan zonder vragen alle personen weer?

Alles gecheckt en goed bevonden?

code:
1
2
3
4
5
Private Sub bekijken_Click()

DoCmd.OpenForm "Personen", , , "[TikHierDeJuisteVeldnaam]=" & Me.persoonslijst

End Sub


Werkt! gegarandeerd! :z

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


  • TheXception
  • Registratie: December 2003
  • Niet online
Thanx Niesje... ook ik zit er wel eens naast.
Weet niet alles uit blote hoofd... :9

"It's better to burn out, than to fade away"


  • Zerora
  • Registratie: September 2003
  • Laatst online: 19:34

Zerora

Ik Henk 'm!

Even een kleine kick.

Ik heb de code van Niesje dus ook gebruikt en het werkt prima.
Alleen nu zou ik graag dat ie het formulier in een subform opent in hetzelfde formulier.

Hoe kan ik dat realiseren?

Trans-life! :::: "All things change, whether from inside out or the outside in. That is what magic is. And we are magic too."


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Volgens mij is dit iets compleet anders :)
Wil je runtime het subform-formulier wijzigen of het record zelf? indien het laatste dan is dat standaard functionaliteit, indien het eerste dan zou je de form eigenschap moeten aanpassen. In beide gevallen heeft het niks met dit topc te maken, dus doe je er beter aan je eigen te topic te starten met een uitgebreidere probleemomschrijving in plaats van een kick van 3 jaar.

offtopic:
en niemand die in 3 jaar ziet dat opend met een t moet?

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

Pagina: 1

Dit topic is gesloten.