Fout melding na opnieuw openen access database

Status
Niet open voor verdere reacties.

Tjoekkie

Gebruiker
Lid geworden
1 okt 2015
Berichten
6
Goedemorgen,

Aller eerst ben ik geen pro op het gebied van Access. Ik heb mezelf wat dingen aangeleerd waardoor ik naar mijn idee een database heb kunnen maken welke voldoet aan mijn wensen.

FYI: ik werk in Access 2007

Mijn database bestaat enkel uit tabellen, query's, formulieren en wat ingesloten macro's.

Ik gebruik mijn formulier om een zoek opdracht te maken, welke wordt uitgevoerd door query, de uitkomst komt uit de tabellen.

Ik selecteer een zoekwaarde doormiddel van een drop-down. klik op de knop om de bijbehorende query te starten. de criteria in die query haalt hij uit de keuzelijst van het formulier.

Dit alles werkt prima. Maar zodra ik mijn database opsla, afsluit en opnieuw open werkt dit niet meer. ik vul de zoek opdracht weer in, klik op de knop en dan krijg ik de parameter box naar voren. hij snapt niet meer wat de expressie is in de criteria van de query.

kan iemand mij uitleggen hoe dit kan?

Mocht mijn verhaal onduidelijk zijn hoor ik het graag dan probeer ik het beter uit te leggen.

Mvg,

Ruud
 
aanvulling:
ik heb 6 verschillende zoek query's

Bij opnieuw openen van de database doet niet 1 het

Verander ik de keuzelijst naam van 1 zoek funcite (bijv: Keuzelijst_kweker wordt Keuzelijst_kweker1)
ik verander dit ook in de criteria van de zoek query (bijv: [Forms]![frm_home]![keuzelijst_kweker] wordt [Forms]![frm_home]![keuzelijst_kweker1])

En alles werkt opeens weer...

Maar dit moet ik dus iedere keer doen als ik de database open, iemand een idee waarom?

mvg

Ruud
 
Allereerst welkom bij HelpMij :).
In beginsel is een criterium als [Forms]![frm_home]![keuzelijst_kweker1] een harde (zeg maar: keiharde) verwijzing. Als je iets verandert aan je formulier (naam van het formulier, naam van de keuzelijst) dan werkt de query al niet (goed) meer. Hij werkt nog prima, want je kunt nog steeds een waarde intypen; mits die waarde klopt, zal de query goed worden uitgevoerd.

Het criterium dat je hebt gemaakt moet je zien als een parameter: Je zou in een willekeurig veld ook een parameter kunnen maken als: [Typ hier de achternaam van de klant:]. Voer je de query dan uit, dan zie je een inputbox met de tekst: "Typ hier de achternaam van de klant:". Die vul je dan in, je drukt op OK en voilà, je hebt je resultaat.
Zodra dus één van de aspecten van je formulierveldverwijzing verandert is en je past dat niet in de query aan, dan kan Access dat specifieke object (tekstvak, keuzelijst etc) niet meer vinden en 'vertaalt' het criterium dus naar een inputbox.
Dit alles zou allemaal helemaal niet voor mogen komen als je, zoals je zelf al meldt, zowel het formulier aanpast en opslaat als de query hebt aangepast en opgeslagen. Dus mij verbaast het wel dat je de wijzigingen niet terugziet als je de db opnieuw opent. Ik zou zeggen: probeer de db mee te posten, dan kunnen we het zelf bekijken. Want ik heb er geen verklaring voor, en dus ook geen oplossing!
 
OctaFish ik hoop dat onderstaande meer duidelijkheid geeft. anders zal ik het bestand uploaden.

llCmKAq.png
 
Je (prima uitgebreide) toelichting voegt jammer genoeg niks toe (voor mij dan) aan je eerste berichtje, want dit is inderdaad precies zoals je het al had beschreven, en zoals ik het had begrepen. Zoals ik al zei: als je een formulier afsluit, en je verandert er niks in (en als je keuzelijst op je Home formulier niet is aangepast hoef je dat formulier ook niet op te slaan), dan hoeft de verwijzing in je query ook veranderd te worden. Je zou voor de gein eens kunnen kijken wat je ziet als je het hele proces nog eens herhaalt (zoeken, formulier sluiten, database sluiten en opnieuw openen) en dan zowel de query in het Ontwerpvenster openen als het formulier. Dus niet gebruiken zoals je nu doet, maar gelijk naar het ontwerpvenster. En dan controleren of a) de keuzelijst op het formulier nog de goede naam heeft en b) de formulierverwijzing in de query dezelfde naam heeft als de keuzelijst. In dat geval zou je query namelijk perfect moeten werken op je formulier.

Iets anders: ik zag dat je ook macro's gebruikt (brr....), maar je kunt een query ook filteren door vanuit je formulier de SQL te veranderen. Dat proces doe ik zelf veel liever; ik hou er niet van om objecten afhankelijk van elkaar te maken zoals jij dat nu doet. Sowieso zou ik de resultaatquery via een formulier laten zien, en niet de query openen. Ik vind dat gebruikers niks in tabellen en queries te zoeken hebben; die zijn alleen voor de proceseigenaren en ontwikkelaars. Dus een gebruiker zou in mijn optiek alles vanuit de formulieren en rapporten moeten doen. Maar wat mijn punt dus echt is: ik pas op mijn formulier de onderliggende query 'jhard' aan door de gefilterde velden te voorzien van de gekozen waarden, en die SQL weer achter de query te plakken. Voordeel: de query vraagt nooit meer om een parameter, want die zit er niet meer in, en de query werkt altijd, want is niet meer afhankelijk van een geopend formulier.
 
Ik kan op mijn werk geen rar bestanden openen; als je een fileshare gebruikt hoef je de db ook niet te zippen.
 
Ik heb een paar kleine aanpassingen gedaan (die overigens niet veel hielpen) maar de keuzelijst werkt nu wel goed. Overigens wel de macro vervangen door een (veel beter onderhoudbare) VBA code. Hij staat hier.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan