Toon posts:

access 2002 dubbelklik record

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

Verwijderd

Topicstarter
beste allemaal,

ik heb een probleem met microsoft access 2002.
ik wil na het dubbel klikken van een record in een subformulier, dat datzelfde record dan geopent word in een ander formulier.
dus ik had netjes bij de gebeurtenis gezet, bij dubbelklik macro uitvoeren.
in de marco staat dat hij een formulier moet openen en dat de WHERE voorwaarde is [forms]![mijnformulier]![het_dubbel_geklikte_veld]=[Caption]
maar dat pakt tie dus niet.
ik denk dat het met script wel kan, maar zo goed ben ik niet in VB.

heeft iemand misschien een oplossing voor dit probleem, want ik heb al gezocht op inet maar kon het niet vinden, of ik heb scheel gekeken B)

alvast bedankt.

  • Boss
  • Registratie: September 1999
  • Laatst online: 09:19

Boss

+1 Overgewaardeerd

geen macro gebruiken, en toch gewoon VBA een beetje leren. Het is niet zo heel moeilijk. Maak maar eens een knop met een wizard, en bekijk dan de code die erachter zit. Moet je een heel eind mee komen.

Wat staat er in het veld 'caption'?

Kijk anders in de VBA help even verder onder Docmd.OpenForm

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

Topicstarter
ik ben nu dus indd verder gegaan met VB te proberen en ik ben een aardig eindje gekomen, zie onderstaande code.
alleen als ik nu dubbel klik dan krijg ik eerst nog een pop-up box van acces waar ik in kan voeren wat stTitel moet zijn :| als ik hier de text invoer gaat hij wel netjes gefilterd naar het formulier.
en als ik de msgbox laat lopen krijg ik ook netjes de inhoud van het veld te zien.

code:
--------------------------------------------------------------
Private Sub acttitel_DblClick(Cancel As Integer)
Dim stDocName As String
Dim stLinkCriteria As String
Dim stTitel As String

stDocName = "invoerict"
stTitel = acttitel.Text
'MsgBox ("de inhoud is: " & sttitel)

stLinkCriteria = "acttitel = stTitel"
DoCmd.OpenForm stDocName, , , stLinkCriteria
End Sub
--------------------------------------------------------------

iemand misschien een idee, waarom ik dit pop-up je eerst nog krijg?? :?

  • Boss
  • Registratie: September 1999
  • Laatst online: 09:19

Boss

+1 Overgewaardeerd

Dit gaat natuurlijk fout:
stLinkCriteria = "acttitel = stTitel"

Je wil de waarde van de variabele stTitel meegeven, niet de letterlijke tekst "stTitel".

Probeer eens:
stLinkCriteria = "acttitel = " & stTitel

dan werkt het wel.

Overigens gebruikt Access bij die wizards veel te veel code. Je kan het ook zonder al die rare variabelen doen, met 1 regel:
DoCmd.OpenForm "invoerict", , , "acttitel = " & stTitel

is iets netter qua geheugengebruik :)

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.


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

moeten daar geen aanhalingstekens omheen bij een string?
stLinkCriteria = "acttitel = ' " & stTitel & " ' "

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


  • Boss
  • Registratie: September 1999
  • Laatst online: 09:19

Boss

+1 Overgewaardeerd

vergeten :D

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

Topicstarter
ik was ff aan het carnavallen dus had er niet meer naar gekeken.
maar ik ben er weer aan begonnen en heb allebei de mogelijkheden geprobeerd, zowel:

stLinkCriteria = "acttitel = ' " & stTitel & " ' "
DoCmd.OpenForm stDocName, , , stLinkCriteria

als

DoCmd.OpenForm stDocName, , , "acttitel = " & stTitel

maar bij allebei krijg ik foutmelding 3075, "sysntaxfout (operator ontbreekt) in de query expressie .......", bij het uitvoeren.
waarschijnlijk heb ik weer ergens overheen gekeken, maar ik heb ook gezocht in de VB help bij vergelijkings operatoren en daar staat ook dat deze syntax goed is ( =, is gelijk aan) :|

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

IS actttitel de naam van een veld in de onderliggende query/tabel of is dat de naam van een parameter?

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


  • apophis4u
  • Registratie: Oktober 2002
  • Laatst online: 01-09 21:02
Je kan het ook nog op 2 andere manieren doen:

A
het formulier dat je opent heeft standaard een verwijzing naar het criterium in de record waar je dubbel op klikt. Nadeel hiervan is dat je dat formulier dan alleen nog maar voor die functie kan gebruiken.

B
Door middel van een Query op te slaan die als filter fungeert en die in de where conditie in de macro in te voeren. Staat me iets van bij dat die where conditie alleen een query kan gebruiken als filter.

Ik denk dat dit eenvoudigere oplossingen zijn dan met VBA aan de gang te gaan. Hoewel het VBA natuurlijk mooier en misschien beter/ efficienter zal werken.

Een specialist weet veel van weinig en leert steeds meer van steeds minder, tot hij uiteindelijk alles weet van niets.


Verwijderd

Topicstarter
acttitel is een veld in de tabel invoerict.


ik wil het nu graag afmaken in VBA ik ben er bijna, ik heb het eerst ookal geprobeerd met query's en marco's maar dat werkt ook niet lekker.
als deze fout eruit is zou hij het al moeten doen, dus ga ik niet weer helemaal terug naar query's en macro's

  • apophis4u
  • Registratie: Oktober 2002
  • Laatst online: 01-09 21:02
Verwijderd schreef op 24 februari 2004 @ 15:51:
acttitel is een veld in de tabel invoerict.


ik wil het nu graag afmaken in VBA ik ben er bijna, ik heb het eerst ookal geprobeerd met query's en marco's maar dat werkt ook niet lekker.
als deze fout eruit is zou hij het al moeten doen, dus ga ik niet weer helemaal terug naar query's en macro's
Groot gelijk en ik denk dat je daar ook meer van leert. Alleen weet ik dat ik het vrij eenvoudig werkend heb gekregen zonder gebruik te maken van VBA

Ik denk dat ik namelijk voor de optie van de query zou gaan. Ik selecteer de record die ik wil. Bouw daar een query op. Sla deze op. En maak dan de macro die on double click wordt gestart en het formulier met die query als filter opent.

That's it. Denk dat je het in 10 mins gefixd kan hebben afhankelijk van de complexiteit van je filter :)

Maar succes met VBA, daar ben ik zwaar noob in :Y)

Een specialist weet veel van weinig en leert steeds meer van steeds minder, tot hij uiteindelijk alles weet van niets.


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op 24 februari 2004 @ 15:51:
acttitel is een veld in de tabel invoerict.
Even terug uit de kroeg ;) Dan zou het gewoon moeten werken als invoerict de tabel onder het formuliier invoerict is, tenzij.... invoerict ook het formulier is van waaruit je de procedure aanroept? dan gaat het inderdaad hartstikke mis op deze manier.

Is trouwens ook niet eens zo moelijk op te lossen. Post maar of dit het probleem is, of kijk eens in de vragen en antwoorden voorbeeld database die ms meelevert bij access.

Post anders even de exacte tekst van je foutmelding, met name het stuk na 'in queryexpression'. Of doe even een debug.print of messageboxje van sLinkcriteria en post het resultaat.

offtopic:
Denk niet voor morgen laat in de ochtend dit ding nog aan te zetten. al vinden sommigen het een lomp feest :)

[ Voor 14% gewijzigd door Lustucru op 24-02-2004 18:10 ]

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


Verwijderd

Topicstarter
okee, ik zal ff proberen een duidelijke omschrijving te geven :)

ik probeer een soort van helpdesk registratiesysteem te maken, waar je kan zien welke actiepunten nog openstaan enzo, en door dubbel te klikken op de actietitel moet dan het bijbehorende formulier worden geopend.

de opbouw is als volgt:
ik heb een formulier "startupict".

dit formulier bevat een subformulier genaamd "form_lopend_ict" (deze wordt weergegeven als een tabel zodat je alle actiepunten onderelkaar ziet staan)

dit subformulier haalt zijn gegevens uit de query "query_lopend_ict", die op zijn beurt de gegevens weer haalt uit de tabel "actiepunten"


als er dubbel wordt geklikt op de acttitel in het subformulier "form_lopend_ict" moet het formulier "invoerict" worden geopend, met als voorwaarde dat de acttitel in het formulier "invoerict" gelijk is aan de acttitel waar dubbel op geklikt is in het subformulier "form_lopend_ict"
(het formulier "invoerict" en "form_lopend_ict" halen allebei hun gegevens uit de tabel "actiepunten")


bij het dubbelklikken op acttitel van het subformulier "form_lopend_ict" heb ik de volgende gebeurtenisprocedure staan:

*************************************
Private Sub acttitel_DblClick(Cancel As Integer)

stDocName = "invoerict"

DoCmd.OpenForm stDocName, , , "acttitel = " & stTitel
End Sub
*************************************

maar, als je nu dus dubbel klikt op de acttitel in het subformulier "form_lopend_ict" dan krijg je de volgende foutmelding:

------------------------------------------------------------

fout 3075 tijdens uitvoering:

Syntaxfout (operator ontbreekt) in query-expressie acttitel = geen internet en geen email mogelijk.

------------------------------------------------------------

het aangeklikte veld heet: "geen internet en geen email mogelijk", dus zo te zien neemt hij dat wel gewoon netjes over, maar waar struikelt hij dan over :?

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

As said before: tekstreeksen moeten tussen quotes. ('):

DoCmd.OpenForm stDocName, , , "acttitel = '" & stTitel & "'".

En terzijde: dit gaat fout als twee topics dezelfde titel hebben. Je kunt beter gebruik maken van een uniek ID (bvk numeriek, dan mag je ook die ' ' weglaten en is ook sneller ook)

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


Verwijderd

Topicstarter
jaaaa hij doet het :D

bedankt allemaal _/-\o_

het kwam doordat ik spaties had tussen me kwoots en dan herkend hij de titel natuurlijk niet 8)7

----------------------------------------------------------------------
DoCmd.OpenForm stDocName, , , "acttitel = ' " & stTitel & " ' ".
----------------------------------------------------------------------

maar ik ga indd toch maar het storingsnummer gebruiken ipv de titel ;) .

bedankt.
Pagina: 1