Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access VBA SQL запрос / 25 сообщений из 30, страница 1 из 2
17.09.2018, 15:02
    #39703665
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Доброго времени суток форумчане.
Помогите всю голову уже пеплом обсыпал.

есть запрос уже готовый (datasel) надо выбрать записи где есть дата с формы записанная в переменную (L1) и вернуть мне сообщения найдено или нет. Но увы запись он не может обнаружить. Добавил для проверки MsgBox l1 да выдает нужную дату ,Set Me.lstBox.Recordset = rst да выводит запрос если грохнуть условие отбора WHERE отправлено= " & L1 &. Помогите.

Private Sub Кнопка126_Click()

Dim db As Database
Dim rst As DAO.Recordset
Dim L1, L2 As String

L1= (Forms![MENUDataPicker]![dd35])

Set rst = CurrentDb.OpenRecordset("SELECT * FROM datasel WHERE отправлено= " & L1 &)
Set Me.lstBox.Recordset = rst

MsgBox l1

If rst.BOF Or rst.EOF Then
MsgBox " пусто"
Else
MsgBox "Что то есть"
End If

If Not rst.EOF Then
MsgBox "Что то есть"
Else
MsgBox "пусто"
End If
...
Рейтинг: 0 / 0
17.09.2018, 15:08
    #39703677
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
dion-2009Доброго времени суток форумчане.
Помогите всю голову уже пеплом обсыпал.

есть запрос уже готовый (datasel) надо выбрать записи где есть дата с формы записанная в переменную (L1) и вернуть мне сообщения найдено или нет. Но увы запись он не может обнаружить. Добавил для проверки MsgBox l1 да выдает нужную дату ,Set Me.lstBox.Recordset = rst да выводит запрос если грохнуть условие отбора WHERE отправлено= " & L1 &. Помогите.

Private Sub Кнопка126_Click()

Dim db As Database
Dim rst As DAO.Recordset
Dim L1, L2 As String

L1= (Forms![MENUDataPicker]![dd35])

Set rst = CurrentDb.OpenRecordset("SELECT * FROM datasel WHERE отправлено= " & L1 &)
Set Me.lstBox.Recordset = rst

MsgBox l1

If rst.BOF Or rst.EOF Then
MsgBox " пусто"
Else
MsgBox "Что то есть"
End If

If Not rst.EOF Then
MsgBox "Что то есть"
Else
MsgBox "пусто"


Суть в том что если руками передать в запрос дату я получу нужные строки ,если из запроса выкинуть WHERE запрос выполнится и вернет все строки. Надо чтобы запрос брал дату из переменной и находил записи если записи есть то вернул ВСЕ ОК!
End If
...
Рейтинг: 0 / 0
17.09.2018, 15:16
    #39703682
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
...
Рейтинг: 0 / 0
17.09.2018, 15:43
    #39703708
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Извините не понимаю что там написано.
ROI,
...
Рейтинг: 0 / 0
17.09.2018, 15:50
    #39703717
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Set rst = CurrentDb.OpenRecordset("SELECT * FROM datasel WHERE отпралено =# " & Format(L1, "mm\/dd\/yy hh\:mm\:ss") & "#)

так?
...
Рейтинг: 0 / 0
17.09.2018, 15:54
    #39703720
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Читайте раздел "3. Использование дат".

А чтобы понимать, что делаете, составьте сперва запрос в переменной:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim strSQL as string

strSQL = "SELECT * FROM datasel WHERE отправлено= " & ...
'
' Открыть Immediate Window и просмотреть текст полученного запроса
'
' Debug.Pring strSQL
' Stop
'
Set rst = CurrentDb.OpenRecordset(strSQL)
...
Рейтинг: 0 / 0
17.09.2018, 16:05
    #39703729
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Akina,

Сори это что такое? Immediate Window
...
Рейтинг: 0 / 0
17.09.2018, 16:25
    #39703744
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Все Immediate Window разобрался.
...
Рейтинг: 0 / 0
17.09.2018, 16:27
    #39703745
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
...
Рейтинг: 0 / 0
17.09.2018, 16:34
    #39703751
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Akina,

Ого спасибо за инструкцию ,можете объяснить зачем мне запрос в переменную втыкать !?
...
Рейтинг: 0 / 0
17.09.2018, 16:40
    #39703752
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
dion-2009Akina,

Ого спасибо за инструкцию ,можете объяснить зачем мне запрос в переменную втыкать !?не запрос, а текст запроса
...
Рейтинг: 0 / 0
17.09.2018, 16:43
    #39703753
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Прогер_самоучка,

Ага я так и понял. strSQL = "SELECT * FROM datasel where отправлено = что тут писать надо ???













PS помогите ,расстреляете потом.
...
Рейтинг: 0 / 0
17.09.2018, 16:49
    #39703758
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
dion-2009зачем мне запрос в переменную втыкать !?Затем, чтобы увидеть в окне Immediate получившееся в этой переменной значение - текст запроса. И проверить его правильность с точки зрения синтаксиса.
...
Рейтинг: 0 / 0
17.09.2018, 16:59
    #39703762
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Akina,

Dim strSQL As String

strSQL = "SELECT * FROM datasel "
Set rst = CurrentDb.OpenRecordset(strSQL)
Debug.Print rst.RecordCount


Ооо оперный театр оно работает :))
...
Рейтинг: 0 / 0
17.09.2018, 17:01
    #39703764
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Помогите дописать условие
...
Рейтинг: 0 / 0
17.09.2018, 17:11
    #39703772
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
strSQL = "SELECT * FROM datasel where отправлено=" & Format(l1, "mm\/dd\/yy hh\:mm\:ss")
...
Рейтинг: 0 / 0
17.09.2018, 17:12
    #39703773
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
что ему надо?
...
Рейтинг: 0 / 0
17.09.2018, 17:38
    #39703787
Аллюр Д.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
dion-2009что ему надо?
Правильно составленный запрос

В запросе написано, что идёт отбор по дате из поля "отправлено", но...
1. в сообщении ругается на поле "ОтправленоНазначено". Как на самом деле называется это поле?
2. это поле действительно содержит даты?
3. вы принципиально не стали читать ссылку на FAQ, где написано как записывать условия отбора по дате?
4. вы по-прежнему не хотите пользоваться окном отладки и сделать Debug.Print strSQL ?
...
Рейтинг: 0 / 0
17.09.2018, 18:20
    #39703808
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Аллюр Д.,


1 На самом деле поле в запросе называется ОтправленоНазначено
2 Поле действительно после выполнения запроса будет содержать даты
3 Я прочитал статью о использовании дат в таблице , но вот такая конструкция
Код: sql
1.
WHERE (((Table.TimeOpen)=#" & Format(q, "mm\/dd\/yy hh\:mm\:ss") & "#));


мне выдает синтаксическую ошибку
4 Окно отладки я использую спасибо именно там я и увидел что запрос без условия отрабатывает и возвращает 1 там все супер.
5 У меня в поле где записана дата для отбора уже записана как требует SQL 21-09-2018
...
Рейтинг: 0 / 0
17.09.2018, 18:22
    #39703809
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Код: sql
1.
WHERE (((Table.TimeOpen)=#" & Format(q, "mm\/dd\/yy hh\:mm\:ss") & "#));



У меня запрос а не таблица что мне писать тут Table.TimeOpen
...
Рейтинг: 0 / 0
18.09.2018, 07:50
    #39703945
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
dion-2009что ему надо?Ему надо, чтобы кто-то наконец прочитал ФАК и привёл строку запроса к тому виду, который в этом ФАКе описан. Причём тебе даже указывают конкретное место, где косяк, и показывают, как именно ты сформировал текст запроса.
...
Рейтинг: 0 / 0
18.09.2018, 08:47
    #39703974
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Akina,

Set rst = CurrentDb.OpenRecordset("SELECT * FROM datasel WHERE Отправленоназначено= # " & Format(l1, "dd\/mm\/yy") & "# ")

Вот получилось но все равно не может сравнить.
...
Рейтинг: 0 / 0
18.09.2018, 08:49
    #39703975
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Если писать руками все отлично срабатывает.
Set rst = CurrentDb.OpenRecordset("SELECT * FROM datasel WHERE ÎòïðàâëåíîÍàçíà÷åíî = # "21/09/2018"# ")
...
Рейтинг: 0 / 0
18.09.2018, 08:58
    #39703981
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Все задача решена !
Set rst = CurrentDb.OpenRecordset("SELECT * FROM datasel WHERE Отправленоназначено = # " & Format(Me.dd35, "dd\/mm\/yyyy")
& "# ")

Проблема была в неправильном указании года п переменной было 4 знака года а сравнивалось всего два знака.
Все кто пинал большое спасибо.
...
Рейтинг: 0 / 0
19.09.2018, 09:30
    #39704712
dion-2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access VBA SQL запрос
Подскажите как результат запроса вывести в консоль.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access VBA SQL запрос / 25 сообщений из 30, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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