|
|
|
Вопрос по ADO Recordset.Filter и CopyFromRecordset
|
|||
|---|---|---|---|
|
#18+
Привет всем! Посмотрел кучу топиков, но ответа так и не нашел, по-этому прошу помощи :( Set recSet = cmd.Execute recCnt = recSet.RecordCount (=85) recSet.Filter = "DispatchGroup LIKE '*21200*'" recCnt = recSet.RecordCount (=1) Set recSet1 = recSet recCnt = recSet1.RecordCount (=1) бла-бла-бла ws.Range("A2").CopyFromRecordset recSet ws1.Range("A2").CopyFromRecordset recSet1 В обоих случаях в Excel добавляется 85 строк :( Кто знает, что за хрень или что я делаю криво? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 17:13 |
|
||
|
Вопрос по ADO Recordset.Filter и CopyFromRecordset
|
|||
|---|---|---|---|
|
#18+
Dim rs As New ADODB.Recordset Dim rs1 As New ADODB.Recordset rs.Open "select * from dMetae", CurrentProject.Connection, adOpenDynamic Set rs1 = rs Debug.Print rs.RecordCount Debug.Print rs1.RecordCount rs.Filter = "KeyField=4" Debug.Print rs.RecordCount Debug.Print rs1.RecordCount rs.Filter = "" Debug.Print rs.RecordCount Debug.Print rs1.RecordCount Этот код возвращает: 1422 1422 1 1 1422 1422 В данном случае и rs, и rs1 ссылаются на один объект, и делая что-то с одним, мы получаем аналогичную ситуацию в другом. У тебя происходит то же самое Set recSet1 = recSet сделай Set recSet = cmd.Execute Set recSet1 = cmd.Execute recSet1.Filter = "DispatchGroup LIKE '*21200*'" recCnt = recSet.RecordCount (будет =85) recCnt = recSet1.RecordCount (будет =1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 20:17 |
|
||
|
Вопрос по ADO Recordset.Filter и CopyFromRecordset
|
|||
|---|---|---|---|
|
#18+
Согласен, есть такое дело :( Тогда можно так: Set recSet = cmd.Execute Set recSet1 = recSet.Clone recSet1.Filter = "DispatchGroup LIKE '*21200*'" Тогда recSet.RecordCount будет =85, а recSet1.RecordCount будет =1 Но при записи что того, что другого в Excel в обоих случаях пишется по 85 записей. А желание есть писать на один лист все записи, а на последующие по опр-му фильтру. Может быть можно решить эту задачу каким-то другим изящьным способом, а то я не дока в аксессе, пришлось, так зказать. P.S. запускать два раза cmd.Execute погано, там тяжелая процедура на серваке запускается, много ресурсов жрет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 10:48 |
|
||
|
Вопрос по ADO Recordset.Filter и CopyFromRecordset
|
|||
|---|---|---|---|
|
#18+
блин жопа какая-то пытаюсь все это воспроизвести - а у меня CopyFromRecordset отказывается ADO-шный рекордсет жрать :(( Сцука злая, говорит что "Class does not support Automation or does not support expected interface" Бред какой-то... Ведь точно помню что оно с ADO работает... Или 97-й эксель еще не умеет ADO переваривать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 11:38 |
|
||
|
Вопрос по ADO Recordset.Filter и CopyFromRecordset
|
|||
|---|---|---|---|
|
#18+
Смотрю в MSDN 6 и вижу там: Microsoft Excel 97 for Windows SYMPTOMS When you use Microsoft Data Access Objects version 3.0 (DAO 3.0) with Microsoft Excel 97, you may receive the following error message: Run-time error '430': Class doesn't support Automation CAUSE You will receive the error message given above if both of the following are true: You are referencing the DAO 3.0 object library. -and- You are using the CopyFromRecordset method in your macro. RESOLUTION Change your project in Microsoft Excel 97 so that it references DAO 3.5 instead of DAO 3.0: In the Visual Basic Editor, click References on the Tools menu. Clear the "Microsoft DAO 3.0 Object Library" check box. Select the "Microsoft DAO 3.5 Object Library" check box and click OK. STATUS This is by design of Microsoft Excel 97. Это правда про DAO, но может поможет. У меня Access2002 SP2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 15:51 |
|
||
|
Вопрос по ADO Recordset.Filter и CopyFromRecordset
|
|||
|---|---|---|---|
|
#18+
Ну так что, есть желающие подсказать как из одного рекордсета выборку в другой рекордсет можно было сделать, что-бы потом его в Excel с помощью CopyFromRecordset слить? Или такой вариант: как бы создать рекордсет на основе выборки из другого рекордсета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 17:18 |
|
||
|
Вопрос по ADO Recordset.Filter и CopyFromRecordset
|
|||
|---|---|---|---|
|
#18+
Э-ээ... А может, временные таблицы все-таки?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 17:25 |
|
||
|
Вопрос по ADO Recordset.Filter и CopyFromRecordset
|
|||
|---|---|---|---|
|
#18+
Думал об этом. Видимо прийдется так и сделать. Хотя жалко, я надеялся, что сам рекордсет как-нибудь колбасить можно. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 17:29 |
|
||
|
Вопрос по ADO Recordset.Filter и CopyFromRecordset
|
|||
|---|---|---|---|
|
#18+
ИМХО токо так, потому что делать цикл по RecordSet с присваиванием из одного в другой это жуткий стопкран (если конечно recordset совсем маленький, тогда уж пофиг ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 17:31 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32463369&tid=1675651]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
159ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 474ms |

| 0 / 0 |
