03-03-05, 17:30 #1Moderator
- Join Date
- Dec 2004
- Madison, WI
Unanswered: Record has been changed by another user error
I apologize in advance if this has been posted but if you get the attached error "The record has been changed by another user...", we've discovered that this error can occur if you have a SQL Server Data Type of "Float" and also a "Text" Data Type in the same table. We discovered that it only happens on some records though and I am not sure why this is so. The solution is apparently to add a TimeStamp Data Type to the SQL Server table which does seem to fix the problem. If anyone has any insight on any other solutions (we cannot change the Data Types) or the reasoning behind this error, I would greatly appreciate the feedback. I'm also posting this to the SQL Server threads.Expert Database Programming
MSAccess since 1.0, SQL Server since 6.5, Visual Basic (5.0, 6.0)
03-06-05, 15:39 #2Stuck on my opinions...
- Join Date
- Nov 2003
Simply Food for thought....
I have also come across this particular error but have most often found it to be code orientated, where code has changed record data and usually during numerical calculations. Although all the P's and Q's (so to speek) are correct, it seems at times that ACCESS still needs further assurance that the data type is correct.
In a few cases, I have found that although my variables have been declared correctly to match that of the data type for my table field, I still need to include a Convertion Function for Access to accept it properly. Strangely enough, this is not always the case which only makes the entire process more confusing.
A simple examle:
'table field data type is Single
'form field Format type is General Number
Dim TotalNum As Single
Dim NumOne As Single
Dim NumTwo As Long
Dim NumThree As Single
TotalNum = (NumOne * NumTwo) / NumThree
Now keep in mind, this is just a simple sample calculation and would generally not cause a problem but more completx calculations with various numerical types could...
Me.myFormFieldName = TotalNum ' May not work as expected.
Me.myFormFieldName = CSng(TotalNum) ' seems to solve the problem.
I have even found that at times I need to go as far as...
TotalNum = CSng((NumOne * NumTwo) / NumThree)
Me.myFormFieldName = CSng(TotalNum)
Anyways...like I said....food for thought.