Archiveren van records

Status
Niet open voor verdere reacties.

Wouter0546

Gebruiker
Lid geworden
5 feb 2013
Berichten
11
Hi,

Ik ben bezig met een access database, maar ben op het punt om de records te kunnen archiveren.
Nu heb ik volgens (http://office.microsoft.com/nl-nl/a...n-access-database-archiveren-HA101818831.aspx) 2 query's gemaakt.

In deze query's staan de velden:
Veld_ID
Nummer
Uren deze week
Datum

Ik zou graag de mogelijkheid hebben om gegevens van een tabel te archiveren, maar dan de gegevens van een bepaald nummer. Het liefst zou ik straks op een knop drukken en dat access dan alleen de gegevens archiveert van het nummer dat te zien is op het formulier.

Ik hoop dat het een beetje een duidelijke vraag is en ik hoop dat jullie me kunnen helpen.

Gr
 
En hoe ver ben je al met je queries? Werkt het archiveren naar behoren? In beginsel hoef je alleen maar een criterium toe te voegen aan de twee queries. Dat ID veld kun je uit het formulier halen.
 
De toevoeg- en verwijder query doen hun werk, want ze kopieren de gegevens van tabel 1 naar tabel 1_archief. Het enige wat ik graag wil is dat alleen de gegevens van een bepaald nummer worden gearchiveerd door een druk op de knop. De gegevens van andere nummers moeten blijven staan.

Alvast bedankt!
 
Zoals ik al zei: een criterium in je query zetten. En wel het formulierveld [Veld_ID].
 
Vreemd.. Als ik dit doe krijg ik de volgende melding:

"Fout 3061 tijdens uitvoering:

Er zijn te weinig parameters. Het verwache aantal is:1"

Heb al even gegoogled maar word er niet veel wijzer uit..

Enig idee wat het probleem zou kunnen zijn?
 
De query's worden geladen met de volgende SQL code:

[SQL]
Private Sub Knop#_Click()

Dim strSQL As String

strSQL = "toevoeg query"
SrtSQL = "verwijder query"

CurrentDb.Execute strSQL

End Sub

[/SQL]


Toevoeg query:
[SQL]
INSERT INTO tbl_uren_archief ( Uren_ID, Nummer, [Uren deze week], [Datum ingevoerd])
SELECT tbl_uren.Uren_ID, tbl_uren.Nummer, tbl_uren.[Uren deze week], tbl_uren.[Datum ingevoerd]
FROM tbl_uren
GROUP BY tbl_uren.Uren_ID, tbl_uren.Nummer, tbl_uren.[Uren deze week], tbl_uren.[Datum ingevoerd]
HAVING )))tbl_uren.Nummer)=[Keuzelijst#]));

[/SQL]

Verwijder query:
[SQL]
DELETE tbl_uren.Uren_ID, tbl_uren.Nummer, tbl_uren.[Uren deze week], tbl_uren.[Datum ingevoerd]
FROM tbl_uren
WHERE (((tbl_uren.Nummer)=[Keuzelijst#]);

[/SQL]

Ik hoop dat jullie de fout hierin zien...

Alvast bedankt!
 
Ik zie een hoop verkeerde haakjes achter HAVING. Heb je de code gekopieerd of overgetypt?
 
Laatst bewerkt:
Overgetypt.. Kopieer hem wel even:

[SQL]
INSERT INTO tbl_uren_archief ( Uren_ID, Nummer, [Uren deze week], [Datum ingevoerd] )
SELECT tbl_uren.Uren_ID, tbl_uren.Nummer, tbl_uren.[Uren deze week], tbl_uren.[Datum ingevoerd]
FROM tbl_uren
GROUP BY tbl_uren.Uren_ID, tbl_uren.Nummer, tbl_uren.[Uren deze week], tbl_uren.[Datum ingevoerd]
HAVING (((tbl_uren.Nummer)=[Keuzelijst63]));
[/SQL]
 
Volgende fout: je verwijst niet naar het volledige pad van de keuzelijst. Overigens zou ik het zo nooit doen, en de waarde van de keuzelijst gebruiken, niet de naam.
 
Zou je misschien iets specifiker kunnen zijn? Hoe kan ik volledig naar het pad van de keuze lijst verwijzen en hoe zou het eruit zien op jou manier?

Alvast bedankt
 
Jouw methode is simpel te maken als je de functie <Opbouwen> gebruikt.
Mijn aanpassing:
Code:
HAVING (((tbl_uren.Nummer)=" & Me.Keuzelijst63 & "))"
 
Het is me gelukt door criteria te verwijzen naar het formulier met keuzelijst. De fout 3061 zat hem in de macro die de 2 query's moest uitvoeren. Ik heb dit opgelost door een macro te maken adhv standaard macro die access heeft.

Bedankt voor de moeite!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan