Access 2003 VBA Kopiointi uudeksi tietueeksi

Terve

Sain aikaseksi tehtyä seuraavanlaisen VBA-koodin:
Se tekee seuraavaa: Kopioi valitun osan tiedot. Muuttaa koodin ja avaimen lukua suuremmaksi. Sen pitäisi vielä siirtyä juuri kopioituun uuteen osaan. Mutta sitä se ei tee. Ilmoittaa vain että objekti ei ole avoinna. Missä vika?




Private Sub kopioiSQL_Click()
On Error GoTo Err_kopioiSQL_Click


uusinumero = DMax("[Avain]", "[OsatT]") 1
kopioitava = DMax("[Koodi]", "[OsatT]") 1

CurrentDb.Execute "INSERT INTO OsatT (Avain, Tyyppi, koodi, size, valmistaja, Nnumero) " & _
"SELECT " & CLng(uusinumero.Value) & ", Tyyppi," & CLng(kopioitava.Value) & ", size, valmistaja, Nnumero " & _
"FROM OsatT WHERE Avain=" & CLng(Avain.Value), Koodi = " & CLng(koodi.Value)"

Me.Refresh




DoCmd.GoToRecord , DMax("[Avain]", "[OsatT]")


Exit_kopioiSQL_Click:
Exit Sub

Err_kopioiSQL_Click:
MsgBox Err.Description
Resume Exit_kopioiSQL_Click

End Sub

Tämä kopioi osan tiedot sekä muuttaa avain ja koodin numeroa suuremmaksi luvuksi. Nyt kun yritän avata samaan syssyyn niin Access ilmoittaa että objekti se ja se ei ole avoinna?

Missä vika?

Vastauksista kiitokset
4374
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

GotoRecord komennossa on väärät argumentit. Yrität laittaa tietuenumeron tietokantaobjektin nimen tilalle.

Docmd.GotoRecord ObjectType, ObjectName, Record, Offset

Äänestä
  • Ei vaan vieläkään toimi.

    Kaunis kiitos kuitenkin.

    Äänestä

  • qwerty12 kirjoitti:

    Ei vaan vieläkään toimi.

    Kaunis kiitos kuitenkin.

    Private Sub kopioiSQL_Click()
    On Error GoTo Err_kopioiSQL_Click

    uusinumero = DMax("[Avain]", "[OsatT]") 1
    kopioitava = DMax("[Koodi]", "[OsatT]") 1

    CurrentDb.Execute "INSERT INTO OsatT (Avain, Tyyppi, koodi, size, valmistaja, Nnumero) " & _
    "SELECT " & CLng(uusinumero) & ", Tyyppi," & CLng(kopioitava) & ", size, valmistaja, Nnumero " & _
    "FROM OsatT WHERE Avain=" & CLng(Me!Avain) & "AND koodi = " & CLng(Me!koodi)

    Me.Requery
    DoCmd.GoToRecord acDataForm, Me.Name, acLast

    Exit_kopioiSQL_Click:
    Exit Sub

    Err_kopioiSQL_Click:
    MsgBox Err.Description
    Resume Exit_kopioiSQL_Click

    Äänestä

  • mmm kirjoitti:

    Private Sub kopioiSQL_Click()
    On Error GoTo Err_kopioiSQL_Click

    uusinumero = DMax("[Avain]", "[OsatT]") 1
    kopioitava = DMax("[Koodi]", "[OsatT]") 1

    CurrentDb.Execute "INSERT INTO OsatT (Avain, Tyyppi, koodi, size, valmistaja, Nnumero) " & _
    "SELECT " & CLng(uusinumero) & ", Tyyppi," & CLng(kopioitava) & ", size, valmistaja, Nnumero " & _
    "FROM OsatT WHERE Avain=" & CLng(Me!Avain) & "AND koodi = " & CLng(Me!koodi)

    Me.Requery
    DoCmd.GoToRecord acDataForm, Me.Name, acLast

    Exit_kopioiSQL_Click:
    Exit Sub

    Err_kopioiSQL_Click:
    MsgBox Err.Description
    Resume Exit_kopioiSQL_Click

    Suuret kiitokset tuosta. Olen niin surkea tässä koodauksessa ettei tuu mistää mitää. Mutta vielä kerran suuret kiitokset. Hyvin toimii.

    Äänestä

Kommentoi aloitusta


qwerty12 kirjoitti:

Terve

Sain aikaseksi tehtyä seuraavanlaisen VBA-koodin:
Se tekee seuraavaa: Kopioi valitun osan tiedot. Muuttaa koodin ja avaimen lukua suuremmaksi. Sen pitäisi vielä siirtyä juuri kopioituun uuteen osaan. Mutta sitä se ei tee. Ilmoittaa vain että objekti ei ole avoinna. Missä vika?




Private Sub kopioiSQL_Click()
On Error GoTo Err_kopioiSQL_Click


uusinumero = DMax("[Avain]", "[OsatT]") 1
kopioitava = DMax("[Koodi]", "[OsatT]") 1

CurrentDb.Execute "INSERT INTO OsatT (Avain, Tyyppi, koodi, size, valmistaja, Nnumero) " & _
"SELECT " & CLng(uusinumero.Value) & ", Tyyppi," & CLng(kopioitava.Value) & ", size, valmistaja, Nnumero " & _
"FROM OsatT WHERE Avain=" & CLng(Avain.Value), Koodi = " & CLng(koodi.Value)"

Me.Refresh




DoCmd.GoToRecord , DMax("[Avain]", "[OsatT]")


Exit_kopioiSQL_Click:
Exit Sub

Err_kopioiSQL_Click:
MsgBox Err.Description
Resume Exit_kopioiSQL_Click

End Sub

Tämä kopioi osan tiedot sekä muuttaa avain ja koodin numeroa suuremmaksi luvuksi. Nyt kun yritän avata samaan syssyyn niin Access ilmoittaa että objekti se ja se ei ole avoinna?

Missä vika?

Vastauksista kiitokset

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu