Avatar billede jan Novice
10. juni 2003 - 21:40 Der er 13 kommentarer og
1 løsning

Opslag og opdatering samtidig i acces 97

Ingen træer vokser ind i himmelen.

PÅ et spørgsmål om hvrdan man på enog samme tid laver opslag og opdatering fik jeg følgende gode råd

Private Sub Kombinationsboks175_NotInList(NewData As String, Response As Integer)
Dim cn As ADODB.Connection
    Dim rst As ADODB.Recordset
   
    Set cn = CurrentProject.Connection
    Set rst = New ADODB.Recordset
    rst.Open "[T Faglig Database]", cn, adOpenKeyset, adLockOptimistic
   
   
    rst.AddNew
    rst!Arbejdsgiver = NewData
    rst.Update
    Response = acDataErrAdded

    rst.Close
    Set rst = Nothing
    cn.Close
    Set cn = Nothing
End Sub

Det fungerer perfekt i acces 2000.

Nu er problemet bare om dem jeg laver en database til arbejder i 97 og kan ikke lige opgardere (!!!!!!)
Når jeg kører ovestående i 97 kommer der følgende fejlmeldinger

"Der kan ikke tildeles en skrivebeskyttet egenskab"

Så prøver jeg at ændrer rst!Arbejdsgiver = NewData til rst.Arbejdsgiver = NewData

Herefter modtager jeg følgende besked

"Et objekt er obligatorisk" og peger imod  "Set cn = CurrentProject.Connection"

Så går jeg i stå.....Kan nogen hjælpe
10. juni 2003 - 21:43 #1
Har du en reference til Microsoft ActiveX 2.x Object Library?
10. juni 2003 - 21:45 #2
Ellers prøv denne løsning:
    Dim db as Database
    Dim rst As DAO.Recordset
   
    Set db= Currentdb
    Set rst = db.openrecordset("T Faglig Database", dbopendynaset)   
   
    rst.AddNew
    rst!Arbejdsgiver = NewData
    rst.Update
    Response = acDataErrAdded

    rst.Close
    Set rst = Nothing
End Sub
Avatar billede mugs Novice
10. juni 2003 - 21:51 #3
Jeg har tidligere brugt denne kode til at tilføje poster i en access97 db. Jeg ved ikke om det fungerer i dette tilfælde og er ikke afprøvet i en NotInList situation:

Dim Rst As Recordset
Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("TABELNAVN")
    With Rst
    .AddNew
    ![Arbejdsgiver] = NewData
    .Update
End With
Set rst = Nothing
Avatar billede jan Novice
10. juni 2003 - 22:25 #4
Jeg har ingen reference til Microsoft ActiveX 2.x Object Library.

Desværre er der ingen af jeres to forslag der fungerer.
Ved Mugs er der syntaksfel i Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("T Faglig Database")

og ved Thomas siger den at "Den brugerdiffinerede tybe er ikke difineret" og pejer imod Dim db as Database ( jeg har prøvet ændrer Database med navnet )
10. juni 2003 - 22:27 #5
Jan, du SKAL enten have en reference til Microsoft DAO 3.x Object Library (og derved benytte mit forslag) eller en reference til Microsoft ActiveX 2.x Data Object Library og derved benytte din oprindelige metode.

Har du ingen af de 2 referencer?
Avatar billede mugs Novice
10. juni 2003 - 22:27 #6
Jeg vil nok arbejde videre på Thomas forslag. Umiddelbart vil jeg tro, at du mangler en reference.
Avatar billede jan Novice
10. juni 2003 - 22:38 #7
Undskyld Thomas - der er mig der snork sover Jeg kan se jeg har ActiveX kontrolelementer, men jeg kan ikke hitte den præcise version
10. juni 2003 - 22:43 #8
Det betyder ikke det helt store. 2.1 er fint nok. Ellers bare den seneste.

Kan du oprette en post manuelt i tabellen blot ved at indtaste en ny arbejdsgiver?
Avatar billede jan Novice
10. juni 2003 - 22:50 #9
Hvis du mener direkte i tabellen, så ja
10. juni 2003 - 23:09 #10
hmmm...du har ikke tilfældigvis en reference, hvor der står "MISSING" eller "MANGLER" foran?
I så fald, er det formentlig den, som driller og skal rettes.
Avatar billede jan Novice
10. juni 2003 - 23:20 #11
Nu er jeg tilbage i den oprindelige metode ( den fra i går )og fejlmeldningen der kommer er herefter 

"Et objekt er obligatorisk" og peger imod  "Set cn = CurrentProject.Connection".
Avatar billede jan Novice
10. juni 2003 - 23:21 #12
Nu er jeg tilbage i den oprendenligemetode ( den fra i går ) og her modtager jeg følgende meddelse

Herefter modtager jeg følgende besked

"Et objekt er obligatorisk" og peger imod  "Set cn = CurrentProject.Connection"

Og jeg kan stadig skive direkte i tabellen
11. juni 2003 - 08:41 #13
Du havde ikke nogle af de MISSING-referencer, som jeg spurgte om i mit forrige indlæg?
Umiddelbart er koden jo korrekt nok. Jeg har dog ikke prøvet at bruge ADO i en Access 97-database (den brugte jo DAO i stedet for ADO).
Avatar billede hnteknik Novice
08. august 2003 - 09:07 #14
Prøv at downloade og installere SP3 til ADO 2.5 fra Microsoft (mdac_typ.exe)
version 2.1 vil ikke funke.

Husk nu at sætte en referece til ADO objectet under funktioner:
Microsoft ActiveX Data Objects 2.5 Object Library.


Du skal nok først fjerne referencen til 2.1 først

Henrik
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