Avatar billede juks Novice
07. december 2000 - 11:15 Der er 13 kommentarer og
1 løsning

copy post

Hej..

Jeg sidder med et lille problem.

Jeg har en database på en diskette, med kun en tabel \"TA_Key\" og den indeholder én post et nummer fx \"54522\"
Det jeg så skal kunne er at kopier den ene post ind i en eksiterende tabel i min database på c-drevet.
men jeg kan ikke helt finde ud af det.

<kode start>

Dim opendb As Database
Dim rsSet As Recordset
Dim flytvalue As Recordset



    Set opendb = OpenDatabase(\"a:\\NewDB.mdb\", False, False, \";pwd=dina82\")
    Set rsSet = opendb.OpenRecordset(\"TA_Key\")
    rsSet.Movefirst

her skal den så tage den værdi der er i tabellen og \"putte\" den ind i en tabel der ligge på mit c:drev.
hvordan gør man det.

mvh
Jonas
Avatar billede horus Nybegynder
07. december 2000 - 11:42 #1
Hejsa Juks,

Hvis det er den database du har åben dér hvor du kører koden du vil have det fra disketten ind i skal du lave et recordsset til den tabel du vil have værdien ind i.

Dim rstCBase as recordset

set rstCBase = CurrentDB.OpenRecordset(Navnet på tabellen værdien skal ind i)

så har du oprettet et recordset til den anden tabel.

Dernæst tager du værdien fra a: og smider ind i tabellen på c:

rstCBase.AddNew

rstCBase![FeltNavn som værdien skal ind i] = rsSet![FeltNavn fra a: der indeholder din værdi]

rstCBase.Update

det burde gøre det du er ude efter...

Såfremt du vil have værdien ind i en anden database på C: end den hvorfra du kører denne kode, så skal du selvfølgelig åbne den database på samme måde som du åbner den fra a:, og så bare indsætte dens variabelnavn i stedet for CurrentDB i koden ovenover...

Håber det hjælper dig,

Horus
Avatar billede horus Nybegynder
07. december 2000 - 11:43 #2
Min kode skal du selvfølgelig bare føje til det du allerede har lavet...
Avatar billede juks Novice
07. december 2000 - 12:21 #3
Det virker ikke den skriver at databasen er i brug.

ub opendb()


Dim opendb As Database
Dim rsSet As Recordset
Dim db As Database
Dim rstCBase As Recordset



    Set opendb = OpenDatabase(\"a:\\NewDB.mdb\", False, False, \";pwd=dina82\")
    Set rsSet = opendb.OpenRecordset(\"TA_Key\")
    rsSet.MoveFirst

Set rstCBase = CurrentDb.OpenRecordset(\"TA_Key\")

\'så har du oprettet et recordset til den anden tabel.

\'Dernæst tager du værdien fra a: og smider ind i tabellen på c:

rstCBase.AddNew

rstCBase![\"KeyID\"] = rsSet![KeyID]

rstCBase.Update

End Sub


Avatar billede juks Novice
07. december 2000 - 12:23 #4
JEg glemte hvis lige at sige at hvis den værdi den er ved at tilføje eksitere, skal den enten format a: eller lukke databsen eller helst begge dele.
Avatar billede horus Nybegynder
07. december 2000 - 12:41 #5
OK, HVOR henne i koden kommer den fejl der siger at databasen er i brug ???

Du skal nok ikke have \" i om KeyID

Horus
Avatar billede juks Novice
07. december 2000 - 13:10 #6
Den stopper i Set rstCbase = currentDB.open ......

også selvom jeg har ændret værdien


Avatar billede horus Nybegynder
07. december 2000 - 13:22 #7
Hvad hvis du tilføjer følgende:

Dim dbs as database

set dbs = CurrentDB()

Og så ændre linien \"Set rstCBase = CurrentDb.OpenRecordset(\"TA_Key\")\"

til

set rstCBase = dbs.OpenRecordset(\"TA_Key\", dbOpenDynaset)\"

Som det sidste så prøv at føje følgende 2 linier til lige inden End Sub linie:

Set dbs = nothing
set opendb = nothing

Avatar billede juks Novice
07. december 2000 - 13:48 #8
Jeg prøver lige at sende hele koden til dig.
den stopper stadig i set \"dbs =currentdb\"


Sub opendb()


Dim opendb As Database
Dim rsSet As Recordset
Dim dbs As Database
Dim rstCBase As Recordset


   
    Set opendb = OpenDatabase(\"a:\\NewDB.mdb\", False, False, \";pwd=dina82\")
    Set rsSet = opendb.OpenRecordset(\"TA_Key\")
    rsSet.MoveFirst
   
    Set dbs = CurrentDb()
Set rstCBase = dbs.OpenRecordset(\"TA_Key_client\", dbOpenDynaset)
   



\'så har du oprettet et recordset til den anden tabel.

\'Dernæst tager du værdien fra a: og smider ind i tabellen på c:

rstCBase.AddNew

rstCBase![KeyIDcl] = rsSet![KeyID]

rstCBase.Update
Set dbs = Nothing
Set opendb = Nothing
End Sub
Avatar billede horus Nybegynder
07. december 2000 - 13:54 #9
Så prøv dette istedet (når du hgar kopieret den nye kode ind, så prøv lige at lukke din database, og sikker dig at den ikke er åben andre steder - åben den så igen og prøv):

Sub opendb()

Dim opendb As Database
Dim rsSet As Recordset
Dim rstCBase As Recordset
Dim varValue as Variant

    Set opendb = OpenDatabase(\"a:\\NewDB.mdb\", False, False, \";pwd=dina82\")
    Set rsSet = opendb.OpenRecordset(\"TA_Key\")
    rsSet.MoveFirst
   
    varValue = rsSet![KeyID]
    rsSet.Close
    Set opendb = nothing

    Set opendb = CurrentDb()
    Set rstCBase = opendb.OpenRecordset(\"TA_Key_client\", dbOpenDynaset)
   
\'så har du oprettet et recordset til den anden tabel.

\'Dernæst tager du værdien fra a: og smider ind i tabellen på c:

rstCBase.AddNew

rstCBase![KeyIDcl] = varValue

rstCBase.Update
rstCBase.Close

Set opendb = Nothing

End Sub
Avatar billede juks Novice
07. december 2000 - 15:13 #10
Den bliver ved med at sige at databasen på C: er i brug
Avatar billede horus Nybegynder
07. december 2000 - 15:17 #11
hmm, og du har den ikke åbnet andre steder ???? Så ved jeg ikke hvad der er galt... sorry.... jeg vil gerne kigge på den hvis du vil sende den.
(boghold@image.dk)

horus
Avatar billede juks Novice
08. december 2000 - 09:35 #12
Jeg har løst problemet , det var et ugyldigt navn på databasen
Avatar billede horus Nybegynder
08. december 2000 - 09:40 #13
Accepterer du så ikke lige mit svar ?

horus
Avatar billede juks Novice
08. december 2000 - 11:53 #14
Jo og tak for hjælpen?
Håber ikke du brugte alt for meget tid på databasen.

jonas
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