|
|
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Подскажите, как RecordSet присвоить Листбоксу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 10:39 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Set ListBox1.Recordset = rst ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 10:41 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Объясни тогда почему так не катит: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 10:48 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
почему не катит, почему не катит квадратное потому что телепяты в отпуске ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 10:50 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
А жалко что они в отпуске (а может у них зимняя спячка?)!!! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 10:54 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
а вообще посмотри в хелпе как со свойством Recordset работать подозреваю что не хватает какого-нибудь .CursorLocation = adUseClient ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 10:55 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Может и спячка А вопросы надо задавать более подробно (если конечно ответ нужен) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 10:56 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Ребят, ну извините если что не так!!! А ответ действительно нужен. У меня А97. ADO вроде подключил. Возникает ошибка компиляции. A97 не находит у Списка0 метод Recordset, т.е. конкретно не работает Set Me.Список0.re = rs. Как сделать чтоб ентот метод А97 находил. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:12 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Произошла опечатка Set Me.Список0.reсоrdset = rs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:15 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
авторРебят, ну извините если что не так!!! А ответ действительно нужен. У меня А97. ADO вроде подключил. Возникает ошибка компиляции. A97 не находит у Списка0 метод Recordset, т.е. конкретно не работает Set Me.Список0.re = rs. Как сделать чтоб ентот метод А97 находил. Заранее спасибо! И не найдёт. Потому как нету... Можно использовать в качестве RowSourceType callback функцию, которая будет читать рекордсет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:15 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
PA, можешь ли объяснить подробнее (для особо одаренных:)). А то я чейто не догнал! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:20 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Во-первых. Еще раз говорю - вопросы надо задавать правильно. Версию аксеса надо указывать в первом посте, а не в восьмом Во-вторых. В 97-м аксесе действительно нет св-ва Recordset. Поэтому на первоначальный вопрос ответ будет "Никак" (ну разве только действительно callback функцию использовать, но это та еще радость) В-третьих. В мдб ADO-шный рекордсет в форму/список не получится впихнуть даже в старших версиях аксеса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:23 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
По поводу callback функций можешь прочитать хелп. Смотришь хелп к св-ву RowSourceType, листаешь вниз и идешь по последней ссылке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:26 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
А как же тогда лучше сделать? Мне нужно из базы Oracl'a запихать результат запроса в Список A97. Т.е. СУБД Oracle, а клиент A97. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:29 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
[quot ЛПВ мдб ADO-шный рекордсет в форму/список не получится впихнуть даже в старших версиях аксеса[/quot] Очень даже получиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:30 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
черт, опять в тэгах запутался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:31 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Ну вот примерчик функции для списка 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:34 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Ден, как я понял, ты используешь DAO? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:39 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
В этом примере да. Есть пример для ADO, но не знаю, будет ли он работать под 97, писал по 2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:41 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Вот для 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:44 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
2 zz Да, ошибся я. Можно конечно. Просто родной рекордсет - даошный, вот бес меня и попутал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:46 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Ребят, я не понял одного: как можно без всяких ухищрений засунуть в Список A97 данные из другой базы (не А97)? Дену спасибо за пример! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:48 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Ребят, я не понял одного: как можно без всяких ухищрений засунуть в Список A97 данные из другой базы (не А97)? Вот же ептыть Линкуешь таблицу и вешаешь на нее список. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 11:53 |
|
||
|
Как присвоить RecordSet Листбоксу
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, но линк к таблице отпадает, т.к. при ентом выдается ошибка. Поле в таблице есть нехорошее, а избавится от него низя (т.к. база не моя). В SQL Explorer срабатывает только такой запрос, в котором нет ентого поля. Извините что так запутанно объясняю, но такова жизнь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 12:02 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1701&tid=1677471]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 407ms |

| 0 / 0 |
