Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
alex shestov
-
- Продвинутый пользователь

-
-
- Сообщения: 109
- Зарегистрирован: 25.04.2005 (Пн) 12:01
alex shestov » 01.07.2005 (Пт) 8:51
Помоги найти ошибку.
Нужно: В форме чтобы при выборе определенной записи из всплывающего списка показывались определенные поля или скрывались.
Условие: В сплывающий список данные подкачиваются из таблицы а условие по которому обрабатывается If качается из той же таблицы но из другого столбца.
Что я не правильно делаю, потому как IF все время True при любом ограничении выборки и ставь хоть 1 хоть 21 все время подсвечивает поля?
- Код: Выделить всё
Private Sub Secur_AfterUpdate()
On Error Resume Next
Dim rs As DAO.Recordset
Dim strSql As String
strSql = ("SELECT Securities.VidSecur, Securities.EmitNameCondin " _
& "FROM Securities WHERE (((Securities.EmitNameCondin)=[Forms]![Deal1]![Secur]));")
If rs.Fields("VidSecur") = "1" Then
Forms!Deal1!All_Nomin.Visible = True
Forms!Deal1!NKD.Visible = True
Else
Forms!Deal1!All_Nomin.Visible = False
Forms!Deal1!NKD.Visible = False
End If
End Sub
Спасибо.
-
Sebas
-
- Неуловимый Джо

-

-
- Сообщения: 3626
- Зарегистрирован: 12.02.2002 (Вт) 17:25
- Откуда: столько наглости такие вопросы задавать
-
Sebas » 01.07.2005 (Пт) 8:59
))))))))
ON Error Resume Next
убери))))
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?
sebas<-@->mail.ru
-
alex shestov
-
- Продвинутый пользователь

-
-
- Сообщения: 109
- Зарегистрирован: 25.04.2005 (Пн) 12:01
alex shestov » 01.07.2005 (Пт) 9:11
Sebas писал(а):))))))))
ON Error Resume Next
убери))))
Убрал. но все равно не работает. Я правда еще немного код неправильно прописал
- Код: Выделить всё
Dim rs As DAO.Recordset
Dim strSql As String
strSql = ("SELECT Securities.VidSecur, Securities.EmitNameCondin " _
& "FROM Securities WHERE (((Securities.EmitNameCondin)=[Forms]![Deal1]![Secur]));")
Set rs = CurrentDb.OpenRecordset(strSql)
If rs.Fields("VidSecur").Value = "1" Then
Forms!Deal1!All_Nomin.Visible = True
Forms!Deal1!NKD.Visible = True
Else
Forms!Deal1!All_Nomin.Visible = False
Forms!Deal1!NKD.Visible = False
End If
End Sub
А сейчас в чем?

РУгается на Set rs = CurrentDb.OpenRecordset(strSql)
-
Sebas
-
- Неуловимый Джо

-

-
- Сообщения: 3626
- Зарегистрирован: 12.02.2002 (Вт) 17:25
- Откуда: столько наглости такие вопросы задавать
-
Sebas » 01.07.2005 (Пт) 9:19
Ндя, чтото в "WHERE" у тя совсем плохо((( , даже не берусь раскрыть весь тайный смысл вложенный тобой в критерий отбора....
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?
sebas<-@->mail.ru
-
alex shestov
-
- Продвинутый пользователь

-
-
- Сообщения: 109
- Зарегистрирован: 25.04.2005 (Пн) 12:01
alex shestov » 01.07.2005 (Пт) 9:25
Sebas писал(а):Ндя, чтото в "WHERE" у тя совсем плохо((( , даже не берусь раскрыть весь тайный смысл вложенный тобой в критерий отбора....

)))) в форме выбираю цен. бум., в таб цен. бум. есть поле Вид цен.бум. так вот в зависимости от того что там указано (например: акция или облигация) и должно показываться или скравыть определенное поле в форме.
-
Sebas
-
- Неуловимый Джо

-

-
- Сообщения: 3626
- Зарегистрирован: 12.02.2002 (Вт) 17:25
- Откуда: столько наглости такие вопросы задавать
-
Sebas » 01.07.2005 (Пт) 9:55
[Forms]![Deal1]![Secur]
Вот это что?!?!??!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?
sebas<-@->mail.ru
-
alex shestov
-
- Продвинутый пользователь

-
-
- Сообщения: 109
- Зарегистрирован: 25.04.2005 (Пн) 12:01
alex shestov » 01.07.2005 (Пт) 9:58
Sebas писал(а):[Forms]![Deal1]![Secur]
Вот это что?!?!??!
Условие для отбора данных в таблице из формы с которой и работаю...
-
alex shestov
-
- Продвинутый пользователь

-
-
- Сообщения: 109
- Зарегистрирован: 25.04.2005 (Пн) 12:01
alex shestov » 01.07.2005 (Пт) 10:01
Вы считаете что ошибка в WHERE из-за нее некорректно работает?
-
Sebas
-
- Неуловимый Джо

-

-
- Сообщения: 3626
- Зарегистрирован: 12.02.2002 (Вт) 17:25
- Откуда: столько наглости такие вопросы задавать
-
Sebas » 01.07.2005 (Пт) 10:04
Какая форма?!??!?!? Бейсиковская?!?!?!?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?
sebas<-@->mail.ru
-
alex shestov
-
- Продвинутый пользователь

-
-
- Сообщения: 109
- Зарегистрирован: 25.04.2005 (Пн) 12:01
alex shestov » 01.07.2005 (Пт) 10:05
Sebas писал(а):Какая форма?!??!?!? Бейсиковская?!?!?!?
Access-кая форма
-
Sebas
-
- Неуловимый Джо

-

-
- Сообщения: 3626
- Зарегистрирован: 12.02.2002 (Вт) 17:25
- Откуда: столько наглости такие вопросы задавать
-
Sebas » 01.07.2005 (Пт) 10:09
Чёрт, в ВБА не силён, но не уверен что SQL в аксесе понимает что такое форма...
Подставь ему значение из формы
- Код: Выделить всё
WHERE (((Securities.EmitNameCondin)=" & Forms!Deal1!Secur & "));")
это для чисел, если поле строковое, сответственно поставь кавычки...
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?
sebas<-@->mail.ru
-
alex shestov
-
- Продвинутый пользователь

-
-
- Сообщения: 109
- Зарегистрирован: 25.04.2005 (Пн) 12:01
alex shestov » 01.07.2005 (Пт) 10:17
Sebas писал(а):Чёрт, в ВБА не силён, но не уверен что SQL в аксесе понимает что такое форма...
Подставь ему значение из формы
- Код: Выделить всё
WHERE (((Securities.EmitNameCondin)=" & Forms!Deal1!Secur & "));")
это для чисел, если поле строковое, сответственно поставь кавычки...
А с чем может быть связано что на эту строку постоянно выдает ошибку что мало параметров. Требуется 1.
- Код: Выделить всё
Set rs = CurrentDb.OpenRecordset(strSql)
-
Sebas
-
- Неуловимый Джо

-

-
- Сообщения: 3626
- Зарегистрирован: 12.02.2002 (Вт) 17:25
- Откуда: столько наглости такие вопросы задавать
-
Sebas » 01.07.2005 (Пт) 10:19
запрос неверный, гдето имя поля неправильно написал.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?
sebas<-@->mail.ru
-
alex shestov
-
- Продвинутый пользователь

-
-
- Сообщения: 109
- Зарегистрирован: 25.04.2005 (Пн) 12:01
alex shestov » 01.07.2005 (Пт) 10:36
Sebas писал(а):запрос неверный, гдето имя поля неправильно написал.
Формы понимает но нужно вот так прописать оказывается.
- Код: Выделить всё
Private Sub Secur_AfterUpdate()
Dim rs As DAO.Recordset
Dim strSql, r1 As String
r1 = CStr([Forms]![Deal1]![Secur])
strSql = ("SELECT Securities.VidSecur, Securities.EmitNameCondin " _
& "FROM Securities WHERE (((Securities.EmitNameCondin)='" & [r1] & "'));")
Set rs = CurrentDb.OpenRecordset(strSql)
If rs.Fields("VidSecur") = "1" Then
Forms!Deal1!All_Nomin.Visible = False
Forms!Deal1!NKD.Visible = False
Else
Forms!Deal1!All_Nomin.Visible = True
Forms!Deal1!NKD.Visible = True
End If
End Sub
Вот так все работает. Спасибо за помощь.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, PetalBot, SemrushBot и гости: 3