|
|
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
Делаю выборку всех записей из листа Excel c помощью ADO. Т.е. получаю recordset Вопрос: Как можно удалить из этого recordset колонки, записи по условиям и т.д.? Образно говоря, к этому recordset производить SQL запросы. Т.е. работать не с таблицей как таковой, а с виртуальной таблицей в recordset Кто сталкивался, подскажите пожалуйста, как это можно осущевствить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 13:32:53 |
|
||
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
Для удаления обнавления используй не рекордсет а комманд с запросом Insert into Table(t1,t2) Values(1,2) Update Table set t1=2, t2=3 where t1=3 Delete t1 From Table where t1=2 типа того ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 14:00:33 |
|
||
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
Это понятно, у меня немного другое попоробую кодом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Думаю, так понятней будет. Сталкиваюсь с такой задачей впервые. Прошу хелпа =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 14:15:00 |
|
||
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
Попробуй в такой последовательностью Dim s As New ADODB.Connection Dim comm As New ADODB.Command Dim rs As New ADODB.Recordset comm.ActiveConnection = s comm.CommandText = "ALTER TABLE [FirstSheet$] DROP COLUMN NN" comm.Execute comm.CommandText = "DELETE * FROM [FirstSheet$] WHERE Col=25" comm.Execute rs.Open "SELECT * FROM [FirstSheet$]", con, adOpenStatic, adLockOptimistic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 14:49:54 |
|
||
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
SELECT t1,t2,t2,col (Без столбца NN) FROM [FirstSheet$] where not WHERE Col=25 а это просто по выборке практически то же самое но виртуально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 14:53:49 |
|
||
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
Насколько я понимаю, ты предлагаешь сначала удалить всё ненужное, а потом уже вывести всё что осталось в recordset. Дело в том, что это Excel, и у меня при таких действиях выводится, что такие действия не поддерживаются драйвером ISAM (вроде как). Т.е. выборку сделать можно, а вот удалить записи нет =( Поэтому я хочу пойти по пути обработки recordseta с выборкой, а уже потом его вывести и сохранить. Вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 15:08:00 |
|
||
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
>SELECT t1,t2,t2,col (Без столбца NN) FROM [FirstSheet$] >where not WHERE Col=25 >а это просто по выборке >практически то же самое но виртуально Критерии выборки всё время меняются, (выбор через чекбоксы). Представляешь, как sql запрос будет выглядеть, если в него включить 15-20 значений чекбоксов =)) Хотя.... может к этому и прийду... Просто не хочется идти в Москву через северный полюс =)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 15:12:58 |
|
||
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
where col in (ч1,ч2,ч3 итд...) прокрути по цыклу чеки собери в перемнную типа и выдай критерием In(.....) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 15:45:59 |
|
||
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
И всё-таки, возможно ли это сделать Сабжем ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 16:26:17 |
|
||
|
SQL запрос к recordset - как?!
|
|||
|---|---|---|---|
|
#18+
Dim rs As New ADODB.Recordset Dim con As New ADODB.Connection Dim control As control Dim str As String For Each control In frmDataEnv.Controls If control.Tag = "R" Then If control.Value = Checked Then str = str & control.Caption & "," End If End If Next str = Left(str, Len(str) - 1) Debug.Print str ' caption-ы чека выводит параметры выборки данных '========== rs.Open "SELECT t1,t2,t2,col FROM [FirstSheet$]" _ & " where not WHERE Col in (" & str & ")" PS. Если параметр текстовой то надо добавить '' для каждого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 16:40:18 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33546674&tid=2166374]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
299ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 588ms |

| 0 / 0 |
