Toon posts:

[Access] Query die parameter van Form moet halen

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

Verwijderd

Topicstarter
Ik heb zojuist een Query in access gemaakt, nu probeer ik een parameter via een form op te halen.

code:
1
2
3
4
PARAMETERS [Forms]![ZoekContact]![ZoekQuery] Text ( 255 );
SELECT [ContactPersonen].[Naam], [ContactPersonen].[Tussenvoegsel], [ContactPersonen].[Voorletter], [ContactPersonen].[TelNummer], [ContactPersonen].[Mobiel], [Locaties].[Vestigingsadres], [Locaties].[Postcode Vestigingsadres], [Locaties].[Plaats Vestigingsadres], [Locaties].[Postadres], [Locaties].[Postcode Postadres], [Locaties].[Plaats Postadres], [Klanten].[Naam], [Klanten].[BrancheID], [Klanten].[KlantStatusID]
FROM Klanten INNER JOIN (Locaties INNER JOIN ContactPersonen ON [Locaties].[LocatieID]=[ContactPersonen].[LocatieID]) ON [Klanten].[KlantID]=[Locaties].[KlantID]
WHERE ((([ContactPersonen].[Naam])=[Forms]![ZoekContact]![ZoekQuery]));


nu krijg ik echter de default popup van access om de parameter in te vullen en niet de form zoals ik zou willen. Ik heb verschillende voorbeelden bekeken die wel prima werken.

Is er ergens een instelling die het niet toe staat om de form te laten zien?

Mvg.
Martin

  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Heb je toevalig een access data project gemaakt?
Volgens mij werkt het dan namelijk iets anders

Verwijderd

Topicstarter
Nee het is gewoon een standaard database.

In een van de samples (Expenses database) werkt het wel, maar ook niet voor alle forms?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 26-07 17:36

NMe

Quia Ego Sic Dico.

Je probleem zit hier niet in je query maar in Access zelf, dus je topic hoort niet hier maar in Officesuites en -software. Dat had je ook kunnen lezen in Waar hoort mijn topic? ;)

PRG>>OFF

'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.


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Je formulier moet geopend zijn voordat je de query runt.

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


Verwijderd

Topicstarter
hmmm.... ik zal nog eens naar het voorbeeld kijken maar volgens mij gebeurd dat daar ook niet.

Ik zal eens kijken of ik er iets om heen kan verzinnen.

Verwijderd

Topicstarter
Ik heb zojuist de code aangepast.

De form wordt geladen voordat een andere form wordt geladen, dit werkt prima. Nadat de tekst is ingetypt wordt de form invisible.

Echter als ik weer het eerder genoemde SQL statement gebruikt, krijg ik weer de standaard box van access om de parameter in te voeren. Zonder het als criteria te gebruiken krijg ik wel eerst de form te zien en daarna pas de resultaten (zonder WHERE statement)

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 24-07 17:37
Het zit hem in de syntax. In je vba code moet je de query aanpassen;

Visual Basic:
1
2
3
strSQL = "SELECT jouw selectie FROM jouw tabel " & _
"WHERE ContactPersonen.Naam= " & Forms!ZoekContact!ZoekQuery & ""
DoCmd.runSQL (strSQL)


Zoiets zou het moeten worden volgens mij; ik zou even je hele code moeten zien om het goed te kunnen bekijken.

[ Voor 7% gewijzigd door Masch op 13-07-2006 08:35 ]

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


Verwijderd

Topicstarter
Mijn query is in de query builder gebouwd, en deel van de form. (Recordsource). Ik heb (nog) geen VBA gebruikt, maar dit zal denk ik wel snel gaan gebeuren.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Als access een inputbox opent voor een parameter dan herkent hij de parameter niet als een geldige verwijzing naar een textbox op een geopend formulier. Nu ben je een beetje vaag in je uitleg: je hebt het de hele tijd over 'de form' maar dan is het maar gokken over welk formulier je het hebt en hoe het heet.

Stap voor stap debuggen dus. ;)
1: zorg ervoor dat het formulie rmet de zoekterm geopend is.
2: Run de query vanuit de querybuilder
3: Controleer nauwkeurig alle namen van formulieren en textboxen.
4: Pas als de query goed functioneert verder gaan met instellen als recordsource voor een ander formulier en het autmatisch verbergen van het formulier met de zoekterm.

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


Verwijderd

Topicstarter
Het probleem is dus zoals je al zegt:

De form moet open zijn, voordat de query loopt. Echter voor het openen van de query moet de form dus handmatig geopend zijn. Ik zal het geheel denk ik wel via VBA gaan maken omdat dit nu niet echt een nette oplossing is.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Ik snap niks van wat je allemaal beweert. Behalve dat het idd technisch nogal nodig is dat het formulier met de zoekterm geopend is voor je een query runt die die zoekterm opzoekt in een db, is het qua ui ook wel handig. Hoe moet een gebruiker anders die zoekterm invullen? Of heb je één formulier dat naar zichzelf verwijst in de recordsource? Dat zal niet werken idd. :X

het zou helpen als je wat duidelijker was over je opzet ;)

[ Voor 9% gewijzigd door Lustucru op 13-07-2006 11:03 ]

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

Pagina: 1