Vast lopen database, wordt te groot

Status
Niet open voor verdere reacties.

Danny20

Nieuwe gebruiker
Lid geworden
20 nov 2020
Berichten
2
Ik heb een tabel met volgende waarden.
Nummer machine stap
1 E1 10
1 E2 20
1 E3 30
2 E1 10
2 E4 20
2 E6 30
2 E5 40

In een nieuw tabel wil ik het als volgt zien

Nummer Volgorde machine
1 E1-E2-E3
2 E1-E4-E6-E5

Via VBA lukt dit wel maar het probleem is dat we spreken van 300000 records of meer en dat mijn database zo snel groot als de code draait dan de database vastloopt omwille dat die meer is dan 2Gig
Is er een oplossing voor dit probleem of kan dit via een query?
 
Is er een oplossing voor dit probleem of kan dit via een query?
Nee en nee. Zitten die 300000 records in je brontabel, of in je doeltabel?
Je zou, als je brontabel al heel groot is (en dat lijkt mij de oorzaak) een FE-BE kunnen proberen. Je koppelt de brontabel dan in de FE, en maakt met een Recordset de nieuwe tabel.
 
is afkomstig van brontabel, maar wordt gecreëerd in een query om te sorteren op nummer en stap
nadien gebruik ik VBA om record per record te lezen en te vergelijken en zo schrijf ik in een veld E1-E2 enz....
maar dan zie het bestand oplopen

maak al gebruik van FE en BE , en reeds het comprimeren tijdens het afsluiten
 
Laatst bewerkt:
Het scheelt als je gelijk de volledige situatie schetst; hoeven wij geen ‘oplossingen’ te verzinnen die niet nodig zijn.
Al een virtuele recordset geprobeerd? Die zou de fysieke limiet van de db binnen de perken moeten kunnen houden.
 
eenvoudige oplossing: gebruik een echte database als back-end: mariaDB, SQL expres , allemaal gratis
 
Beste,

Probeer deze query eens:

SELECT Tabel1.Nummer, Max(IIf(([Stap]=10),[Machine])) AS 10, Max(IIf(([Stap]=20),[Machine])) AS 20, Max(IIf(([Stap]=30),[Machine])) AS 30, Max(IIf(([Stap]=40),[Machine])) AS 40
FROM Tabel1
GROUP BY Tabel1.Nummer;

Uiteraard is dit maar uitvoerbaar indien het mogelijke aantal stappen beperkt is. Bij een oneindig aantal stappen (of zelfs al pakweg meer dan 20 stappen) vind ik dit niet echt een goede oplossing.
Maar met een beperkt aantal....

Succes ermee.

Luc
 
In SQL kan je dat doen via de coalesce functie, voorbeeld:
Bekijk bijlage 352862

Maar ik weet niet hoe je dit vertaalt naar Access SQL, misschien weten de Access experts dat?
 
zal het eens proberen met bijlage in plaats van picture:
 

Bijlagen

  • CoalesceExample.JPG
    CoalesceExample.JPG
    48,3 KB · Weergaven: 36
Da's in ieder geval te bekijken :). Dat soort zaken kan inderdaad niet in Access, al kun je daar natuurlijk makkelijk een vergelijkbare functie voor maken. Maar dan kom je weer op het terrein van Recordsets. En ben ik weer terug bij bericht #2.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan