Vraagjes over invoerformulier en zoekfunctie

Status
Niet open voor verdere reacties.
Vermoedelijk staat in je formulier de optie <Gegevensinvoer> op <Ja>. Die moet op <Nee> staan.
 
Die moet op Nee staan; als je hem op Ja zet opent het formulier in Invoermodus. Of je wel of niet mag invoeren bepaal je met de optie <Toevoegingen toestaan>. Die staat op Ja als je mag toevoegen, en op Nee als dat niet mag.
De instelling <Toevoegingen toestaan>=Nee in combinatie met <Invoermodus>=Ja is dus een hele leuke...
 
Weet je het zeker? Wordt het formulier misschien met een knop geopend waar een verkeerde parameter in staat? Zoals deze bijvoorbeeld:
Code:
    DoCmd.OpenForm stDocName, DataMode:=acFormAdd
 
Hij wordt geopend met een macro op een knop: FormulierOpenen, argumenten: Vondsten; Formulier; ; ; ; Standaard
Ik snap er gewoon niets meer van, ik wil zo graag dat dit werkt, zou ik hem anders naar je toe kunnen sturen zodat je kunt kijken wat er mis is?
 
Dat mag.
 
Laatst bewerkt:
Had jij toevallig nog kans gezien een blik te werpen op mijn database?

Alvast bedankt!
 
Ik heb 'm gisteren uitgepakt en even bekeken. Maar verder had ik er nog geen tijd voor. Vanavond dus!
 
Ik zit het nu te bekijken, maar ik snap er eerlijk gezegd weinig van; wat probeer je eigenlijk te doen? Je hebt op je formulier Vondsten een onbruikbare bron als basis, waardoor je geen records ziet. Da's één. Verder heb je daar een knop Zoekformulier op die een niet-gebonden formulier opent, maar je geeft wel een waarde mee. En daar gebeurt dan verder niks mee.
En de OpenArgs vertaling gebeurt niet op het te openen formulier, wat wel moet. Daar moet de sArgs variabele bij de gebeurtenis <Bij Openen> weer worden teruggelezen. Al moet ik er bij zeggen dat dat stukje code in mijn voorbeeld was weggevallen; vanwege een stukje gemakzucht had ik alle noodzakelijke code in één codeblok gezet, en dat was een beetje verwarrend.
Dus wat doet het zoekformulier volgens jou? Daar staan overigens ook opdrachten op voor tekstvakken die er niet op staan, en dat werkt natuurlijk ook niet. En wat moet het formulier dan wel doen?
 
Ehhh ja mijn visual basic is niet al te best, dus ik had code overgekopieerd van de oude database en aangepast. Het zoekformulier moet in het formulier Vondsten zoeken naar de waarde die je hebt ingevuld en er de bijbehorende records bij weergeven.
En heeft mijn formulier Vondsten een onbruikbare bron als basis? Ik dacht dat hij de tabel Vondsten gewoon als basis had?
 
In het voorbeeld zit er een query achter, met twee tabellen. En die heeft geen records als resultaat. Vandaar mijn opmerking. Maar ik snap niet wat je wilt zoeken; je leest in de zoekknop de waarde uit van het voorlaatste actieve element; dat kan elk willekeurig tekstveld zijn. Vervolgens wil je dat opzoeken in één veld (vondstnummer) van je zoekformulier. Dat gaat natuurlijk niet werken; als je een vondstnummer wilt opzoeken, dan moet je ook dat veld gebruiken als opzoekargument.
 
De waarde uitlezen van het voorlaatste actieve element is niet echt nodig, maar ik wilde gewoon een zoekformulier waar je dus in het veld vondstnummer een cijfer kan invoeren, en dat hij dan het bijbehorende record ophaalt. En zo hetzelfde met de rest van de velden. Maar ik heb geen idee hoe ik dit werkend kan krijgen, daar ben ik niet goed genoeg voor met visual basic.
Maar hoe los ik het probleem op van het formulier Vondsten wat geen records weergeeft en ineens dubbele records aanmaakt? Kun je me daarmee helpen?

Ik heb net nog even wat geprobeerd, en die recordbron aanpassen is me gelukt, hij geeft nu wel weer de records weer. Deze heb ik gewoon op 'Vondsten' gezet ipv de SELECT query die er eerst stond ^^.
 
Laatst bewerkt:
Volgens mij moet je de functies omdraaien: je gebruikt nu het formulier Vondsten om je zoekformulier te openen en te vullen met een zoekwaarde. dat is in mijn ogen precies verkeerd om, want als je al een record hebt gevonden, ga je dat natuurlijk niet meer opzoeken met een zoekformulier. Dus eerst zoekformulier openen, waarde invullen en bijbehorend record tonen in Vondsten. Maar je kunt niet zomaar een willekeurig veld gebruiken om in te zoeken, want in je formulier Vondsten zoek je een record op basis van een Vondstnummer op. Dus een andere zoekwaarde moet je in een ander veld opzoeken. dat kan wel, maar dan moet de structuur van het zoeken heel anders.

En inderdaad: je moest de rijbron van het formulier aanpassen naar de tabel Vondsten ;)
 
Laatst bewerkt:
De zoekfunctie laat ik nu maar even zitten. Ik probeer nu op een rapport een waarde weer te geven via de besturingselementbron (een query), maar kan ik daar ook een standaardwaarde in selecteren? Ik wil in die tabel de projectgegevens invullen, die hij dan op elk rapport moet weergeven. Maar dat is de waarde uit record 1. De andere records zijn leeg, en die moet hij dus niet weergeven. Hoe kan ik dat doen? Hij moet dus de waarde uit de tabel van record 1 weergeven op elk rapport, en niet van de andere records.

De selectiequery is nu zo:

SELECT vondstbijhouden.vondstnummer, vondstbijhouden.[OM nummer]
FROM vondstbijhouden
ORDER BY vondstbijhouden.vondstnummer;

Hoe kan ik hem aanpassen dat hij, zodra er geen waarde is voor OM nummer, de waarde van record 1 invult?

Of moet ik bij de besturingselementbron zoiets invullen:=IIf(IsNull([OM nummer])....? en welke code moet er dan achter?
 
Laatst bewerkt:
Leg eens uit wat je aan het doen bent, want ik zie het niet zo scherp... Je hebt een query die (vermoed ik) best meerdere records kan opleveren, want het is een vrij simpele query. Wil je daar je rapport op baseren? En wat staat er dan verder in dat rapport? Een rapport heeft maar één Recordsource, dus waar zijn dan de projectgegevens?
 
Nou het probleem is dat hij gegevens uit twee verschillende tabellen moet weergeven. Uit de tabel vondsten en uit de tabel Projectgegevens. En uit de tabel projectgegevens moet op elk rapport hetzelfde worden weergegeven (wat in record 1 staat).

Ik heb de query nu zo gemaakt:

SELECT vondstbijhouden.vondstnummer, [Adminstratieve gegevens].[OM-nummer], [Adminstratieve gegevens].Gemeente, [Adminstratieve gegevens].Toponiem
FROM [Adminstratieve gegevens] INNER JOIN vondstbijhouden ON [Adminstratieve gegevens].ID = vondstbijhouden.ID
ORDER BY vondstbijhouden.vondstnummer;

Zo selecteert hij wel alle gegevens die ik nodig heb voor mijn rapport. Maar alle gegevens uit Administratieve gegevens moeten uit record 1 komen op elk rapport. Ik voer administratieve gegevens 1 x in (want ik maak een nieuwe database voor elk project) en die gegevens moet hij dan invullen, en niet steeds een record opschuiven zoals hij nu doet, zodat er alleen op rapport 1 iets wordt weergegeven .
 
Laatst bewerkt:
Je hebt dus een één-op-veel relatie tussen [Adminstratieve gegevens] en [vondstbijhouden], neem ik aan. In je query zie je nu dus bij elk record de administratieve gegevens terugkomen, wat prima is. Je rapport kun je dan uitstekend baseren op deze query, want door een Groepskoptekst te maken van [Adminstratieve gegevens].ID (of Gemeente, dat maakt niet uit) dan zet je alle eenmalige gegevens in de groepskoptekst, en de deelrecords komen dan in de Detailsectie.
 
Ik begrijp het niet helemaal. Ik moet labels maken die door een labelprinter worden uitgeprint met oplopende vondstnummers. Ik kan dus geen groepen aanmaken. Ik e-mail je een voorbeeld van een label, waaronder dus automatisch de waarden ingevuld moeten worden. Het probleem is dus dat bij elk record de administratieve gegevens terugkomen, want die worden niet elk record weer ingevuld. Op vondstkaartje 1 zullen dus wel de administratieve gegevens staan, maar op vondstkaartje twee niet. Voor elk record van vondstenbijhouden moet dus steeds hetzelfde record van Administratieve gegevens worden weergegeven.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan