accountant
شنبه 18 اردیبهشت 1395, 22:38 عصر
با سلام و احترام خدمت اساتید محترم
بنده یه برنامه با اکسس 2003 نوشتم و یه ماژول برای کد و دیکد کردن آن نوشتم در اکسس 2003 بدون مشکل کار میکنه ولی در اکسس 2013 در کد زیر در قسمت aaa.edit خط 17پیغام میده که دیتابیس یا شیئ قابل ویرایش نیست و red-only میباشد. البته من فقط با 2003 و 2013 تست کردم فکر کنم تو 2007 هم کار میکنه.
خطا به شرح زیر است:
run-time eror '3027'
connot update.database or object is red-only
لطفا اگه کسی راح حلی داره بیان کار گیر کردم. خدا ازتون راضی باشه
تکه کد به صورت زیر میباشد:
Dim dbase As DAO.Database
Dim tabl As DAO.TableDef
Dim aaa As DAO.Recordset
Dim bbb As DAO.Recordset
Dim cc As Integer
Dim v, b
Set dbase = CurrentDb
Set aaa = dbase.OpenRecordset(Mahe)
Set bbb = dbase.OpenRecordset(Mahe, dbOpenSnapshot)
If bbb.RecordCount > 0 Then bbb.MoveLast
cc = bbb.RecordCount
bbb.Close
Dim bb As Integer
bb = 1
For v = 1 To cc
For b = 0 To aaa.Fields.Count - 2
aaa.Edit
If aaa.Fields(bb) <> "" Then
If aaa.Fields(bb).Type = 10 Then
aaa.Fields(bb).Value = decoder(aaa.Fields(bb).Value)
ElseIf aaa.Fields(bb).Type = 12 Then
aaa.Fields(bb).Value = decoder(aaa.Fields(bb).Value)
ElseIf aaa.Fields(bb).Type = 4 Then
aaa.Fields(bb).Value = decodernum(aaa.Fields(bb).Value)
ElseIf aaa.Fields(bb).Type = 5 Then
aaa.Fields(bb).Value = decodercur(aaa.Fields(bb).Value)
End If
End If
aaa.Update
bb = bb + 1
Next b
aaa.MoveNext
bb = 1
Next v
aaa.Close
بنده یه برنامه با اکسس 2003 نوشتم و یه ماژول برای کد و دیکد کردن آن نوشتم در اکسس 2003 بدون مشکل کار میکنه ولی در اکسس 2013 در کد زیر در قسمت aaa.edit خط 17پیغام میده که دیتابیس یا شیئ قابل ویرایش نیست و red-only میباشد. البته من فقط با 2003 و 2013 تست کردم فکر کنم تو 2007 هم کار میکنه.
خطا به شرح زیر است:
run-time eror '3027'
connot update.database or object is red-only
لطفا اگه کسی راح حلی داره بیان کار گیر کردم. خدا ازتون راضی باشه
تکه کد به صورت زیر میباشد:
Dim dbase As DAO.Database
Dim tabl As DAO.TableDef
Dim aaa As DAO.Recordset
Dim bbb As DAO.Recordset
Dim cc As Integer
Dim v, b
Set dbase = CurrentDb
Set aaa = dbase.OpenRecordset(Mahe)
Set bbb = dbase.OpenRecordset(Mahe, dbOpenSnapshot)
If bbb.RecordCount > 0 Then bbb.MoveLast
cc = bbb.RecordCount
bbb.Close
Dim bb As Integer
bb = 1
For v = 1 To cc
For b = 0 To aaa.Fields.Count - 2
aaa.Edit
If aaa.Fields(bb) <> "" Then
If aaa.Fields(bb).Type = 10 Then
aaa.Fields(bb).Value = decoder(aaa.Fields(bb).Value)
ElseIf aaa.Fields(bb).Type = 12 Then
aaa.Fields(bb).Value = decoder(aaa.Fields(bb).Value)
ElseIf aaa.Fields(bb).Type = 4 Then
aaa.Fields(bb).Value = decodernum(aaa.Fields(bb).Value)
ElseIf aaa.Fields(bb).Type = 5 Then
aaa.Fields(bb).Value = decodercur(aaa.Fields(bb).Value)
End If
End If
aaa.Update
bb = bb + 1
Next b
aaa.MoveNext
bb = 1
Next v
aaa.Close