Avatar billede ajh87 Nybegynder
21. juni 2004 - 21:12 Der er 13 kommentarer og
1 løsning

Hvad betyder "object invalid or no longer set"

Jeg får en besked:

object invalid or no longer set

debug siger denne linie:    rs.Edit

code stykke omkring fejl:

  rs.Edit
    rs("Name") = txtName.Text
    rs("Initials") = txtUser.Text
    rs("Address1") = txtStreet.Text
    rs("Address2") = txtZip.Text & " " & txtCity.Text
    rs("Phone") = txtPhone.Text
    rs("CellPhone") = txtCell.Text
    rs("Department") = cmbDepartment.List(cmbDepartment.ListIndex)
   
    rs("Password") = txtPassword.Text
  rs.Update


Microsoft support side siger jeg skal installere den nyeste JET 4 service pack - men det har ikke hjulpet...

Der ud over siger de også at det er fordi at der er for mange recordset åbne - hvilket jeg også har prøvet at lukke efter hvert eneklt recordset er blevet brugt...
BEMÆRK det er samme variabel recordset'ene bliver åbnet på...

please help :o)

Mvh
ajh87
21. juni 2004 - 21:15 #1
Det betyder at dit recordset (rs) ikke er defineret på det givne tidspunkt.
Hvordan ser koden ud forinden?
Avatar billede ajh87 Nybegynder
21. juni 2004 - 21:16 #2
tak for det hurtige svar....



Private Sub cmdOK_Click()
  subCheckAllData
 
  If dataFail = True Then
      Exit Sub
  End If
 
  rs.MoveFirst
 
  rs.Edit
    rs("Name") = txtName.Text
    rs("Initials") = txtUser.Text
    rs("Address1") = txtStreet.Text
    rs("Address2") = txtZip.Text & " " & txtCity.Text
    rs("Phone") = txtPhone.Text
    rs("CellPhone") = txtCell.Text
    rs("Department") = cmbDepartment.List(cmbDepartment.ListIndex)
   
    rs("Password") = txtPassword.Text
  rs.Update
 
  MsgBox "User successfully modified!", vbOKOnly + vbInformation, "StarDesk Server Console"
 
  Unload frmEditUsr
  frmMain.SetFocus
End Sub
Avatar billede ajh87 Nybegynder
21. juni 2004 - 21:16 #3
subCheckAllData er en sub der checker om alle felter på formen er udfyldt korerkt
21. juni 2004 - 21:16 #4
Du skal starte med noget á la dette:

Dim rs as DAO.Recordset
Dim db as Database
Set db = Opendatabase("C:\dinDatabase.mdb")
Set rs = db.Openrecordset("Din tabel", dbopendynaset)

rs.Edit
....
Avatar billede ajh87 Nybegynder
21. juni 2004 - 21:18 #5
i general i formen er dette:

Dim db As Database
Dim rs As Recordset
Dim ws As Workspace

i form_load i formen er dette:

  Set ws = DBEngine.Workspaces(0)
  Set db = ws.OpenDatabase(App.Path & "\data.mdb")
21. juni 2004 - 21:20 #6
hmm, men det er tydeligt, at den ikke genkender objektet, når den kommer ind i cmdOK_Click-proceduren.
Bruger du recordsettet i andre procedurer?
Avatar billede ajh87 Nybegynder
21. juni 2004 - 21:21 #7
i form_load bruger jeg RS til at fylde felterne ud...
Avatar billede ajh87 Nybegynder
21. juni 2004 - 21:22 #8
kunne man nøjes med at gen-erklære den `???

redim eller hvad det hedder..

men der siger en syntext error hvis jeg siger:    ReDim rs As Recordset
i editoren
21. juni 2004 - 21:25 #9
ja, redim duer ikke - den bruges til arrays

Du er sikker på, at du ikke har en rs.Close eller lign i slutningen af form_load?
Avatar billede ajh87 Nybegynder
21. juni 2004 - 21:26 #10
jo det ahvde jeg - har fjernet og den siger det stadig...
21. juni 2004 - 21:27 #11
og heller ingen db.close eller ws.close? (jeg er nødt til at spørge ;)
Avatar billede ajh87 Nybegynder
21. juni 2004 - 21:34 #12
nej men jeg har fået fixet det ved at oprette et modul og ligge erklæringerne ind der...

og har fjernet ALLE close...
takker for din hjælp........

ville høre om du ville hjælpe mig med dette:
http://www.eksperten.dk/spm/512209
21. juni 2004 - 21:37 #13
sorry, jeg så godt dit spm, men jeg ved intet om det.

Beklager :o(
Avatar billede ajh87 Nybegynder
21. juni 2004 - 21:43 #14
ok takker for hjælpen
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





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis