Adodc1 найти записи в указанном диапазоне. Between

Mazai-XZ

Доброго дня! Помогите, плз! Натыкался уже на форуме на ответ, но что-то сейчас найти не могу. Проблема следущая. есть база mdb. в базе есть таблица с данными, есть поле "дата оформления", где храняться даты в формате дд.мм.гг. нужно найти записи соответсвующие определённому диапазону. сортировку делаю так: Adodc1.RecordSource = "SELECT strahovatel, polis, period, kvitancia, strah_premia, data_oformlenia FROM polisy WHERE data_oformlenia BETWEEN '15.06.09' and '25.06.09'. Всё работает как часы, НО!!! нужно, чтоб даты были не строго прописаны в коде, а брались из тестовых полей text1.text и text2.text. тоесть что-то в духе Adodc1.RecordSource = "SELECT strahovatel, polis, period, kvitancia, strah_premia, data_oformlenia FROM polisy WHERE data_oformlenia BETWEEN 'text1.text' and text2.text'. Не пойму, как это сделать. Помогите плииз!
9 ответов

Mazai-XZ

Adodc1.RecordSource = "SELECT strahovatel, polis, period, kvitancia, strah_premia, data_oformlenia FROM polisy WHERE data_oformlenia BETWEEN '" & text1.text & "' and '" & text2.text & "'"
text1 и text2 должны содержать значения именно в нужном вам формате


Mazai-XZ

во я упырь.. видимо переработал :) проблема решена. Поигрался в очередной раз с кавычками всякими и УРА )) в общем нужно было так делать Adodc1.RecordSource = "SELECT strahovatel, polis, period, kvitancia, strah_premia, data_oformlenia FROM polisy WHERE data_oformlenia BETWEEN '" & Text1.Text & "' And '" & Text2.Text & "'"


Mazai-XZ

Adodc1.RecordSource = "SELECT strahovatel, polis, period, kvitancia, strah_premia, data_oformlenia FROM polisy WHERE data_oformlenia BETWEEN '" & text1.text & "' and '" & text2.text & "'"
text1 и text2 должны содержать значения именно в нужном вам формате
Видимо я рано радовался, действительно поиск не совсем правильно работает.. сортирует по первым числам, игнорируя месяц и год. Задал в БД полю с датой формат дата, теперь даты отображаются в формате дд.мм.гггг. делаю запрос (выше указан код запроса) но только уже вместо простого text1.text пишу Format(text1.text, "dd.mm.yyyy") но теперь вылетает ошибка о несответсвии типов данных, как это исправить? Ну в смысле как именно привести все значения в один формат?


Mazai-XZ

для акцеса так : #MM/DD/YYYY#для SQL-server так: 'YYYYMMDD'


Mazai-XZ

для акцеса так : #MM/DD/YYYY#для SQL-server так: 'YYYYMMDD'
тоесть так:Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"Adodc1.RecordSource = "SELECT * FROM tabs WHERE date BETWEEN '" & Format(Text1.Text, "MM/DD/YYYY") & "' And '" & Format(Text2.Text, #MM/DD/YYYY#) & "'"Set DataGrid1.DataSource = Adodc1Adodc1.CommandType = adCmdTextAdodc1.CursorType = adOpenDynamicAdodc1.Refresh?не работает... ( пробовал уже и с FormatDateTime(text1.text, vbShortDate) и всё равно несоответсвие =(


Mazai-XZ

Adodc1.RecordSource = "SELECT * FROM tabs WHERE date BETWEEN #" & Format(Text1.Text, "MM\/DD\/YYYY") & "# And #" & Format(Text2.Text, "MM\/DD\/YYYY") & "#"


Mazai-XZ

Konst_One, ОГРОМНЕЙШЕЕ спасибо! ) Теперь всё как часы!!!! ) Спасибо ещё раз!!!!


Mazai-XZ

Странно, у меня не получилось.. сделал все тоже самое, на число только смотрит. На дату и год не обращает внимания :/