Avatar billede jenssp Nybegynder
19. november 2009 - 14:33 Der er 7 kommentarer

VBA

Hej

Jeg forsøger at åbne en formular i Access vha. VBA i Outlook.

Jeg kan godt åbne formularen og skrive noget i den. Men når jeg vil gemme og lukke den, får jeg fejlmeddelelsen Runtime error 2489, objektet 'Ny lejer' er ikke åbent. Formularen er jo åben. Det kan jeg se, hvis jeg skifter til access. Jeg bruger nedenstående kode:

  Dim appAccess As Object
  Set appAccess = CreateObject("Access.Application")
  appAccess.Application.Visible = True

  sti = "C:\Sommerhus\Nordhaus.mdb"
  appAccess.OpenCurrentDatabase sti
  appAccess.DoCmd.OpenForm "Ny lejer"
  appAccess.Forms![Ny lejer].Fornavn = "Jens"
  appAccess.DoCmd.Save acForm, "Ny lejer"  ' her går det galt
  appAccess.DoCmd.Close acForm, "Ny lejer"
  Set appAccess = Nothing

Jeg håber, at du kan hjælpe mig
Avatar billede terry Ekspert
19. november 2009 - 14:42 #1
Try without .save
Avatar billede terry Ekspert
19. november 2009 - 14:49 #2
appAccess.DoCmd.Save acForm, "Ny lejer" 

saves changes made to the design of the form NOT to the data
Avatar billede terry Ekspert
19. november 2009 - 14:51 #3
Closing the dB will alos close the from but you can also close that first

docmd.Close acForm, "Ny lejer"
Avatar billede jenssp Nybegynder
19. november 2009 - 14:53 #4
Hvis jeg udelader .save kommer der til at stå følgende

appAccess.DoCmd acForm, "Ny lejer" 

Det er ikke nogen gyldig kommando.

Hvilken kommando skal jeg bruge for at gemme dataene?
Avatar billede terry Ekspert
19. november 2009 - 15:06 #5
!

Remove the whole line, I thought you would understand thats what I meant sorry :o(

% appAccess.DoCmd.Save acForm, "Ny lejer"  ' her går det galt

+ docmd.Close acForm, "Ny lejer"
Avatar billede terry Ekspert
19. november 2009 - 15:13 #6
You can save the record before closing the form

DoCmd.RunCommand acCmdSaveRecord

then close the dB or form, but it should be enough just closing the dB, access does the rest
Avatar billede Slettet bruger
19. november 2009 - 21:19 #7
save - 'at gemme' - denne antikverede og dog herskende kontrol med blivende indhold - ja den gælder ikke for databaser.

Men - ja den findes også for 'nuværende post' og hedder noget med saverecord - men det er overflødigt medmindre et eller andet er afhængigt af at den bagvedlæggende datakilde 'flushes'

En formular er et brugerinterface - ingen grund til at fjernstyre sådan en for at opdatere database indhold. (eller gøre den synlig for at lukke den 6 kodelinier længerere nede)

Ikke at koden bliver meget kortere, men ingen grund til at sætte større skibe i søen end nødvendigt.
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