By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,106 Members | 2,679 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,106 IT Pros & Developers. It's quick & easy.

Current Recordset does not support updating - HELP needed!

P: n/a
I've come up with an error which the solution eludes me. I get the
error:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in HRTest.exe

Additional information: Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.


It occurs when I attempt to add a new record. I've stripped out much
of the code, leaving the pertinent (I hope) info. I'm using MS Access
2003 as the database.

The error appears to be quite self-explanatary, but I've read about
the locktype an it seems correct. The "Current Recordset" I'm unsure
of. I just want to find out if the record is on file and if not, add
it, otherwise I'll update it.

Sounds simple, but I need help.

Thanks,

Hexman

---------------------------------------------------------------------------------------------------
Imports System.Data.OleDb
'
'
'
Public Class Form1

Inherits System.Windows.Forms.Form
'
'
'
Public db As ADODB.Connection
Public C As ADODB.Command
Public POrstData As ADODB.Recordset

Private Sub DoUpdate()

'make connection and open database
db = New ADODB.Connection

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & txtDatabaseDir & "HRMDB.MDB" &
";Persist Security Info=False"

db.Open()

C = New ADODB.Command
C.ActiveConnection = db
C.CommandType = ADODB.CommandTypeEnum.adCmdText

'create and open record set

POrstData = New ADODB.Recordset
POrstData.Open("PurOrd", db,
ADODB.CursorTypeEnum.adOpenkeyset,
ADODB.LockTypeEnum.adLockOptimistic, True)

End Sub

Private Sub UpdateProcess()

C.CommandText = "Select PODate, POLoc, POItem FROM PurOrd " & _
"where PODate = #" & SelectedDate & "# and POLoc = '" & strLoc & "' "
& _
"AND POItem = " & CInt(strItem)

POrstData = C.Execute

If POrstData.EOF = True Then
POrstData.AddNew() <======= Fails with Error =====
POrstData.Fields.Item("PODate").Value = "#" & strDate & "#"
POrstData.Fields.Item("POLoc").Value = strLoc
POrstData.Fields.Item("POItem").Value = CInt(strItem)
POrstData.Update()
Else
MsgBox("Record Found: #" & SelectedDate & "# " & strLoc & " "
& CInt(strItem))
End If

End Sub

Feb 20 '06 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Hexman wrote:
I've come up with an error which the solution eludes me. I get the
error:

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in HRTest.exe

Additional information: Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

It occurs when I attempt to add a new record. I've stripped out much
of the code, leaving the pertinent (I hope) info. I'm using MS Access
2003 as the database.

The error appears to be quite self-explanatary, but I've read about
the locktype an it seems correct. The "Current Recordset" I'm unsure
of. I just want to find out if the record is on file and if not, add
it, otherwise I'll update it.

Sounds simple, but I need help.

Thanks,

Hexman

---------------------------------------------------------------------------------------------------
Imports System.Data.OleDb
'
'
'
Public Class Form1

Inherits System.Windows.Forms.Form
'
'
'
Public db As ADODB.Connection
Public C As ADODB.Command
Public POrstData As ADODB.Recordset

Private Sub DoUpdate()

'make connection and open database
db = New ADODB.Connection

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & txtDatabaseDir & "HRMDB.MDB" &
";Persist Security Info=False"

db.Open()

C = New ADODB.Command
C.ActiveConnection = db
C.CommandType = ADODB.CommandTypeEnum.adCmdText

'create and open record set

POrstData = New ADODB.Recordset
POrstData.Open("PurOrd", db,
ADODB.CursorTypeEnum.adOpenkeyset,
ADODB.LockTypeEnum.adLockOptimistic, True)

End Sub

Private Sub UpdateProcess()

C.CommandText = "Select PODate, POLoc, POItem FROM PurOrd " & _
"where PODate = #" & SelectedDate & "# and POLoc = '" & strLoc & "' "
& _
"AND POItem = " & CInt(strItem)

POrstData = C.Execute

If POrstData.EOF = True Then
POrstData.AddNew() <======= Fails with Error =====
POrstData.Fields.Item("PODate").Value = "#" & strDate & "#"
POrstData.Fields.Item("POLoc").Value = strLoc
POrstData.Fields.Item("POItem").Value = CInt(strItem)
POrstData.Update()
Else
MsgBox("Record Found: #" & SelectedDate & "# " & strLoc & " "
& CInt(strItem))
End If

End Sub


Why are you using old ADO and not ADO.NET?

Chris
Feb 21 '06 #2

P: n/a
On Mon, 20 Feb 2006 21:59:50 -0500, Chris <no@spam.com> wrote:
Hexman wrote:
I've come up with an error which the solution eludes me. I get the
error:

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in HRTest.exe

Additional information: Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

It occurs when I attempt to add a new record. I've stripped out much
of the code, leaving the pertinent (I hope) info. I'm using MS Access
2003 as the database.

The error appears to be quite self-explanatary, but I've read about
the locktype an it seems correct. The "Current Recordset" I'm unsure
of. I just want to find out if the record is on file and if not, add
it, otherwise I'll update it.

Sounds simple, but I need help.

Thanks,

Hexman

---------------------------------------------------------------------------------------------------
Imports System.Data.OleDb
'
'
'
Public Class Form1

Inherits System.Windows.Forms.Form
'
'
'
Public db As ADODB.Connection
Public C As ADODB.Command
Public POrstData As ADODB.Recordset

Private Sub DoUpdate()

'make connection and open database
db = New ADODB.Connection

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & txtDatabaseDir & "HRMDB.MDB" &
";Persist Security Info=False"

db.Open()

C = New ADODB.Command
C.ActiveConnection = db
C.CommandType = ADODB.CommandTypeEnum.adCmdText

'create and open record set

POrstData = New ADODB.Recordset
POrstData.Open("PurOrd", db,
ADODB.CursorTypeEnum.adOpenkeyset,
ADODB.LockTypeEnum.adLockOptimistic, True)

End Sub

Private Sub UpdateProcess()

C.CommandText = "Select PODate, POLoc, POItem FROM PurOrd " & _
"where PODate = #" & SelectedDate & "# and POLoc = '" & strLoc & "' "
& _
"AND POItem = " & CInt(strItem)

POrstData = C.Execute

If POrstData.EOF = True Then
POrstData.AddNew() <======= Fails with Error =====
POrstData.Fields.Item("PODate").Value = "#" & strDate & "#"
POrstData.Fields.Item("POLoc").Value = strLoc
POrstData.Fields.Item("POItem").Value = CInt(strItem)
POrstData.Update()
Else
MsgBox("Record Found: #" & SelectedDate & "# " & strLoc & " "
& CInt(strItem))
End If

End Sub


Why are you using old ADO and not ADO.NET?

Chris

Its what I've had examples of. Please point me in the ADO.NET
direction. I need examples (add, delete, query, update, etc.)

Thanks,

Hexman

Feb 21 '06 #3

P: n/a
Look in the .net Framework SDK... it has several examples of ado.net

http://msdn.microsoft.com/netframework/

"Hexman" wrote:
On Mon, 20 Feb 2006 21:59:50 -0500, Chris <no@spam.com> wrote:
Hexman wrote:
I've come up with an error which the solution eludes me. I get the
error:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in HRTest.exe

Additional information: Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
It occurs when I attempt to add a new record. I've stripped out much
of the code, leaving the pertinent (I hope) info. I'm using MS Access
2003 as the database.

The error appears to be quite self-explanatary, but I've read about
the locktype an it seems correct. The "Current Recordset" I'm unsure
of. I just want to find out if the record is on file and if not, add
it, otherwise I'll update it.

Sounds simple, but I need help.

Thanks,

Hexman

---------------------------------------------------------------------------------------------------
Imports System.Data.OleDb
'
'
'
Public Class Form1

Inherits System.Windows.Forms.Form
'
'
'
Public db As ADODB.Connection
Public C As ADODB.Command
Public POrstData As ADODB.Recordset

Private Sub DoUpdate()

'make connection and open database
db = New ADODB.Connection

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & txtDatabaseDir & "HRMDB.MDB" &
";Persist Security Info=False"

db.Open()

C = New ADODB.Command
C.ActiveConnection = db
C.CommandType = ADODB.CommandTypeEnum.adCmdText

'create and open record set

POrstData = New ADODB.Recordset
POrstData.Open("PurOrd", db,
ADODB.CursorTypeEnum.adOpenkeyset,
ADODB.LockTypeEnum.adLockOptimistic, True)

End Sub

Private Sub UpdateProcess()

C.CommandText = "Select PODate, POLoc, POItem FROM PurOrd " & _
"where PODate = #" & SelectedDate & "# and POLoc = '" & strLoc & "' "
& _
"AND POItem = " & CInt(strItem)

POrstData = C.Execute

If POrstData.EOF = True Then
POrstData.AddNew() <======= Fails with Error =====
POrstData.Fields.Item("PODate").Value = "#" & strDate & "#"
POrstData.Fields.Item("POLoc").Value = strLoc
POrstData.Fields.Item("POItem").Value = CInt(strItem)
POrstData.Update()
Else
MsgBox("Record Found: #" & SelectedDate & "# " & strLoc & " "
& CInt(strItem))
End If

End Sub


Why are you using old ADO and not ADO.NET?

Chris

Its what I've had examples of. Please point me in the ADO.NET
direction. I need examples (add, delete, query, update, etc.)

Thanks,

Hexman

Feb 21 '06 #4

P: n/a
OK,

I looked at the examples in the SDK and other internet sources --- and
now I'm even more confused. I wish there was an example of someone
reading a transaction file and updating a table (add, update & delete
based on the transaction type). I've seen ASP code, C code & VB code
with ADO classic and ADO.NET, some with SQL, OleDB, ODBC, .....

Don't know which way to turn - just trying to get this task finished
(along with being guided down the correct path of learning about
this).

I've seen so much it really bluring. I thought my approach in the
code below was a good solution, but apparently not.

I need more help.

Can someone guide me closer to the objective?

Thanks,

Hexman

On Mon, 20 Feb 2006 20:37:18 -0800, "Denny" <st*****@community.nospam>
wrote:
Look in the .net Framework SDK... it has several examples of ado.net

http://msdn.microsoft.com/netframework/

"Hexman" wrote:
On Mon, 20 Feb 2006 21:59:50 -0500, Chris <no@spam.com> wrote:
>Hexman wrote:
>> I've come up with an error which the solution eludes me. I get the
>> error:
>>
>>
>>>An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in HRTest.exe
>>>
>>>Additional information: Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
>>
>>
>> It occurs when I attempt to add a new record. I've stripped out much
>> of the code, leaving the pertinent (I hope) info. I'm using MS Access
>> 2003 as the database.
>>
>> The error appears to be quite self-explanatary, but I've read about
>> the locktype an it seems correct. The "Current Recordset" I'm unsure
>> of. I just want to find out if the record is on file and if not, add
>> it, otherwise I'll update it.
>>
>> Sounds simple, but I need help.
>>
>> Thanks,
>>
>> Hexman
>>
>> ---------------------------------------------------------------------------------------------------
>> Imports System.Data.OleDb
>> '
>> '
>> '
>> Public Class Form1
>>
>> Inherits System.Windows.Forms.Form
>> '
>> '
>> '
>> Public db As ADODB.Connection
>> Public C As ADODB.Command
>> Public POrstData As ADODB.Recordset
>>
>> Private Sub DoUpdate()
>>
>> 'make connection and open database
>> db = New ADODB.Connection
>>
>> db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
>> Source=" & txtDatabaseDir & "HRMDB.MDB" &
>> ";Persist Security Info=False"
>>
>> db.Open()
>>
>> C = New ADODB.Command
>> C.ActiveConnection = db
>> C.CommandType = ADODB.CommandTypeEnum.adCmdText
>>
>> 'create and open record set
>>
>> POrstData = New ADODB.Recordset
>> POrstData.Open("PurOrd", db,
>> ADODB.CursorTypeEnum.adOpenkeyset,
>> ADODB.LockTypeEnum.adLockOptimistic, True)
>>
>> End Sub
>>
>> Private Sub UpdateProcess()
>>
>> C.CommandText = "Select PODate, POLoc, POItem FROM PurOrd " & _
>> "where PODate = #" & SelectedDate & "# and POLoc = '" & strLoc & "' "
>> & _
>> "AND POItem = " & CInt(strItem)
>>
>> POrstData = C.Execute
>>
>> If POrstData.EOF = True Then
>> POrstData.AddNew() <======= Fails with Error =====
>> POrstData.Fields.Item("PODate").Value = "#" & strDate & "#"
>> POrstData.Fields.Item("POLoc").Value = strLoc
>> POrstData.Fields.Item("POItem").Value = CInt(strItem)
>> POrstData.Update()
>> Else
>> MsgBox("Record Found: #" & SelectedDate & "# " & strLoc & " "
>> & CInt(strItem))
>> End If
>>
>> End Sub
>>
>
>Why are you using old ADO and not ADO.NET?
>
>Chris

Its what I've had examples of. Please point me in the ADO.NET
direction. I need examples (add, delete, query, update, etc.)

Thanks,

Hexman


Feb 23 '06 #5

P: n/a
OK,

I looked at the examples in the SDK and other internet sources --- and
now I'm even more confused. I wish there was an example of someone
reading a transaction file and updating a table (add, update & delete
based on the transaction type). I've seen ASP code, C code & VB code
with ADO classic and ADO.NET, some with SQL, OleDB, ODBC, .....

Don't know which way to turn - just trying to get this task finished
(along with being guided down the correct path of learning about
this).

I've seen so much it really bluring. I thought my approach in the
code below was a good solution, but apparently not.

I need more help.

Can someone guide me closer to the objective?

Thanks,

Hexman

On Mon, 20 Feb 2006 20:37:18 -0800, "Denny" <st*****@community.nospam>
wrote:
Look in the .net Framework SDK... it has several examples of ado.net

http://msdn.microsoft.com/netframework/

"Hexman" wrote:
On Mon, 20 Feb 2006 21:59:50 -0500, Chris <no@spam.com> wrote:
>Hexman wrote:
>> I've come up with an error which the solution eludes me. I get the
>> error:
>>
>>
>>>An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in HRTest.exe
>>>
>>>Additional information: Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
>>
>>
>> It occurs when I attempt to add a new record. I've stripped out much
>> of the code, leaving the pertinent (I hope) info. I'm using MS Access
>> 2003 as the database.
>>
>> The error appears to be quite self-explanatary, but I've read about
>> the locktype an it seems correct. The "Current Recordset" I'm unsure
>> of. I just want to find out if the record is on file and if not, add
>> it, otherwise I'll update it.
>>
>> Sounds simple, but I need help.
>>
>> Thanks,
>>
>> Hexman
>>
>> ---------------------------------------------------------------------------------------------------
>> Imports System.Data.OleDb
>> '
>> '
>> '
>> Public Class Form1
>>
>> Inherits System.Windows.Forms.Form
>> '
>> '
>> '
>> Public db As ADODB.Connection
>> Public C As ADODB.Command
>> Public POrstData As ADODB.Recordset
>>
>> Private Sub DoUpdate()
>>
>> 'make connection and open database
>> db = New ADODB.Connection
>>
>> db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
>> Source=" & txtDatabaseDir & "HRMDB.MDB" &
>> ";Persist Security Info=False"
>>
>> db.Open()
>>
>> C = New ADODB.Command
>> C.ActiveConnection = db
>> C.CommandType = ADODB.CommandTypeEnum.adCmdText
>>
>> 'create and open record set
>>
>> POrstData = New ADODB.Recordset
>> POrstData.Open("PurOrd", db,
>> ADODB.CursorTypeEnum.adOpenkeyset,
>> ADODB.LockTypeEnum.adLockOptimistic, True)
>>
>> End Sub
>>
>> Private Sub UpdateProcess()
>>
>> C.CommandText = "Select PODate, POLoc, POItem FROM PurOrd " & _
>> "where PODate = #" & SelectedDate & "# and POLoc = '" & strLoc & "' "
>> & _
>> "AND POItem = " & CInt(strItem)
>>
>> POrstData = C.Execute
>>
>> If POrstData.EOF = True Then
>> POrstData.AddNew() <======= Fails with Error =====
>> POrstData.Fields.Item("PODate").Value = "#" & strDate & "#"
>> POrstData.Fields.Item("POLoc").Value = strLoc
>> POrstData.Fields.Item("POItem").Value = CInt(strItem)
>> POrstData.Update()
>> Else
>> MsgBox("Record Found: #" & SelectedDate & "# " & strLoc & " "
>> & CInt(strItem))
>> End If
>>
>> End Sub
>>
>
>Why are you using old ADO and not ADO.NET?
>
>Chris

Its what I've had examples of. Please point me in the ADO.NET
direction. I need examples (add, delete, query, update, etc.)

Thanks,

Hexman


Feb 24 '06 #6

This discussion thread is closed

Replies have been disabled for this discussion.