Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подскажите
 
 автор: П.Полиграфович   (09.07.2008 в 13:44)   личное сообщение
 
 

Подскажите, если запрос к таблице возваращает всегда единственное значение, как его записать в переменную?

  Ответить  
 
 автор: osmor   (09.07.2008 в 15:07)   личное сообщение
 
 

Help по фунции Dlookup
или по слову Recordset

  Ответить  
 
 автор: П.Полиграфович   (09.07.2008 в 15:48)   личное сообщение
 
 

т.е. просто присваиваю переменной рекордсет? Так:

recst As New ADODB.Recordset, TimeSab As Date
Set knk = CurrentProject.Connection
    Sab = "SELECT Sabado FROM расписание WHERE " & _
         "WDay = Forms!Заказы!Days " & _
         "AND Время = Forms!Заказы!Время;"
       recst.Open Sab, knk, adOpenKeyset, adLockOptimistic
         TimeSab = recst
                              

??

  Ответить  
 
 автор: Кабан   (09.07.2008 в 16:11)   личное сообщение
 
 

в хелпе обычно примеры есть. по английски - example

  Ответить  
 
 автор: ДрЮня   (09.07.2008 в 16:56)   личное сообщение
 
 

у рекордсета есть свойство RecordCount
Вы присваиваете переменной TimeSab As Date
целочисленное значение

короче, ошибка на ошибке
нужно читать литературу

  Ответить  
 
 автор: П.Полиграфович   (09.07.2008 в 17:34)   личное сообщение
 
 

1.RecordCount - считает записи рекордсета, не так ли? зачем он здесь.
2.Почему целочисленное? Sabado - поле с типом Date/Time
3.Нельзя ли более предметно?

  Ответить  
 
 автор: ДрЮня   (09.07.2008 в 17:51)   личное сообщение
 
 

тогда так
TimeSab = recst ("Sabado")

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

  Ответить  
 
 автор: Анатолий (Киев)   (09.07.2008 в 20:09)   личное сообщение
 
 


On Error Resume Next
Dim TimeSab As Date 

TimeSab = CurrentProject.Connection.Exequte("SELECT Sabado FROM расписание WHERE " _ &   "WDay = " & Forms!Заказы!Days & " AND Время = " & Forms!Заказы!Время & ";").Field(0)  

Еще проще:

Dim TimeSab As Variant 
TimeSab = DLookup("[Sabado]", "[расписание]";  "WDay = " & Forms!Заказы!Days & " AND Время = " & Forms!Заказы!Время)

Предполагается, что поля "WDay" и "Время" - числовые. Если нет, то условие отбора должно выглядеть по-другому.

  Ответить  
 
 автор: П.Полиграфович   (11.07.2008 в 20:14)   личное сообщение
7 Кб.
 
 

Забиндил кнопку:

Private Sub Кнопка_Click()
 Dim TimeSab As Variant
 TimeSab = CurrentProject.Connection.Execute("SELECT Sabado FROM Расписание WHERE " & _
         "WDay = '" & Forms!Заказы!Days & "' AND Группа = " & Forms!Заказы!Группа & " " & _
         "AND Время = " & Forms!Заказы!Время & ";").Fields(0)
                  MsgBox "rec:" & TimeSab
End Sub

Отображается ошибка (в прикрепленном рисунке) ???
Что интересно, ежели в комбобокс ставлю такой же запрос:

         "SELECT Sabado FROM Расписание WHERE " & _
         "WDay = Forms!Заказы!Days AND Группа = Forms!Заказы!Группа " & _
         "AND Время = Forms!Заказы!Время;"

то замечательно выбираю из него необходимые мне значения времени...
Типы полей: Wday - текст
Группа - числовой
Время - Дата/Время
Sabado - Дата/Время
???

  Ответить  
 
 автор: osmor   (14.07.2008 в 09:54)   личное сообщение
 
 

а так?

 TimeSab = CurrentProject.Connection.Execute("SELECT Sabado FROM Расписание WHERE " & _
         "WDay = '" & Forms!Заказы!Days & "' AND Группа = " & Forms!Заказы!Группа & " " & _
         "AND Время = '#" & Forms!Заказы!Время & "#';").Fields(0)
                  MsgBox "rec:" & TimeSab 

  Ответить  
 
 автор: П.Полиграфович   (15.07.2008 в 14:02)   личное сообщение
 
 

Да, точно, только без конкатенации апострофами (до, перед #). Спасибо OSMOR!
Спасибо Анатолий!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList