Onafhankelijke formulieren

Status
Niet open voor verdere reacties.

doosje

Gebruiker
Lid geworden
5 mei 2006
Berichten
16
Kan iemand mij op weg helpen?
Ik ben bezig met een database waarin alle gegevens gevat worden in een onafhankelijk formulier.
Dit formulier omvat een IDCounter en bvb een honderdtal velden.
Tijdens de invulling van dit formulier is het de bedoeling dat er op de achtergrond reeds gegevens worden weggeschreven naar diverse tabellen.
Deze werkwijze lijkt aangewezen daar de database zal gebruikt worden door verscheidene leden op het zelfde moment.

Een voorbeeldje:
Na invulling van de eerste 5 velden en dus terwijl men overgaat tot invulling van veld 6,
wordt de IDCounter - Veld1 - Veld2 - Veld3 - Veld4 - Veld5 weggeschreven naar Tabel1
Na invulling van de velden 6 tot en met 10,
wordt de IDCounter - Veld6 - Veld7 - Veld8 - Veld9 - Veld10
.... enz

Via de IDCounter welke dus overal dezelfde is, hangen alle begrippen toch aan elkaar.

Zelf ben ik er al toe gekomen, maar ik vind de oplossing een beetje te

Door het principe van Copy en Paste, kan men altijd een gegeven in een veld uit het formulier kopiëren naar een Veld in een Tabel.
Maar deze werkwijze vindt ik iets te uitgebreid, want voor elk veldje open ik eerst de tabel,
om dan via Copy en Paste de gegevens van het formulier te halen; dan de tabel terug sluiten om hem daarna terug te openen voor het volgende veld. Men kan wel begrijpen dat als men een onafhankelijk formulier maakt met bvb 100 in te vullen velden, deze werkwijze iets te langdradig wordt.

Kent er iemand een snellere methode.
Dit mag altijd in VBA zijn.
 
Laatst bewerkt:
Snap je vraag niet.
Kun je uitleggen wat de achtergrond is van je, zo te lezen, vrij ongebruikelijke aanpak?

Dit lijkt mij in ieder geval geen goede reden

Deze werkwijze lijkt aangewezen daar de database zal gebruikt worden door verscheidene leden op het zelfde moment
.

FESTER
 
FESTER zei:
Snap je vraag niet.
Kun je uitleggen wat de achtergrond is van je, zo te lezen, vrij ongebruikelijke aanpak?

Dit lijkt mij in ieder geval geen goede reden

.

FESTER
Het betreft een database welke ten eerste door verscheidene mensen gelijktijdig zal gebruikt worden en ten tweede een grote hoeveelheid velden omvat.
Om het mogelijk te maken dat iedereen er vlot mee kan werken, kan het niet dat men bvb zou werken met slechts 1 tabel waar alle gegevens in moeten komen.
Zodoende werkt men met tientallen kleinere tabellen, welke onderling aan elkaar gelinkt zijn.
Een voorbeeldje:
TabelIdentiteit
omvat IDCoounter, Naam, Voornaam, Nationaliteit
TabelPersonalia
omvat IDCounter, Geboortedatum, Geboorteplaats, Adres, Gemeente
...

In alle tabellen is er de IDCounter welke als gemeenschappelijke noemer werkt

Wanneer men een formulier onwerkt op basis van een tabel of query, belast men reeds het systeem voor het opvragen van de gegevens.

Als men werkt met een onafhankelijk formulier kan men gewoon alle velden invullen, zonder dat het systeem belast wordt, en daarna de gegevens opslaan.

Wanneer dit formulier echter bvb 100 velden zou omvatten, loopt men het risico dat het invullen van alle velden enige tijd in beslag neemt, en dat wanneer iemand anders tijdens deze inbrenging ook een nieuw record wenst toe tevoegen, dat men problemen heeft met de IDCounter (deze neemt natuurlijk de laatst oopgeslagen waarde +1).

Om dit te omzeilen kan men na bvb het invullen van de velden NAAM, VOORNAAM en NATIONALITEIT, reeds het commando geven om deze gegevens samen met de IDCounter op te slaan in de tabel TABELIDENTITEIT.

Als er dan iemand anders ook een recortd wenst in te voegen, is er geen probleem meer voor de IDCounter.

Het gaat hem dan dus uiteindelijk over het opslaan van deze gegevens.
Met een programmacode (DoCmd.)
kan men bvb 1) het veld NAAM in het formulier selecteren
2) dit veld KOPIEREN
3) de tabel TABELIDENTITEIT openen
4) het veld NAAM selecteren
5) de gegevens plakken
6) de tabel terug sluiten

Je begrijpt toch wel dat als men dit dient te programmeren voor alle velden, dat een helse opdracht is, en het eveneens het systeem te veel zou kunnen belasten als diverse personen gelijktijdig nieuwe gegevens inbrengen.

Het moet toch mogelijk zijn om via een commando het volgende te bekomen:

If Not IsNull Me![NAAM] And Not IsNull Me![Voornaam] And Not IsNull Me![nationaliteit] Then
Tabellen!TabelIdentiteit!Naam=Me![Naam]
Tabellen!TabelIdentiteit!Voornaam=Me![Voornaam]
Tabellen!tabelIdentiteit!Nationaliteit=Me![Nationaliteit]

Zulks een werkwijze lijkt mij een stuk handiger, maar ik ben er nog niet in gelukt.


Coyote,
 
Sorry maar ik kan je gedachtengang niet volgen....
Je opmerkingen over "systeem belasten" snijden absoluut geen hout (waar haal je deze waarheden vandaan)?
Ter info, het aantal kolommen (wat jij velden noemt) heeft weinig invloed op performance.
Evenzozeer maakt het in principe niet uit of je met gebonden of ongebonden formulieren werkt.
Je zoekt om de verkeerde redenen naar een behoorlijk omslachtige en onnodige werkwijze.
Je oplossingen zijn geen oplossingen en zullen performance issues en record locking niet oplossen.

FESTER
 
dit werkt niet

volgens mij ben je bezig met je allereerste database en weet jouw omgeving nog minder dan jijzelf!

tip:

begin vanaf 0 met je database en wij kunnen je helpen. Je weet nu duidelijk niet waar je over praat of bewijs ons het tegendeel! Wil je alleen meer weten over een unbound-formulier dan kun je dit forum doorzoeken.
 
Laatst bewerkt:
meer info

Dit betreft zeker niet mijn eerste database, maar ik ben wel aan het overschakelen van principe.
Vroeger werd alles gemaakt door gebruik te maken van macro's, terwijl ik nu probeer over te schakelen op VBA, daardit nog meer mogelijkheden biedt.

Het betreft dus gewoon het commando om vanuit een onafhankelijk formulier, gegevens op te slaan in meerdere tabellen.


Doosje,
 
Het betreft dus gewoon het commando om vanuit een onafhankelijk formulier, gegevens op te slaan in meerdere tabellen.

Als je dan toch van principe aan het overschakelen bent:

- waarom gebruik je niet Access zoals het bedoeld is?
- meerdere gebonden formulieren, formulieren gebaseerd op queries?

Nogmaals, je beweegredenen snijden geen hout.
Je maakt het moeilijker dan nodig om onjuiste redenen = onwetendheid

Bij het juist opzetten van Access toepassingen heb je geen ongebonden formulieren nodig.
Dat zul je allleen toepassen als:

- je formulieren wilt hergebruiken (wat binnen relationele databases zeer onwaarschijnlijk
is) of
- als je een backend hebt, gebaseerd op een echte database, en gegevens gaat parsen
naar een Access frontend

Dit betreft zeker niet mijn eerste database, maar ik ben wel aan het overschakelen van principe.

Doe jezelf dan een plezier en maak je eerst eens meer wegwijs met wat relationele databases zijn, welke rol normaliseren hierin speelt en hoe Access daarin past.
Stop met denken in Excel, wat je lijkt te doen, gezien deze opmerking

Om het mogelijk te maken dat iedereen er vlot mee kan werken, kan het niet dat men bvb zou werken met slechts 1 tabel waar alle gegevens in moeten komen.

FESTER
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan