|
Господа, помогите с Excel - ADO - DBF
|
|||
---|---|---|---|
#18+
Задача: Пользователь должен занести в ячейку Excel название товара, причем из справочника, который представляет собой dbf файл, содержащий более 100тыс наименований. Потратив пару дней на чтение я понял , что ключевые слова здесь будут ADO, ADO Data List и ADO Data Combo Box, но почему то нет таких контролов у меня в Excel -VBA. Может кто-н указать куда мне двигаться, какой контрол использовать? Может есть пример? Извините, если вопрос наивный, я вообще администратор ЛВС, просто жизнь заставляет с этим разобраться. С ув. Жданов Артем ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2003, 16:16 |
|
Господа, помогите с Excel - ADO - DBF
|
|||
---|---|---|---|
#18+
Дык ссылку нужно сделать на эту библиотеку: запускаем Excel, далее Alt+F11, далее F2, затем в Tools -> References выбираем Microsoft ActiveX Data Objects 2.x Library. Ну а потом самое интересное :) начнется ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2003, 17:24 |
|
Господа, помогите с Excel - ADO - DBF
|
|||
---|---|---|---|
#18+
Да ссылку на Microsoft ActiveX Data Object 2.5 Library я сделал! Насколько я понимаю теперь я должен добавить ADO data control на toolbox и типа дело пошло - вставляю его в формы и все такое. Но где же все эти объекты есть? Где этот ADODC control, который так часто упоминается в статьях? в меню Tools-> Aditional Controls ни чего подобного нет. НЕ ПОНИМАЮ! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2003, 11:37 |
|
Господа, помогите с Excel - ADO - DBF
|
|||
---|---|---|---|
#18+
Если в панели инструментов кликнуть на кнопку "Другие элементы", то там можно найти Microsoft ADO Data Control 6.0 (SP4) - по крайней мере у меня так, но суть не в этом. Он тебе вообще не нужен. Я на лист добавил комбо-поле и кнопку и в редакторе VBA для этого листа состряпал: Option Explicit Public cnnDb As New ADODB.Connection Private Sub cmdFill_Click() Dim rstA As New ADODB.Recordset rstA.CursorLocation = adUseClient rstA.CursorType = adOpenKeyset rstA.LockType = adLockOptimistic Dim strSQL As String strSQL = "SELECT DISTINCT NAIM FROM SP_POST.DBF" rstA.Open strSQL, cnnDb Do Until rstA.EOF If Not IsNull(rstA![NAIM]) Then cboTest.AddItem rstA![NAIM] End If rstA.MoveNext Loop End Sub Private Sub cmdLink_Click() cnnDb.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=C:\Base\fin\DosFin" End Sub В итоге комбо-поле заполнилось записями из справочника. Ну а далее - все в твоих руках. Естесно, нужно немного знать объектную модель экселя. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2003, 19:24 |
|
Господа, помогите с Excel - ADO - DBF
|
|||
---|---|---|---|
#18+
>> Я на лист добавил комбо-поле и кнопку и в редакторе VBA для этого листа.... Ну можно было бы и так, если в dbf файле 100 записей, а если более 100тыс наименований, то ни чего хорошего не получится. С помощью этого контрола ведь не просто просматривается dbf файл, а для каждой записи делается СоmboBox.AddItem, то есть насколько я понимаю данные из dbf файла дублируются в какую-то внутреннюю структуру объекта, а это ой как долго и при большом количестве записей просто вывалится по ошибке. Так что без Microsoft ADO Data Control похоже не обойтись. Я скачал с http://activex.microsoft.com/controls/vb6/MSADODC.CAB там msadodc.inf и msadodc.ocx Далее запускаю regsvr32 msadodc.ocx, потом добавил adodc в Toolbox, но при попытке создать этот объект на UserForm получаю сообщение: Control could not be created because it is not properly lisenced В чем нафиг дело? Помогите! У кого-нибудь в ms office 2000 есть эти ...... объекты? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2003, 13:42 |
|
|
start [/forum/topic.php?fid=60&gotonew=1&tid=2171315]: |
0ms |
get settings: |
12ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 418ms |
0 / 0 |