Já se na úvod s tím, že jsem nováček Access/VBA. Snažím se vytvořit sadu formulářů pro zadávání dat v MS Access pro propojený Server SQL Databáze pro záznam vegetace data. Mám formulář s třemi nevázané ovládací prvky, které poskytují hodnoty do polí pro několik záznamy v podformuláři. Konkrétně, tři ovládací prvky v hlavním formuláři jsou Transect_OID, Data_Recorder, a Data_Observer. V podformuláři, každý Transect_OID odpovídá 30 záznamy odpovídající každé z 30 lokalitách podél transektu, kde rostlinné druhy jsou zaznamenány. Přidal jsem nějaké procedury události v hlavním formuláři do autopopulate odpovídající pole v podformuláři, aby se zajistil soulad záznamů pro celý transektu. Nicméně, toto nastavení mělo za následek chybu konfliktu zápisu. Po praní interwebs pro opravy, sledoval jsem na radu v řešení #5 v tomto odkazu https://www.accessrepairnrecovery.com/blog/fix-ms-access-write-conflict-error. Když jsem se přidat navrhl při aktivaci události postup, jsem si Run-time Error 91 "objekt proměnná nebo proměnná bloku nebyla nastavena." Tady je můj kód pro proceduru události:
Private Sub Form_Activate()
Dim rs As ADODB.Recordset
Set rs = Me.Recordset.Clone
rs.Open
rs.Bookmark = Me.Bookmark
DoCmd.RunCommand acCmdRefresh
Me.Bookmark = rs.Bookmark
rs.Close
Set rs = Nothing
End Sub
Private Sub Form_Deactivate()
DoCmd.RunCommand acCmdSaveRecord
End Sub
Private Sub Observer_AfterUpdate()
Me.frmLPIDetail.Form.Data_observer = Me.Observer
Me.Dirty = False
End Sub
Private Sub Recorder_AfterUpdate()
Me.frmLPIDetail.Form.Data_recorder = Me.Recorder
Me.Dirty = False
End Sub
Od zkoumání jiných Run-time error 91 stížností, vypadá to, že tato chyba se vyvolá při:
odpovídající knihovna není vybrán jako referenční. V tomto případě, že by Microsoft ActiveX Data Objects 2.5 Knihovna. Ujistil jsem se, že je vybrána tato možnost.
Objekt, proměnná je deklarována, ale není nastaven. Linka 3 kód by měl být tam, kde je nastavena. Nicméně, tento řádek ladicího programu stěžuje.
Objekt je proměnná nastavena na hodnotu nothing. To je případ druhý-k-poslední řádek, ale moje pochopení je, že řádek vynuluje proměnná objekt
Jít prohlášení v bloku. Tyto příkazy jsou nikdy volal v tomto podprogramu, takže tato příčina může být snadno vyloučit.
Jsem na rozpacích, proč se to děje. Nějakou radu by bylo velmi ocenil.