Kein Update in Form an virtuellem Recordsets des MsDataShape Provi

04/11/2009 - 13:56 von Walter Guyer | Report spam
Hallo

Access 07 Form erlaubt mir in meiner Konfiguration keine Updates und Inserts
an virtuellen Datenfeldern oder Tabellen aus einem "Shaped (ADO-) Recordset".

Habe ich Optionen in Forms / Access übersehen, die das Editieren von von
Recordsets des MsDataShape Providers erlauben?

Code Beispiel 1 - Virtuelles Datenfeld:

Private rst As New ADODB.Recordset
Private cnx As New ADODB.Connection

Private Sub Form_Load()
Const strSQL = "SHAPE TABLE Person_B " & _
"APPEND NEW adBoolean AS IsSelected"

cnx.Provider = "MSDataShape"
cnx.Open "Data Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & CurrentDb.name

rst.CursorLocation = adUseClient
rst.Open strSQL, cnx, adOpenForwardOnly, adLockOptimistic

rst!IsSelected = True
rst.Update
Set Me.Recordset = rst
End Sub

'Auf VB Ebene ist hier das virtuelle Feld "IsSelected" editierbar.
'Im Form jedoch wird folgender Fehler ausgegeben:
' "Feld 'IsSelected' basiert auf einem Ausdruck und kann nicht
bearbeitet werden."


Code Beispiel 2 - Virtuelle Tabelle:
Code wie oben aber mit

Const strSQL = "SHAPE APPEND NEW adVarChar (32) AS Familyname, " & _
" NEW adBoolean AS IsSelected"

'Auf VB Ebene ist ein rst.AddNew möglich
'Im Form jedoch könen keine Records angefügt werden.
 

Lesen sie die antworten

#1 Oliver Straub
04/11/2009 - 17:08 | Warnen spam
Hallo,

Access 07 Form erlaubt mir in meiner Konfiguration keine Updates und
Inserts
an virtuellen Datenfeldern oder Tabellen aus einem "Shaped (ADO-)
Recordset".



das Problem ist bei Checkboxen bekannt.
Ich selber verwende folgende Lösung (A02):

Die Checkbox aktivieren aber sperren.

Im MouseUpEvent der Checkbox:

Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
rs("CheckBox") = (rs("CheckBox") = False)
rs.UpdateBatch
Set rs = Nothing

Damit sollte es auch bei A07 gehen.
Musst Du mal ausprobieren.


Gruss
Oliver

Ähnliche fragen