Solved

Access VBA ADO recordset problem

Posted on 2012-03-28
5
540 Views
Last Modified: 2012-04-13
Hi,

I'm using ADO to load a dynamic recordset to a form.

It works okay except when I set the forms recordset to the recordset returned via ADO it is read-only.   I need the form fields to be editable as I'm using a SQL Server Stored proc to update the table.

Any ideas?

I've attached the code below.

Code behind form :

<code>

Public Sub LoadClient(ClientId As Integer)

If Not Me.Recordset Is Nothing Then
    Me.Recordset.CancelUpdate
End If

Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim clDA As New ClientDA
   
   
sql = "some sql"
   
   
Set rs = clDA.GetRecordSet(sql)
Set Me.Recordset = rs
Set rs = Nothing
Set cn = Nothing
Set clDA = Nothing

End Sub

</code>

The clDA class is listed below :

<code>

Public Function GetRecordSet(sql As String) As ADODB.Recordset

   Dim rs As ADODB.Recordset
   
   'Create an instance of the ADO Recordset class, and
   'set its properties
   Set rs = New ADODB.Recordset
   OpenCnn
   With rs
      Set .ActiveConnection = cnn
      .Source = sql
      .LockType = adLockOptimistic
      .CursorType = adOpenKeyset
      .Open
   End With
   
   Set GetRecordSet = rs

End Function

</code>

The connection string is :

<code>

Public Const CNN_STR = "DRIVER=SQL
Server;SERVER=server;Trusted_Connection=Yes;DATABASE=database;"

Public Const CNN_PRV = "Microsoft.Access.OLEDB.10.0"
</code>

Any ideas?
0
Comment
Question by:lee_jd
5 Comments
 
LVL 11

Expert Comment

by:rajvja
Comment Utility
Try using rs.clone

Me.Recordset = rs.clone()
0
 
LVL 77

Expert Comment

by:peter57r
Comment Utility
Which version of Access?  From (maybe faulty) memory I think you need at least A2003 for the data to be updateable.
0
 
LVL 119

Accepted Solution

by:
Rey Obrero earned 500 total points
Comment Utility
see the method use from this link

How to use ADO disconnected and persisted recordsets
http://support.microsoft.com/kb/195082
0
 
LVL 2

Author Comment

by:lee_jd
Comment Utility
I'm run Access 2010 and querying SQL Server 2008 R2.

I tried rs.clone() but it had no effect.
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
did you look at the method from the link i posted ?
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Regardless of which version on MS Access you are using, one of the harder data-entry forms to create is one where most data from previous entries needs to be appended to new records, especially when there are numerous fields and records involved.  W…
A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now