2010-05-13 4 views

ответ

4

Нет никакой разницы, вы всегда будете использовать .Update для фиксации изменений, с которых указывает текущий курсор. AddNew выделяет новую строку в конце набора записей ADODB

Набор записей ADODB - это набор данных на основе курсора, когда вы загружаете строки в набор записей, курсор автоматически находится в первой строке, поэтому все, что вы делаете в столбцах набора записей, будет изменять где бы ни находился указатель набора записей. Например:

dim rs as new adodb.recordset 
rs.Open _ 
    " select emp_id, lastname, firstname, middlename, age from emp " & _ 
    " where location = 'LIVERPOOL'" & _ 
    " ORDER BY emp_id", connectionVariableHere 

Это обновит первую строку:

rs!middlename = "Ono" 
rs.Update 

Это обновит следующую строку:

rs.MoveNext 
rs!middlename = "Eastman" 
rs.Update 

Чтобы добавить запись (курсор переместится к последней записи)

rs.AddNew 
rs!lastname = "Ono" 
rs!firstname = "Yoko" 
rs!middlename = "Yasuda" 
rs.Update 

Это будет дата последние добавлены записи, после выполнения шага выше:

rs!lastname = "Lennon" 
rs.Update 

Если я правильно помню, MoveNext, MoveFirst и т.д., неявно вызывают .update, прежде чем перейти к новому местоположению курсора, так что если вы находитесь в первой строке .. .

rs.MoveFirst 

... Тогда вы:

rs!age = 70 ' lennon's age of 2010 
rs.MoveNext 

... Это будет вызывать .update, прежде чем перейти к Полу Маккартни. Во всяком случае, не полагайтесь на него, просто позвоните .Update, когда вы хотите зафиксировать изменения в строке

+1

Забавные псевдоданные стоят голоса просто сами по себе! – Smandoli

1

Чтобы отредактировать существующую запись: .Edit, чтобы начать, .Update, чтобы закончить.

Чтобы создать новую запись: .AddNew, чтобы начать, .Update, чтобы закончить.

+0

Используйте ответ Майкла Б. Я забыл об этом, но звучит так, что .Edit предназначен только для DAO. Вы оставляете это для ADO. – Smandoli

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