Страница: 1 |
Страница: 1 |
Вопрос: recordset.Movelast даёт 99 запись
Добавлено: 18.07.06 14:46
Автор вопроса: mimino
Привет всем
делаю так
Adodc4.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\sample.mdb;Uid=Admin;Pwd=;"
Adodc4.RecordSource = "table"
Adodc4.Refresh
If Adodc4.Recordset.EOF = False Then
Adodc4.Recordset.MoveLast
buup = Adodc4.Recordset.Fields(0)
Else
buup = 1
End If
выходит
buup = 99
вообщето он должен показать 105
странно ?
может что нибудь не так делаю ?
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 18.07.06 18:35
проверь ConnectionString
Номер ответа: 2
Автор ответа:
mimino
Вопросов: 6
Ответов: 16
Профиль | | #2
Добавлено: 18.07.06 20:09
А можно узнать последний запись с помощью SQL команды ?
Мне надо было узнать последний запись в поле.
Номер ответа: 3
Автор ответа:
mimino
Вопросов: 6
Ответов: 16
Профиль | | #3
Добавлено: 18.07.06 20:11
Думаю что Connectionstring все в порядке.
до 99 того все работает ок
после 99 глючит.
А можно узнать последний запись с помощью SQL команды ?
Мне надо было узнать последний запись в поле.
Номер ответа: 4
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #4
Добавлено: 18.07.06 22:11
Не существует понятия "последняя запись". Это Access а не excel. Все записи равноправны, и хранятся в том порядке, в котором решает база. База решит - будет хранить задом наперёд. ИЛи вперемешку. И это - совершенно корректное поведение.
Если нужна какая-то конкретная запись, надо определить условия её получения. Исключительно через поля базы.
Номер ответа: 5
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #5
Добавлено: 19.07.06 09:55
Попробуй Adodc4.Recordset.RecordCount, если = 105, тогда смотри ответ № 4.
Номер ответа: 6
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #6
Добавлено: 19.07.06 11:51
Ну, если .Fields(0) (.Value) - уникальный индекс, то ответ N4 (+сортировка типа .Sort = .Fields(0).Name & " ASC", иначе вопрос некорректен (или я тупой).
Номер ответа: 7
Автор ответа:
mimino
Вопросов: 6
Ответов: 16
Профиль | | #7
Добавлено: 19.07.06 11:56
Может я сделал глупость но Я сделал так
select top 1 * from [table] order by [id_field] desc
Нашел в этом форуме ответ Gserg а.
А насчет №4 ответа во всех учебниках написано
что movelast перемещяет указатель на последнюю запись.
Но мне было интересно почему movelast остановился на пол пути?
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 19.07.06 12:17
С чего ты это взял? Ну возьми не .Fields(0).Value а .AbsolutePosition - и посмотри какую запись ты взял. Другой вопрос - если записи не сортированы - ты можешь их получить в любом порядке. Юзай .Sort.
Я так понял что в первом поле у тебя номер записи? Просто уточняю.
Номер ответа: 9
Автор ответа:
mimino
Вопросов: 6
Ответов: 16
Профиль | | #9
Добавлено: 19.07.06 12:45
Вот теперь все понятно
LamerOnLine
спасибо за .sort