Solved

Help migrating vb6 code to VB.net

Posted on 2008-06-13
2
1,527 Views
Last Modified: 2013-12-20
I'm migrating a vb6 project to vb/net and I have I'm getting an error saying
name 'adStateOpen' is not declared.      

I can find anyting to on how to re-write this.  this code is below

Public Function Clone(ByVal objRecordset As ADODB.Recordset, Optional ByVal LockType As ADODB.LockTypeEnum = ADODB.LockTypeEnum.adLockBatchOptimistic) As ADODB.Recordset

        'RETURNS A CLONE (COPY OF AN EXISTING RECORDSET)
 

        Dim objNewRS As New ADODB.Recordset

        Dim objField As Object

        Dim lngCnt As Long
 

        On Error GoTo LocalError
 

        objNewRS.CursorLocation = ADODB.CursorLocationEnum.adUseClient

        objNewRS.LockType = LockType
 

        For Each objField In objRecordset.Fields

            objNewRS.Fields.Append(objField.Name, objField.Type, objField.DefinedSize, objField.Attributes)

        Next objField
 

        If Not objRecordset.RecordCount = 0 Then

            objNewRS.ActiveConnection = objRecordset.ActiveConnection

            objNewRS.Open()
 

            objRecordset.MoveFirst()

            While Not objRecordset.EOF

                objNewRS.AddNew()

                For lngCnt = 0 To objRecordset.Fields.Count - 1

                    objNewRS.Fields(lngCnt).Value = objRecordset.Fields(lngCnt).Value

                Next lngCnt

                objRecordset.MoveNext()

            End While

            objNewRS.MoveFirst()

        End If
 

        Clone = objNewRS

        Exit Function
 

LocalError:

        m_sLastError = Err.Number & " - " & Err.Description
 

 

        If objNewRS.State = adStateOpen Then

            objNewRS.Close()

        End If

        objNewRS = Nothing

    End Function

Open in new window

0
Comment
Question by:keptins
2 Comments
 
LVL 43

Accepted Solution

by:
TimCottee earned 125 total points
ID: 21778743
Hello keptins,

The best solution would be to rewrite the whole shooting match with ADO.Net (not ADODB methods).

Now I realise that at this point you probably don't want to do that so the solution is to use the relevant values (either numerical ones or from the relevant enum).

If objNewRS.State = System.Data.ConnectionState.Open Then

And so on.

Regards,

TimCottee
0
 

Author Comment

by:keptins
ID: 21778765
I'm hoping to learn ADO.net in the very near future...do you recommend any books?
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

When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

757 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

18 Experts available now in Live!

Get 1:1 Help Now