Avatar billede steen_hansen Forsker
07. juli 2002 - 23:16 Der er 10 kommentarer og
2 løsninger

Eksport af data

Hvordan kan jeg, ved færdigbehandling af data, eksportere færdigbehandlede data til en anden tabel?

Jeg har en formular, hvori jeg indtaster data, som jeg gemmer i en tabel. Når det er gjort, og skal påbegynde et nyt sæt data, vil jeg gemme de gamle data i en anden tabel (i samme database) v.hj.a. en "Eskporter de færdigbehandlede data til en anden tabel, så jeg kan indføre nye data"-kommandoknap. Kan det lade sig gøre? De færdigbehandlede data skal ned i den samme tabel.

Altså:

1. Jeg indtaster data i en formular.

2. Disse data bliver gemt i en tabel. Lad os kalde den for "Aktuelle data".

3. Når jeg er færdig med disse data, trykker jeg på kommandoknappen "Eksporter data". Disse data ryger ned i tabellen "Færdigbehandlede data", og samtidig tømmes tabellen "Aktuelle data", så den tabel er klar til et sæt nye data.

4. Næste gang jeg eksporterer færdigbehandlede data, ryger de fra tabellen "Aktuelle data" og over i tabellen "Færdigbehandlede data", neden under de andre færdigbehandlede data, så de færdigbehandlede data altid er samlet i samme tabel.

5. Tabellen "Aktuelle data" tømmes, så den er klar til et nyt sæt data.

Osv. osv. osv....

Håber jeg har gjort mig forståelig :o)
Avatar billede mugs Novice
08. juli 2002 - 07:34 #1
Det kan du bl.a. ved at køre 2 forespørgsler:

En tilføjelsesforespørgsel der eksporterer til tabelen "Færdigbehandlede data", derefter en sletteforespørgsel der sletter data i tabellen "Aktuelle data".

Du laver forespørgslerne i dit databasevindue, og vælger typen ved at trykke på type-ikonet på menulinien. Når det fungerer, kan du i formularen lave en kommandoknap, hvor du i VedKlik event har programmeret kørslen af begge forespørgsler:

DoCmd.OpenQuery "Navnet på tilføjelsesforespørgslen"
DoCmd.OpenQuery "Navnet på sletteforespørgslen"

Når du kører forespørgslerne, vil du få advarsler  om, at du er ved at tilføje / slette poster. Disse advarsler kan du omgå, ved at indsætte flg. kode før DoCmd. osv:

DoCmd.SetWarnings False

og efter kørslen:

DoCmd.SetWarnings True

Du skal huske den sidste kodestump, idet advarslerne forbliver slået fra i hele applikationen, hvis du ikke slår dem til igen.

Hvis du foretrækker at lave det som en makro, kan det sagtens lade sig gøre.
Avatar billede terry Ekspert
08. juli 2002 - 08:02 #2
Place this in the onclick event for the button

DoCmd.SetWarnings False

Docmd.runsql "INSERT INTO [Færdigbehandlede data] SELECT *.[Aktuelle data] FROM [Aktuelle data]"

Docmd.runsql "DELETE * FROM [Aktuelle data]"

DoCmd.SetWarnings True
Avatar billede terry Ekspert
08. juli 2002 - 08:04 #3
You obvioulsy need to alter the names of the tables and also the two tables should have the same layout (field names etc.)
Avatar billede steen_hansen Forsker
08. juli 2002 - 10:11 #4
terry, min kode ser sådan ud:

Option Compare Database

Private Sub Eksporter_Click()
DoCmd.SetWarnings False

DoCmd.RunSQL "INSERT INTO [Done] SELECT *.[Firmaer] FROM [Firmaer]"

DoCmd.RunSQL "DELETE * FROM [Firmaer]"

DoCmd.SetWarnings True
End Sub

Så får jeg denne fejlmeddelelse:

Run-time error '3075':

Der er en syntaksfejl, fordi der mangler en operator . i
forespørgselsudtrykket "*.[Firmaer]".
Avatar billede terry Ekspert
08. juli 2002 - 10:24 #5
try
DoCmd.RunSQL "INSERT INTO [Done] SELECT * FROM [Firmaer]"
Avatar billede steen_hansen Forsker
08. juli 2002 - 10:40 #6
Det virkede! Tak for hjælpen :o)

I får begge 30 point, jeg tror mugs forslag er lige så godt.
Avatar billede terry Ekspert
08. juli 2002 - 10:55 #7
yes it is, and thanks :o)
Avatar billede steen_hansen Forsker
27. august 2002 - 10:45 #8
terry, håber du ser dette :o)

Kan jeg eksportere en enkelt post ad gangen også? Du får nye point for et nyt spørgsmål :o)
Avatar billede terry Ekspert
27. august 2002 - 10:59 #9
You should be able to alter the INSERT INTO

SomeField is a field in tbale Firmaer and some value is the value of the field you are interested in.
If SomeField is numeric then use something like this...

DoCmd.RunSQL "INSERT INTO [Done] SELECT * FROM [Firmaer] WHERE SomeField = SomeValue"

And if somefield is text then

DoCmd.RunSQL "INSERT INTO [Done] SELECT * FROM [Firmaer] WHERE SomeField = 'SomeValue'"
Avatar billede steen_hansen Forsker
04. september 2002 - 12:19 #10
Hej terry!

Jeg vil gerne have begge funktioner til rådighed:

1. Eksport af samtlige poster
2. Eksport af poster enkeltvis

Hvis jeg kigger på en post, som er i orden, vil jeg gerne kunne trykke på knappen, og så er det kun den pågældende post, der skal eksporteres....
Avatar billede steen_hansen Forsker
04. september 2002 - 12:20 #11
Undskyld jeg ikke har kigget efter svar, jeg har haft en del at lave :o)
Avatar billede steen_hansen Forsker
04. september 2002 - 12:21 #12
Ok, sorry! Læste ikke dit svar ordentligt igennem. Jeg prøver det ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester