Records verwijderen uit een subform

Status
Niet open voor verdere reacties.

cbhonda

Gebruiker
Lid geworden
15 dec 2001
Berichten
169
Kan me iemand een betere manier voorstellen om ingevoerde gegevens van een subform te verwijderen, eigenlijk is het annuleren.(access 2000)

Wanneer gebruikers data invullen in een subform bv artikels van een winkel en er staan al 10 artikels in maar men wil de factuur annuleren, hoe kan dit dan het best.

Momenteel gebeurt dit met VerwijderQuery die de gegevens delete in de tabel, maar dan klopt de autonummering niet meer voor de factuur.

Ik heb al gedacht om met een temp tabel te werken en deze na bevestiging over te schrijven naar de echte tabel maar zijn er geen makkelijkere oplossingen bv in VBA. (de laatste 8 woorden zijn de eigenlijke vraag amai)
 
Waar zitten de Access specialisten ?

Niet allemaal tegelijk he
 
Als je de autonummering nu alleen maar gebruikt om in je code records uniek te kunnen aanwijzen en zoeken, dan boeit het niet of deze nummering opeenvolgend is of niet.
Ik begrijp dat jij de autonummering ook nog ergens anders voor gebruikt. Ik zou het daar zoeken. Maak een nieuw veld, bv faktuurnr en laat bij het invullen van een nieuw record, access even kijken met de functie DMax wat het laatste nummer is en hoog deze 1 op. Verwijder je dan records, dan worden deze nummers gewoon opnieuw gebruikt de volgende keer.
Groeten
Theo
 
Database grootte.

Theo,
het probleem van records invoegen en direct terug verwijderen ligt in het feit dat je telkens de database moet comprimeren. (anders wordt ze immens groot)
Dan pas worden de gedelete records effectief verwijderd uit de db.
Daarom had ik graag een vb dat dit doet zonder schrijven naar een tabel ofzo.
Zoals :
Wanneer je 1 record helemaal hebt ingevuld kan je door esc te drukken het laatst ingevoerd veld annuleren en door 2 keer esc te drukken het hele record annuleren. (zoiets zou ideaal zijn voor het subform)
 
Ja het is me duidelijk, maar ik weet niet of daar een oplossing voor is.
Ook een tijdelijke tabel biedt geen oplossing, die records worden ook opgeslagen en later verwijderd, dus die ruimte wordt ook niet vrijgegeven.
Een lastig probleem, ik had laatst een database op mijn werk een beetje vergeten en in drie weken tijd was hij gegroeid van 18 mB naar 196 mB.
Alle recordsets worden keurig gesloten, maar toch groeit hij. En het is bij een 24-uurs bedrijf niet eenvoudig om een database te comprimeren, waar constant zo'n 10, 12 gebruikers op aangelogd zijn.

Groeten
Theo
 
Net wat ik bedoel

Daarom had ik graag iets in de trant van
(maar dan voor een subform)

Set dbsFactuurRef = CurrentDb
Set rstTypes = dbsFactuurRef.OpenRecordset("FactuurRef")
rstTypes.AddNew
rstTypes!FactuurNr = TxtFacNr
rstTypes!OnderdeelNr = LstOnd
rstTypes!Aantal = TxtAantalProd
rstTypes!Totaal = TxtlngTotaal
rstTypes.Update

zo voeg ik gegevens in wanneer het over 1 record gaat.

Het wegschrijven van de data uit een subform zou ook wel gaan, maar je moet het subform koppelen aan een tabel anders kan je er geen data ingeven.
Of weet iemand hoe het wel kan ?

Ronny
 
Stilzwijgen

Uit dit stilzwijgen concludeer ik dat niemand het beter weet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan