powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как присвоить RecordSet Листбоксу
25 сообщений из 30, страница 1 из 2
Как присвоить RecordSet Листбоксу
    #32361694
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как RecordSet присвоить Листбоксу
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361698
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set ListBox1.Recordset = rst
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361707
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясни тогда почему так не катит:
Private Sub Form_Load()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
con.Open "Prim", "a", "a"
Set rs = con.Execute("select proj_id from project")
rs.MoveFirst
Set Me.Список0.Recordset = rs
End Sub
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361711
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему не катит, почему не катит
квадратное потому что

телепяты в отпуске
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361715
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А жалко что они в отпуске (а может у них зимняя спячка?)!!! :)
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361720
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вообще посмотри в хелпе как со свойством Recordset работать
подозреваю что не хватает какого-нибудь .CursorLocation = adUseClient
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361726
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может и спячка
А вопросы надо задавать более подробно (если конечно ответ нужен)
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361760
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, ну извините если что не так!!! А ответ действительно нужен. У меня А97. ADO вроде подключил. Возникает ошибка компиляции. A97 не находит у Списка0 метод Recordset, т.е. конкретно не работает Set Me.Список0.re = rs. Как сделать чтоб ентот метод А97 находил. Заранее спасибо!
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361766
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Произошла опечатка Set Me.Список0.reсоrdset = rs
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361767
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторРебят, ну извините если что не так!!! А ответ действительно нужен. У меня А97. ADO вроде подключил. Возникает ошибка компиляции. A97 не находит у Списка0 метод Recordset, т.е. конкретно не работает Set Me.Список0.re = rs. Как сделать чтоб ентот метод А97 находил. Заранее спасибо!
И не найдёт. Потому как нету...
Можно использовать в качестве RowSourceType callback функцию, которая будет читать рекордсет...
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361779
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PA, можешь ли объяснить подробнее (для особо одаренных:)). А то я чейто не догнал!
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361787
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых. Еще раз говорю - вопросы надо задавать правильно. Версию аксеса надо указывать в первом посте, а не в восьмом
Во-вторых. В 97-м аксесе действительно нет св-ва Recordset. Поэтому на первоначальный вопрос ответ будет "Никак" (ну разве только действительно callback функцию использовать, но это та еще радость)
В-третьих. В мдб ADO-шный рекордсет в форму/список не получится впихнуть даже в старших версиях аксеса
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361795
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу callback функций можешь прочитать хелп.
Смотришь хелп к св-ву RowSourceType, листаешь вниз и идешь по последней ссылке
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361799
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как же тогда лучше сделать? Мне нужно из базы Oracl'a запихать результат запроса в Список A97. Т.е. СУБД Oracle, а клиент A97.
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361804
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot ЛПВ мдб ADO-шный рекордсет в форму/список не получится впихнуть даже в старших версиях аксеса[/quot]
Очень даже получиться.
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361807
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
черт, опять в тэгах запутался...
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361813
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот примерчик функции для списка

Static Function Список_1(ctl As Variant, lngID As Long, lngRow _
As Long, lngCol As Long, intCode As Integer) As Variant
' Добавляет "(Все)" первым пунктом в список. Для списка или поля
' со списком допускается добавление пункта "(Все)" в различные
' столбцы с помощью свойства "Дополнительные сведения" (Tag).
' Допускается также отображение текста, отличного от "(Все)",
' путем добавления точки с запятой (;) и отображаемого текста.
' Например, значение "2;<Нет>" свойства "Дополнительные сведения"
' (Tag) приведет к отображению слова "<Нет>" во втором столбце списка.


Static dbs_1 As Database, rst_1 As Recordset
Static lngDisplayID_1 As Long
Static intDisplayCol_1 As Integer
Static strDisplayText_1 As String
Dim intSemiColon As Integer

On Error GoTo Err_ДобавлениеВсеВСписок
Select Case intCode
Case acLBInitialize
' Проверяет, не используется ли функция.
If lngDisplayID_1 <> 0 Then
MsgBox "Функция Список_1 уже" & _
"используется в другом элементе управления!"
Список_1 = False
Exit Function
End If

' Проверяет отображаемый столбец и выводит текст,
' заданный в свойстве "Дополнительные сведения" (Tag).
intDisplayCol_1 = 1
strDisplayText_1 = "Все"
If Not IsNull(ctl.Tag) Then
intSemiColon = InStr(ctl.Tag, ";")
If intSemiColon = 0 Then
intDisplayCol_1 = Val(ctl.Tag)
Else
intDisplayCol_1 = Val(Left(ctl.Tag, intSemiColon - 1))
strDisplayText_1 = Mid(ctl.Tag, intSemiColon + 1)
End If
End If

' Открывает набор записей, заданный
' в свойстве "Источник строк" (RowSource).
Set dbs_1 = CurrentDb()
Set rst_1 = dbs_1.OpenRecordset(ctl.RowSource, dbOpenSnapshot)

' Записывает и возвращает значение lngID для функции.
lngDisplayID_1 = Timer
Список_1 = lngDisplayID_1

Case acLBOpen
Список_1 = lngDisplayID_1

Case acLBGetRowCount
' Возвращает число строк в наборе записей.
rst_1.MoveLast
Список_1 = rst_1.RecordCount + 1

Case acLBGetColumnCount
' Возвращает число полей (столбцов) в наборе записей.
Список_1 = rst_1.Fields.Count

Case acLBGetColumnWidth
Список_1 = -1

Case acLBGetValue
If lngRow = 0 Then
If lngCol = intDisplayCol_1 - 1 Then
Список_1 = strDisplayText_1
Else
Список_1 = "(Все)": 'Null
End If
Else
rst_1.MoveFirst
rst_1.Move lngRow - 1
Список_1 = rst_1(lngCol)
End If
Case acLBEnd
lngDisplayID_1 = 0
rst_1.Close
End Select

Bye_ДобавлениеВсеВСписок:
Exit Function

Err_ДобавлениеВсеВСписок:
MsgBox Err.Description, 16, " Список_1"
Список_1 = False
Resume Bye_ДобавлениеВсеВСписок
End Function
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361819
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ден, как я понял, ты используешь DAO?
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361822
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом примере да. Есть пример для ADO, но не знаю, будет ли он работать под 97, писал по 2000
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361828
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот для ADO под 2000
Function ListMDBs(fld As Control, id, row, col, Code)

Static c As New Collection
Static RN As New Collection
Dim key As String
Dim ReturnVal As Variant
Dim rs As ADODB.Recordset
Dim i As Integer, j As Integer
On Error GoTo LErr:
ReturnVal = True
key = fld.Parent.name & fld.name

Select Case Code
Case acLBInitialize
Set rs = dbs.Execute(fld.RowSource)
rs.MoveFirst
c.Add rs, key
RN.Add 0, key
Case acLBOpen

Case acLBGetRowCount
Set rs = c(key)
ReturnVal = rs.RecordCount
Case acLBGetColumnCount
Set rs = c(key)
ReturnVal = rs.Fields.Count
Case acLBGetColumnWidth
ReturnVal = -1
Case acLBGetValue
Set rs = c(key)
If RN(key) <> row Then
rs.Move row - RN(key)
RN.Remove key
RN.Add row, key
End If
ReturnVal = rs.Fields(col).value
Case acLBEnd
c.Remove (key)
RN.Remove (key)
End Select
ListMDBs = ReturnVal
LErr:
If Err.Number <> 0 Then
Exit Function
End If
End Function
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361831
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 zz
Да, ошибся я. Можно конечно. Просто родной рекордсет - даошный, вот бес меня и попутал :)
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361834
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, я не понял одного: как можно без всяких ухищрений засунуть в Список A97 данные из другой базы (не А97)? Дену спасибо за пример!
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361842
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, я не понял одного: как можно без всяких ухищрений засунуть в Список A97 данные из другой базы (не А97)?
Вот же ептыть
Линкуешь таблицу и вешаешь на нее список.
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361864
Ahil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, но линк к таблице отпадает, т.к. при ентом выдается ошибка. Поле в таблице есть нехорошее, а избавится от него низя (т.к. база не моя). В SQL Explorer срабатывает только такой запрос, в котором нет ентого поля. Извините что так запутанно объясняю, но такова жизнь...
...
Рейтинг: 0 / 0
Как присвоить RecordSet Листбоксу
    #32361927
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и сделай линк ко вьюхе без этого поля.

З.Ы. А вообще использовать аксес, тем более 97-й, в качестве клиента к ораклу - это скотоложество какое-то.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как присвоить RecordSet Листбоксу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]