Avatar billede schoesler Nybegynder
31. maj 2007 - 23:06 Der er 20 kommentarer og
1 løsning

Export / Impoert eller synkronisere en tabel i en database

Hej Eksperter.

I min database har jeg mange tabeller, specielt en tabel ville jeg gerne eksportere og lægge i en ny db, sende den afsted på mail og når den kommer tilbage ville jeg gerne importere tabellen igen eller synkronisere. Desværre har jeg ingen ide om hvordan man takler denne opgave.

/Jan
Avatar billede terry Ekspert
01. juni 2007 - 20:31 #1
Hi Jan
Not much we have heard from you for a while, out sailing on the high seas?

If you want to synchronize both ways then I think the only soultion is using replication, and as I havent much experience with this I'm afraid I have that say that I cant help you much at all with it.

The is quite a bit of help if you enter replicate (English Access) in Access help.
Avatar billede Slettet bruger
02. juni 2007 - 01:20 #2
Du opretter en ny db manuelt, som du så kan genbruge... En automatisk oprettelse kan lade sig gøre, men... http://support.microsoft.com/kb/317867 det kræver lidt!~)

Du kan starte med at flytte tabellen:
DoCmd.CopyObject "C:\StiTilDatabase\NyDb.mdb", "TabelNavn", acTable, "TabelNavn"

Du kan så evt. starte din mail op med:
DoCmd.SendObject acSendNoObject, , , "EmailAdresse",,,"Overskrift"
men du kan ikke vedhæfte din NyDb automatisk... (ikke lige hvad jeg ved af, men det kan man sikkert godt!~)

Når mailen kommer tilbage, så kan du slette din tabel og hente den fra NyDb:
DoCmd.DeleteObject acTable, "TabelNavn"
DoCmd.TransferDatabase acImport, "Microsoft access", "C:\StiTilDatabase\NyDb.mdb", acTable, "TabelNavn", "TabelNavn"
Avatar billede Slettet bruger
02. juni 2007 - 01:21 #3
Godnat!~)
Avatar billede schoesler Nybegynder
02. juni 2007 - 08:13 #4
Godmorgen 'spg' du var lidt længe oppe :-)

'terry' Jeg er faktisk ude og sejle, ligger p.t ud for Southampton til ankers. Nyder at jeg kan komme på eksperten med vores nye online internet. Det er faktisk ret nyt at man kan gå på internettet til søs og samtidig betale sig fra det.

/Jan
Avatar billede schoesler Nybegynder
02. juni 2007 - 13:06 #5
'spg' Har lige det problem at min kode kører fra frontend og tabellen ligger i backend.

/Jan
Avatar billede Slettet bruger
02. juni 2007 - 21:09 #6
!~(

Jeg har "desværre" travlt lige nu med en opgave, men så snart jeg lige får et pusterum, så skal jeg nok prøve om jeg kan løse det... Det gør det lige umiddelbart lidt mere besværligt med FE/BE, men der må være en løsning!~)
Avatar billede terry Ekspert
03. juni 2007 - 09:43 #7
Hope the weather in Southampton is a nice as it is here in Vejle at the moment.
Is this table only getting updated at one location? If not then isnt it necessary to synch both ways?
If the tables are only getting updated at one location then you might as well send the whole backend, or in the case of one table just export to a CSV and then import to the table after emptying it.
Avatar billede schoesler Nybegynder
03. juni 2007 - 16:00 #8
'terry' at eksportere til CSV lyder som en god ide, kan man eksportere alle record? og enkelvis?

Vejret her på sydkysten er fint og stille :-) skal hjem på en måneds ferie om lidt...

/Jan
Avatar billede terry Ekspert
03. juni 2007 - 17:47 #9
To export the whole table you would use somtheing like

docmd.TransferText acExportDelim, ,"TableNameGoesHere", "FileName2export2GoesHere",True

If you want to export one or a selection of records then you could make a query which selects the ones to export then use

docmd.TransferText acExportDelim, ,"QueryNameGoesHere", "FileName2export2GoesHere",True
Avatar billede terry Ekspert
03. juni 2007 - 17:48 #10
Then you use
docmd.TransferText acImportDelim , ,"TableNameGoesHere", "FileName2export2GoesHere",True

to import
Avatar billede terry Ekspert
03. juni 2007 - 17:52 #11
When you export/import csv files using the export wizard you will see an Advanced button which give you more control over the export. Then you can save the export specificiation for later use. The name of the specification can then be used when you export

docmd.TransferText acExportDelim, "specificationName GoesHere ,"QueryNameGoesHere", "FileName2export2GoesHere",True
Avatar billede terry Ekspert
03. juni 2007 - 17:52 #12
Enjoy your holiday when the time comes, going anywhere special?
Avatar billede schoesler Nybegynder
03. juni 2007 - 19:12 #13
'terry' jeg får en read only fejl!

DoCmd.TransferText acExportDelim, , "vetting1", "c:\test", True

Det er en frontnd jeg sidder og arbejder i, men det skulle vel ikke betyde noget

/Jan
Avatar billede terry Ekspert
03. juni 2007 - 19:46 #14
as long as the tables from the backend are linked into the frontend then it should work.

Is "c:\test" a folder?

If so try
"c:\test\vetting1.csv"

otherwise try
"c:\vetting1.csv"
Avatar billede terry Ekspert
03. juni 2007 - 19:47 #15
and if it still gives and error replace csv with .txt
Avatar billede schoesler Nybegynder
03. juni 2007 - 20:52 #16
'terry' Var lidt rundt på nettet og så at der er menge der har problemmer med

DoCmd.TransferText acExportDelim funktionen.

Har dog brugt denne funktion.

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel4, "vetting", "c:\vetting.xls", True


Når jeg så får filen tilbage og vil importere den skal jeg have mit indhold i tabellen vetting slettet på en eller anden måde eller kan bare indlæse ændringerne

/Jan
Avatar billede terry Ekspert
04. juni 2007 - 12:10 #17
You cant just import the changes unless you make your own import routine to check what is changed

docmd.setwarnings False
docmd.runsql "DELETE * from vetting"
docmd.saetwarnings True
Avatar billede schoesler Nybegynder
07. juni 2007 - 09:51 #18
'terry' Har været uden internet og telefon i 10 dage, herhjemme, så jeg har ikke kunnet svare dig.

Kan man lave en routine der kan tjekke om en record er ændret?

/Jan
Avatar billede terry Ekspert
07. juni 2007 - 14:42 #19
"Kan man lave en routine der kan tjekke om en record er ændret?"

Its not just a case of seeing if a records has changed. If the record exists in two databases and they both get changed, which one is correct? If one gets deleted in one of the databases, should it also get deleted in the other  database?

New records will also need to be consiered, and other things too.

If changes only occured in one dB then the fastest method is to replace the table.


You could also take a look at this link.
http://www.mvps.org/access/tables/tbl0015.htm
Avatar billede schoesler Nybegynder
08. juni 2007 - 12:44 #20
'terry' Nu har jeg nok til at komme vidre, tak for hjælpen og good weekend

/Jan
Avatar billede terry Ekspert
08. juni 2007 - 14:15 #21
selv tak og god weekend herfra også
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