Dim WithEvents Cn As ADODB.Connection
Dim WithEvents Rs1 As ADODB.Recordset
Dim Sour As String
Dim CSt As String
Private Sub Cn_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Rs1.ActiveConnection = Cn
Rs1.Source = "IR61BLIN IR Details" ' таблица
End Sub
Private Sub Form_Load()
Set Cn = New ADODB.Connection
Set Rs1 = New ADODB.Recordset
Cn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=sam_all_demo32"
Cn.Open
End Sub
Private Sub Command1_Click()
Dim s(0) As String * 19
Dim d(0) As String
Rs1.CursorType = adOpenKeyset
Rs1.LockType = adLockBatchOptimistic
Rs1.Open
Rs1.MoveFirst
Debug.Print Rs1.Fields("Unit Purchase Price").Value
Rs1.Fields("Unit Purchase Price").Value = "99999999" ' в принципе без разницы как обновлять
'Rs1![Unit Purchase Price] = "9999999" работают обе строки и .Value=... и Rs1.[...]=... , но только внутри программы, на самом деле ничего в таблице не меняется!

Rs1.Update
Debug.Print Rs1.Fields("Unit Purchase Price").Value
Rs1.Close
Cn.Close
End Sub
То есть debug.print показывает, что Value изменилось, но на самом деле в таблице все остается по старому! Что такое не пойму?

Работа через ODBC.
Сразу скажу, что с ключом adLockOptimistic recordset не открывается, поэтому использую adLockBatchOptimistic, но это, думаю, не главное.