Toon posts:

[Access] '@' gebruiken in zoekstring*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem: ik bouw aan de hand van een aantal criteria een query op. Vervolgens open ik een formulier door de query als RecordSource in te stellen.

Dit verhaal gaat in de meeste gevallen goed, behalve als er een @ staat in een veld waarop gezocht moet worden. Dan wordt het gedeelte achter het @ als parameter gezien. Ik heb geprobeerd om het @ te escapen met de volgende karakters maar tevergeefs: blackslash, quote, @.

Weet iemand een manier om ervoor te zorgen dat ik wel op een @ kan zoeken? Voor de duidelijkheid hier het betreffende stukje code:

& " AND Email LIKE '%" & Trim(!inpEMail) & "%'"

waar inpEMail het textveld is waarop gezocht moet worden

[ Voor 14% gewijzigd door Verwijderd op 02-06-2006 14:19 ]


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

NMe

Quia Ego Sic Dico.

Waar hoort mijn topic?
Vragen over Access horen in Officesuites en -software. ;) Daarnaast pas ik je titel even aan naar iets dat iets meer zegt over je probleem. ;)

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.


  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 11:07

Gonadan

Admin Beeld & Geluid, Harde Waren
Ik vond met google iets van tussen [ en ] plaatsen.
Probeer dat eens? :)

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Verwijderd

Topicstarter
Nee, helaas

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 11:07

Gonadan

Admin Beeld & Geluid, Harde Waren
Met sql kan je dit: WHERE ... LIKE '___#____' ESCAPE '#'
doen, dat kan dan ook werken voor @.
Maar ik ben bang dat access dat weer niet ondersteund :/

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Verwijderd

Topicstarter
Nee, ook dit werkt helaas niet. De query is volgens mij wel goed, maar gaat het fout bij het instellen als RecordSource

[ Voor 59% gewijzigd door Verwijderd op 02-06-2006 14:44 ]


  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 11:07

Gonadan

Admin Beeld & Geluid, Harde Waren
en ""@"" ?
(idee van maat van me ;) )

dan dus die dubbele dubbele quotes om de hele zin, dan neemt hij het letterlijk ofzo :)

[ Voor 64% gewijzigd door Gonadan op 02-06-2006 14:47 ]

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Verwijderd

Topicstarter
Ook niet :(

Als ik zoek op iemand@domein.nl wordt nog steeds gevraagd om een parameter. Bij de eigenschappen van het formulier staat bij de Invoerparameters:
? = domein.nl%'"

De dubbele dubbel aanhalingstekens werken niet, de laatste worden gewoon deel van de parameternaam..

[ Voor 24% gewijzigd door Verwijderd op 02-06-2006 15:02 ]


  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 11:07

Gonadan

Admin Beeld & Geluid, Harde Waren
En nu raak ik ook gefrustreerd :(

offtopic:
Op zich heeft -NME- gelijk dat hij in OFF hoort maar ik denk toch dat je meer kans maakt in PRG. Omdat daar meer mensen zitten die Access daadwerkelijk gebruiken. :)
Ik doe wel even een TR

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


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

NMe

Quia Ego Sic Dico.

Gonadan schreef op vrijdag 02 juni 2006 @ 15:01:
offtopic:
Op zich heeft -NME- gelijk dat hij in OFF hoort maar ik denk toch dat je meer kans maakt in PRG. Omdat daar meer mensen zitten die Access daadwerkelijk gebruiken. :)
Ik doe wel even een TR
offtopic:
Nee, die zitten juist in Officesuites en -software. In Programming zitten voornamelijk mensen die SQL kennen, en daar heb je hier niets aan.

'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

Beetje vaag dit. Is dit vba of een andere omgeving waarbinnen je verbindt met een access-database? Heb je het over een access formulier? Als dit VBA binnen Access zou moeten zijn werkt het namelijk sowieso niet; het jokerteken voor 0 of een of meer willekeurige tekens is binnen access '*'. En hoe bedoel je de query als recordsource instellen? Bedoel je de SQL tekststring, of heb je ergens een querydef staan, waarvan je de sql aanpast en is dat de recordsource?

Doe eens een debug.print van je opgebouwde sql string. Als je where conditie keurig tussen quote's komt zal die door Access altijd als literal behandeld worden.


offtopic:
Het idee van een TR is nu net dat je dat niet hoeft te melden in een topic 8)7. En waarom Access gebruikers niet in OFF zouden rondhangen is helemaal een tikje uhm vreemd. En o, ja ze weten ook iets van SQL :+

[ Voor 9% gewijzigd door Lustucru op 02-06-2006 18:55 ]

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


Verwijderd

Topicstarter
Het gaat om een Access database die aan een MS SQL server hangt, de opdrachten worden door VBA verwerkt. Er is een Access formulier waar de zoekopties kunnen worden ingegeven. Als het commando 'Zoeken' wordt gegeven wordt een ander Access formulier geopend.

Hier worden de opties uitgelezen en de query opgebouwd. Als dit gedaan is wordt de RecordSource van het subformulier aangepast, door een tekststring, om zo de resultaten weer te geven.

Ben nu thuis dus kan nu even niet debuggen. Als ik het me goed herinner is de query gewoon goed maar gaat het fout op het moment dat het als RecordSource wordt ingesteld. Zal dit zo snel mogelijk even nakijken.

Verwijderd

Topicstarter
Ben er nu weer even mee bezig geweest. De SQL-string ziet er gewoon keurig netjes uit:
... AND Email LIKE '%iemand@domein.nl%' AND ...

Maar toch staat nu de eigenschap InvoerParameters van het subformulier ingesteld op de volgende string nadat de SQL-string als RecordSource is ingesteld:
? = domein.nl%'

Weet niemand een oplossing?

[ Voor 15% gewijzigd door Verwijderd op 08-06-2006 12:05 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Zo te zien is dat dus T-SQL, en afaik moet je daar het escape-karakter expliciet bij opgeven.

Voor de duidelijkheid: heo heb je precies die Access database aan je back-end gehangen?

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


Verwijderd

Topicstarter
Het gaat om een Access project dat aan een MS SQL server hangt. Het vreemde is dat als ik de SQL-string als losse query gebruik er niks aan de hand is en het goede resultaat geeft. Blijkbaar gaat heb pas fout bij het instellen als RecordSource.

De oplossing die ik nu gebruik is niet heel netjes, maar voorkomt dat het fout gaat. Ik vervang het @ door een wildcard %. Probleem nu is alleen dat er veel meer resultaten terugkomen...

[ Voor 89% gewijzigd door Verwijderd op 08-06-2006 13:05 ]

Pagina: 1