2013-05-27 5 views
0

Привет, я использую vb6 ms access backend, вместо того, чтобы обновлять запись, она дублирует и создает новую запись. моя таблица не использует первичный ключ из-за связи с другими таблицами. Как я могу сделать его обновить запись, а не дублировать здесь мой кодMs Access VB6 update recordset вместо дублирования

Private Sub cmdSave_Click() 
With Connect.rsitem 
     .Open , , adOpenDynamic, adLockOptimistic 
     If EditItem = False Then .AddNew 
      !itemno = txtItemNo.Text 
      !desc1 = txtDesc1.Text 
      !desc2 = txtDesc2.Text 
      !onhandqty = txtOnhandQty.Text 
      !unitprice = txtUnitPrice.Text 
      !Size = txtSize.Text 
      !upc = txtupc.Text 
      !Ordercost = txtOrderCost.Text 
    .Update 
    .Close 
End sub 

ответ

1

ли запрос на выборку первой ..

Dim rs As DAO.Recordset 

rs.Open "SELECT * FROM mytable WHERE itemno = '" & txtItemNo.Text & "'" 
If Not rs.BOF and Not rs.EOF then 

    'save the record ...... 

End If 
If rs.State = adStateOpen Then rs.Close 
Set rs = Nothing 
+0

Это прохладный способ сделать это с определенным утверждением, я никогда подумал об этом! Я всегда использую 'rs.findfirst()' и 'if .nomatch'. Я не уверен, есть ли какая-либо польза в любом случае. – Grant

Смежные вопросы