Avatar billede cc2000 Nybegynder
06. august 2002 - 10:50 Der er 13 kommentarer og
1 løsning

sammenligne 2 databaser

Private Sub Update_database_Click()
   
  If Inet1.StillExecuting Then
MsgBox ("Im still updating, Please wait I cannot do more than one thing at a time!")
Exit Sub
Else
 
  MsgBox ("Updating Database. Please wait until the next message pops-up!")
    DoCmd.Hourglass True
'Opretter forbindelse til FTP server
    Inet1.Protocol = icFTP
    Inet1.URL = "ftp://ftp.min.server.com"
    Inet1.UserName = "ftp"
    Inet1.Password = "user@anon.the.net"
    Inet1.RequestTimeout = 400

                'Sletter gammel fil
                Set fs = CreateObject("Scripting.FileSystemObject")
                If (fs.FileExists("C:\dir\Database\Main_comp.mdb")) Then
                fs.DeleteFile "C:\dir\Database\Main_comp.mdb"
                End If
           
                Inet1.Execute , "GET \database\main_data.mdb C:\dir\Database\Main_comp.mdb"

            Do While Inet1.StillExecuting
                DoEvents
            Loop
'Oprydning
    Inet1.Execute , "CLOSE"

    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim db As Database
    Dim db1 As Database
    Set db = OpenDatabase("c:\dir\database\main_data.mdb")
    Set db1 = OpenDatabase("c:\dir\database\main_comp.mdb")
    Set rs1 = db.OpenRecordset("Select * From Files ORDER BY deletenr ASC", dbOpenSnapshot)
    Set rs2 = db1.OpenRecordset("Select * From Files ORDER BY deletenr ASC", dbOpenSnapshot)


rs1count = rs1.RecordCount
rs2count = rs2.RecordCount
rs1.MoveFirst
rs2.MoveFirst

!!!!!!!her kan jeg ikke finde ud af hvad der skal stå!!!!!!!

  DoCmd.Hourglass False
  MsgBox ("Update Completed")

End If
End Sub

Hej venner.

Jeg har dette problem at jeg skal hente en database ned fra en ftp. Virker fint nok. Skal så sammenligne den database som ligger på computeren med den jeg henter ned fra ftp'en. Tabellen der skal sammenlignes hedder Files.
Det er VBA jeg skriver i, og access er access 2000.
Andet info i mangler?
Avatar billede voyager_dfs Nybegynder
06. august 2002 - 10:58 #1
ja nu siger du jeg skal komme med et svar og enda en 100pro fungerende løsning men er det ikke nok med jeg bare sætter den dims i siden ned til svar og så var det det ?..  og så skylder du mig en rullekebab :oP
Avatar billede cc2000 Nybegynder
06. august 2002 - 10:59 #2
Baaah kim.
Avatar billede benson Nybegynder
06. august 2002 - 12:01 #3
bare lige en kommentar!

Hvordan vil du sammenligne ? Har du ikke slettet din lokale database ?
Avatar billede cc2000 Nybegynder
06. august 2002 - 12:13 #4
jeg vil sammenligne de forskellige records der er i databasen ved f.eks. at tage en record af gangen og se om der er nogen forskel og hvis de ikke stemmer overens så enten oprette recorden i den lokale database eller slette recorden i den lokale database. Kommer jo an på om det er en record der er fjernet eller tilføjet :)

Jeg sletter ikke den lokale database da den indeholder en enkelt søjle med data som jeg ikke må slette.
Avatar billede cc2000 Nybegynder
06. august 2002 - 12:15 #5
Do While Not rs1.EOF
    If rs1(5) < rs2(5) Then
        MsgBox "deleting " & rs1(5)
        DoCmd.RunSQL ("delete * from files where deletenr = " & rs1(5))
        Call Update_database_Click
    End If

rs1.MoveNext
rs2.MoveNext

Loop

Har da fundet ud af lidt. :) Det bruges til at slette hvis der er en record for meget.
Avatar billede benson Nybegynder
06. august 2002 - 13:25 #6
Hvad laver denne kode så `?
'Sletter gammel fil
                Set fs = CreateObject("Scripting.FileSystemObject")
                If (fs.FileExists("C:\dir\Database\Main_comp.mdb")) Then
                fs.DeleteFile "C:\dir\Database\Main_comp.mdb"
                End If
Avatar billede cc2000 Nybegynder
06. august 2002 - 13:59 #7
Den sletter den database jeg bruger til at lave sammenligningen med hvis den eksisterer i forvejen :) Skal jo helst sammenligne med den nyeste ;)
Avatar billede benson Nybegynder
06. august 2002 - 14:14 #8
glem det ;-) jeg havde ikke lige set din :
Inet1.Execute , "GET \database\main_data.mdb :\dir\Database\Main_comp.mdb"

Jeg tænker lige over resten ?
Avatar billede cc2000 Nybegynder
06. august 2002 - 14:22 #9
det eneste jeg mangler i at få den til at virke er selve sammenligningen af data. Hvis der er tilføjet eller fjernet records virker det nu. Men mangler der hvor den går ind og skriver det rigtige indhold :)
Avatar billede cc2000 Nybegynder
06. august 2002 - 14:25 #10
i den database jeg henter fra ftp er der 4 felter:
filename, type, description og createdate
i den database på lokalmaskinen er der:
Update, Filename, type, date, description, deletenr og createdate
deletenr er et autonummer, date og createdate er dato/tid, update er et flueben's felt og resten er tekst-felter.
Avatar billede benson Nybegynder
06. august 2002 - 14:28 #11
Og du rører ikke ved indholdet i files på den lokale database end ved opdatering ?
Avatar billede cc2000 Nybegynder
06. august 2002 - 14:36 #12
nej
Avatar billede cc2000 Nybegynder
06. august 2002 - 14:59 #13
Hvad er den nemmeste måde at overføre en enkelt tabel, med hele indholdet (lige meget om det er med eller uden strukturen) fra den database jeg henter til den jeg har liggende?
Avatar billede cc2000 Nybegynder
07. august 2002 - 15:07 #14
Nå problemet er løst.
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
Kurser inden for grundlæggende programmering

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