Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SQL запрос помогите подправить / 25 сообщений из 28, страница 1 из 2
05.05.2011, 17:23
    #37248015
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
Подскажите где ошибаюсь? Синим выделила, то что сама добавила. Без синего работает. Понимаю, что ошибка там где выделено синим, однако я новичек в этом. Помогите подправить.

Option Explicit

Sub AddReferences()
'---------------------------------------------------------------------------------------
'---------------------------------------------------------------------------------------
On Error Resume Next
'Name: ADODB
'Description: Microsoft ActiveX Data Objects 2.8 Library
ThisWorkbook.VBProject.References.AddFromFile ("C:\Program Files\Common Files\System\ado\msado15.dll")
ThisWorkbook.VBProject.References.AddFromGuid GUID:="{2A75196C-D9EB-4129-B803-931327F72D5C}", Major:=2, Minor:=8
End Sub

Function GetData(strPath As String, strField1 As String, strOperator1 As String, strCriterion1 As String, strField2 As String, strOperator2 As String, strCriterion2 As String, strField3 As String, strOperator3 As String, strCriterion3 As String) As Integer
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
Dim strSQL As String

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & ";" & "Extended Properties=""Excel 9.0;HDR=Yes;IMEX=1"""
' и это не работает
strSQL = "SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" and [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" and [" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'"
rst.Open strSQL, cnn
GetData = rst.Fields(0)
rst.Close
cnn.Close

Set rst = Nothing
Set cnn = Nothing
End Function


Sub test()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
Dim strSQL As String
Dim strCriterion As String
Dim strField As String
Dim strRange As String
Dim strPath As String
Dim strOperator1 As String
Dim strOperator2 As String
Dim strOperator3 As String
strOperator1 = "="
strOperator2 = ">"
strOperator3 = ">"


strPath = "c:\Gorokh\Report\Книга4.xls"
Dim x As Integer
strField1 = "segment вид UNIQA"
strField2 = "Дата настання страхового випадку"
strField3 = "Дата реєстрацiї страхового випадку"
strCriterion1 = "Casco"
strCriterion2 = 40179
strCriterion3 = 40179
strRange = ""
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
strSQL = "SELECT * table Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" and [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" and [" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'"
' как написать запрос для того что бы отбирало количество по segment вид UNIQA, а также по Дата настання страхового випадку>1/1/2010 и Дата реєстрацiї страхового випадку>1/1/2010 одновременно?


rst.Open strSQL, cnn


x = rst.Fields(0)
Debug.Print x
rst.Close
cnn.Close

Set rst = Nothing
Set cnn = Nothing
End Sub
...
Рейтинг: 0 / 0
05.05.2011, 17:25
    #37248024
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
Выделенный синим текст, надеюсь, в одну строку в редакторе написан?
...
Рейтинг: 0 / 0
05.05.2011, 17:27
    #37248030
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
Код: plaintext
1.
2.
3.
4.
5.
...
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
strSQL = "SELECT * table Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" and [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" and [" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'"


Debug.Print strSQL 

результат отладки сюда выложите пжл
...
Рейтинг: 0 / 0
05.05.2011, 17:28
    #37248037
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
хотя можете не выкладывать у вас кавычек не хватает
...
Рейтинг: 0 / 0
05.05.2011, 17:31
    #37248050
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
Konst_One,

Каких? Выделите цветом. Спасибо.
...
Рейтинг: 0 / 0
05.05.2011, 17:33
    #37248059
Gwa
Gwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVik,
смотрите
Debug.Print strSQL
...
Рейтинг: 0 / 0
05.05.2011, 17:33
    #37248061
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVikKonst_One,

Каких? Выделите цветом. Спасибо.

вы что, издеваетесь. сами разбирайтесь в своём кривом sql-запросе. скопируйте его в редактор SQL , он вам подскажет
...
Рейтинг: 0 / 0
05.05.2011, 17:48
    #37248099
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
strSQL = "SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" And "[" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" And "[" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'"


в процедуре test пишет type mistakes
...
Рейтинг: 0 / 0
05.05.2011, 17:51
    #37248108
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
Konst_OneVikVikVikKonst_One,

Каких? Выделите цветом. Спасибо.

вы что, издеваетесь. сами разбирайтесь в своём кривом sql-запросе. скопируйте его в редактор SQL , он вам подскажет
Да не издеваюсь.Новичек я в SQL. Прошу прощения.
...
Рейтинг: 0 / 0
05.05.2011, 17:52
    #37248110
Gwa
Gwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVik,
Блин..
Да покажите Вы наконец итоговую строку после всех подстановок
Debug.Print strSQL
...
Рейтинг: 0 / 0
05.05.2011, 17:53
    #37248112
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
Код: plaintext
Debug.Print strSQL 


сюда скопируйте пжл результат который вы получите в окне Immediate

PS
и пользуйтесь тегами SRC , когда код вставляете в сообщение
...
Рейтинг: 0 / 0
05.05.2011, 17:53
    #37248113
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVik,

AND - к SQL запросу относится?
тогда почему оно снаружи кавычек, а не внутри.

И вообще есть ли необходимость использовать переменные при построении этого запроса?
...
Рейтинг: 0 / 0
05.05.2011, 17:54
    #37248121
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
GwaVikVikVik,
Блин..
Да покажите Вы наконец итоговую строку после всех подстановок
Debug.Print strSQL
У нее ошибка в синтаксисе, она не может показать строку.
Строковые переменные пытается склеить логическим оператором AND
...
Рейтинг: 0 / 0
05.05.2011, 18:12
    #37248164
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVik,

Подскажите все таки где синтаксическая ошибка.
Где-то встроке ниже... И вообще скажите сам запрос верный для трех критериев?
Буду очень и очень благодарна.


strSQL = "SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" and [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" and [" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'"
Пишу в одну строку.
...
Рейтинг: 0 / 0
05.05.2011, 18:18
    #37248175
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
Пишет Compile error: Expected: end of statement
и при этом выделяет " & strOperator2 & "
...
Рейтинг: 0 / 0
05.05.2011, 18:20
    #37248180
Gwa
Gwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVik,
ну для начала замените and на &
Хоть синтаксическая ошибка должна пропасть
...
Рейтинг: 0 / 0
05.05.2011, 18:23
    #37248186
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVikПодскажите все таки где синтаксическая ошибка.
Где-то встроке ниже... И вообще скажите сам запрос верный для трех критериев?
Буду очень и очень благодарна.

Блин, ну напиши ты уже сначала sql-запрос без переменных. Потом переменные будешь вставлять - ты в кавычках запуталась. Потом уже будем разбирать запрос.
...
Рейтинг: 0 / 0
05.05.2011, 18:33
    #37248201
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVik,
Заменила AND на && и убрала кавычки. Правда легче жить не стало. Так в чем же все таки вся соль?
Простите, если задаю глупые вопросы. Спасибки.

strSQL = "SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE ([" & strField1 & "]" & strOperator1 & "'" & strCriterion1 && [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 && [" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'")
...
Рейтинг: 0 / 0
05.05.2011, 18:36
    #37248210
ZezaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
GwaVikVikVik,
Блин..
Да покажите Вы наконец итоговую строку после всех подстановок
Debug.Print strSQLДа покажите Вы наконец ...чеГО хотите
[CSV]....[[CSV]
...
Рейтинг: 0 / 0
05.05.2011, 18:40
    #37248214
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
GwaVikVikVik,
ну для начала замените and на &
Хоть синтаксическая ошибка должна пропасть

а я читала, что надо менять на &&....
...
Рейтинг: 0 / 0
05.05.2011, 18:43
    #37248221
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVikа я читала, что надо менять на &&....
ты сюда за советом пришла или нас учить.

Еще раз - напиши сначала запрос БЕЗ ИСПОЛЬЗОВАНИЯ переменных, и всяких этих кавычек и амперсандов. Запрос заработает, потом их вставишь
...
Рейтинг: 0 / 0
05.05.2011, 18:48
    #37248226
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
ZezaM,

Хочу что бы формировался запрос с тремя критериями и выгружался в Книгу3 с Книги 4.
Критерии следующие:
segment видUNIQA = "Casco"
Дата настання страхового випадку >1/01/2010
Дата реєстрацiї страхового випадку> 1/01/2010
...
Рейтинг: 0 / 0
05.05.2011, 19:02
    #37248246
VikVikVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
Shocker.Pro,

так к сожелению тоже не работает :(
strSQL= SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE (strField1="Casco" && strField2>40179 && strField3>40179 )
...
Рейтинг: 0 / 0
05.05.2011, 19:12
    #37248262
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
VikVikVikShocker.Pro,

так к сожелению тоже не работает :(
strSQL= SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE (strField1="Casco" && strField2>40179 && strField3>40179 )
верни And на место
...
Рейтинг: 0 / 0
05.05.2011, 19:13
    #37248265
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос помогите подправить
Shocker.ProVikVikVikShocker.Pro,

так к сожелению тоже не работает :(
strSQL= SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE (strField1="Casco" && strField2>40179 && strField3>40179 )
верни And на место
И Casco сделай не в кавычках, а в апостофах
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SQL запрос помогите подправить / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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