Помогите с запросом к SQL серверу

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DLynx
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.07.2005 (Ср) 3:28

Помогите с запросом к SQL серверу

Сообщение DLynx » 13.07.2005 (Ср) 4:19

Имеется код, написанной процедуры в Excel2000 (DAO3.6):
Код: Выделить всё
  Dim db1 As Database
  Dim rs1 As Recordset
  Dim strSQL1 As String
 
  strSQL1 = "select * from data where data_date='" & Date & "'"
 
  Set db1 = OpenDatabase(Name:="", Connect:="DNS=;UID=sa;PWD=")
  Set rs1 = db1.OpenRecordset(strSQL1, dbOpenSnapshot)
  ...

Тип данных поля data_date в SQL - datetime. На открытии рекордсета в последней строке выдаёт ошибку:

Run-time error '3464'
Несоответствие типов данных в выражении условия отбора.

Посоветуйте как корректно передавать дату в условие отбора, т.к. без условия работает отлично.

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 13.07.2005 (Ср) 4:27

Не уверен, но попробуй так:
strSQL1 = "select * from data where data_date=" & Date
С числом канает :)

DLynx
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.07.2005 (Ср) 3:28

Сообщение DLynx » 13.07.2005 (Ср) 4:31

Matew
:( Выдало ошибку:
Число содержит синтаксическую ошибку в выражении запроса 'data_date=13.07.2005'

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 13.07.2005 (Ср) 4:38

Тогда так:
strSQL1 = "select * from data where data_date=" & CDate(Date)

DLynx
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.07.2005 (Ср) 3:28

Сообщение DLynx » 13.07.2005 (Ср) 4:48

Matew
Ну, вроде как Date это есть текущая дата и CDate(Date) масло масляное, но попробовал :D - результат тот же, что и требовалось доказать :( . Я уже и просто строку передавал, всё без толку. Может средствами SQL как-то строку преобразовывать к datetime?

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 13.07.2005 (Ср) 5:33

Жди гуру, я не знаю :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.07.2005 (Ср) 5:40

А я знаю.
Я знаю, сколько сотен раз этот вопрос поднимался на форуме.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 13.07.2005 (Ср) 5:53

:) Ну вот.

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 13.07.2005 (Ср) 6:10

Я нашел:
Это если строковый параметр нужен. Если параметр - дата, то она должна быть заключена в # и быть в формате MM/DD/YYYY.

Вот! Я крутой. :D :D

DLynx
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.07.2005 (Ср) 3:28

Сообщение DLynx » 13.07.2005 (Ср) 8:17

Matew
Спасибо :D , заработало. Буду учиться пользоваться поиском :oops:.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 117

    TopList