unerklärliche Access-Abstürze beim Speichern von Formular

18/08/2008 - 12:25 von Thomas Winkler | Report spam
Hi,

in einem UFO (Formular2) gibt es *ein* Control - ein
Register-Steuerelement. Darauf soll ein fester Reiter und n weitere -
dynamisch generierte - reiter zu sehen sein, welche jeweils ein
UFO-Steuerelement beinhalten. Der Code wird vom HF (Formular1)
ausgeführt. Formular2 ist ungebunden und besitzt auch keinen Code.

Per Klick auf einen Button im HF wird ein Reiter und dessen UFO-Control
erzeugt:

Private bytCounter As Byte

Private Sub Befehl0_Click()
Dim strDummy As String
Dim ctl As Access.Control

bytCounter = bytCounter + 1

'Objektname des UFOs merken, und aus UFO-Control entfernen
'damit es in Entwurfsansicht geöffnet werden kann
strDummy = Me!ufm_Test.SourceObject
Me!ufm_Test.SourceObject = ""

'UFO in Entwurfsansicht öffnen
DoCmd.OpenForm strDummy$, acDesign, , , , acHidden

'neuen Reiter anlegen
Set ctl = CreateControl(strDummy, acPage, acDetail, "reg_Test")
ctl.Name = "reg_" & bytCounter
ctl.Caption = "new_" & bytCounter

'Neues UFO-Control in diesen Reiter legen
Set ctl = CreateControl(strDummy, acSubform, acDetail, ctl.Name)
ctl.Name = "ufm_" & bytCounter

Set ctl = Nothing

'UFO speichern und schließen - alles funktioniert
DoCmd.Close acForm, strDummy$, acSaveYes

'UFO wieder im UFO-Control laden
Me!ufm_Test.SourceObject = strDummy
End Sub

Beim Laden sollen alle vorhandenen Reiter (außer dem ersten) gelöscht
werden.

Private Sub Form_Open(Cancel As Integer)
Dim objPages As Access.Pages
Dim strDummy As String
Dim ctl As Access.Control

'Objektname des UFOs merken, und aus UFO-Control entfernen
'damit es in Entwurfsansicht geöffnet werden kann
strDummy = Me!ufm_Test.SourceObject
Me!ufm_Test.SourceObject = ""

'UFO in Entwurfsansicht öffnen
DoCmd.OpenForm strDummy$, acDesign, , , , acHidden

'alle Seiten außer der ersten löschen
Set objPages = Forms(strDummy$).Controls("reg_Test").Pages
While objPages.Count > 1
objPages.Remove 1
Wend
Set objPages = Nothing

'UFO speichern und schließen
'Hier raucht's
DoCmd.Close acForm, strDummy$, acSaveYes

'UFO wieder im UFO-Control laden
Me!ufm_Test.SourceObject = strDummy
End Sub

Das Anlegen der Controls mit anschließendem Speichern funktioniert. Beim
Versuch nach dem Löschen der Reiter das Form zu speichern stürzt Access ab.

Getestet wurde sowohl AXP und A2k3 mit allen SPs und Patches - jeweils
in allen unterstützten DB-Formaten.
Decompile wurde gemacht, und auch ein Import aller Objekte in eine
frische DB hat nicht geholfen. Glaube es handelt sich um einen Access-Bug.

Thomas

"Access? Damit arbeite ich nicht. Das ist doch nur ein abgespecktes Excel."
 

Lesen sie die antworten

#1 Thomas Winkler
19/08/2008 - 08:13 | Warnen spam
Hi,

Das Anlegen der Controls mit anschließendem Speichern funktioniert. Beim
Versuch nach dem Löschen der Reiter das Form zu speichern stürzt Access ab.

Getestet wurde sowohl AXP und A2k3 mit allen SPs und Patches - jeweils
in allen unterstützten DB-Formaten.
Decompile wurde gemacht, und auch ein Import aller Objekte in eine
frische DB hat nicht geholfen. Glaube es handelt sich um einen Access-Bug.



Hàtte ich jetzt auch noch eine Frage formulieren sollen? ;-)

Könnt ihr das Verhalten bestàtigen bzw. gibt es doch noch einen
übersehenen Bug im Code? Sind Workarounds bekannt?


Thomas

"Access? Damit arbeite ich nicht. Das ist doch nur ein abgespecktes Excel."

Ähnliche fragen