У меня есть Table1
с CustomerID
и Category
как первичный ключ и форма, которую я использую для редактирования этой таблицы. Существует несколько FieldComboBoxes
в форме, содержащей другую информацию, и CategoryComboBox
, которая обновляет таблицу после выбора опции.Редактирование определенной строки в таблице Access 2013
Что я пытаюсь сделать, это найти, существует ли первичный ключ в таблице, и если это так, найдите и отредактируйте эту строку. Я использую VBA в изменении события О из CategoryComboBox:
Dim db As DAO.Database
Dim rec As DAO.Recordset
Set db = CurrentDb
Set rec = db.OpenRecordset("Table1")
If Not IsNull(DLookup("CustomerID", "Table1", "CustomerID = " & [CustomerID] AND _
"Category = '" & CategoryComboBox.Value & "'")) Then
rec.Edit
rec!CustomerID = CustomerID
rec!Category = CategoryComboBox.Value
rec!Field1 = Field1ComboBox.Value
rec!Field2 = Field2ComboBox.Value
...
rec.Update
End If
Если строка с таким же первичным ключом в качестве текущей записи в форме существует в таблице, я ожидаю, что для обновления строки, но что Случается, что он обновляет вторую строку в таблице независимо от PrimaryKey. Я также попытался добавить If Category = CategoryComboBox.Value
перед командой AddNew, но это не влияет.
Вкратце, как получить доступ к выбору и редактированию определенной строки - в моем случае строка с правильным первичным ключом?
Мои извинения, я забыл упомянуть, что в таблице есть другие поля! Я редактировал свой вопрос. – jjjjjjjjjjj
Ваш ответ сработал. Я использовал SQL в моем запросе, и теперь он обновляет точную строку. Благодаря! – jjjjjjjjjjj