powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ??? обновить поле в подчиненной форме
23 сообщений из 23, страница 1 из 1
??? обновить поле в подчиненной форме
    #32162381
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите!:)
В .adp есть frm_1 поле со спиком "first"
и подчиненная форма subfrm_2 поле со спиком "second"
В поле "second" требуется установить значение по умолчанию
[Forms]![frm_1]![first]
Требуется после изменения значения в поле "first" обновить значение по умолчанию "second".
Кто знает?
Кстати на формулировку [Forms]![frm_1]![first] страшно ругается:(
говорит не знаю, что это такое:(((
ЗЫ Если можно без VBA:)
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32162791
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страшно ругается это как именно?
Без VBA не обойтись, т.к. значение по умолчанию устанавливается как значение, а не как выражение, т.е. если значение по умолчанию ссылается на поле формы, то оно берет значение поля в момент установки и не изменяется при изменении поля.
В Вашем случае, как мне кажется нужно писать обработчик события на изменение первого поля со списком и прописывать его значение в значение по умолчанию второго поля.
Обратить внимание на след.:
если тип связанного поля символьный, то в коде VBA
Fields2.DefaultValue="'" & Forms!MyForm!Fields1 & "'"
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32163695
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый incold!
К моему великому стыду, вынужден признаться Вам в том, что мало чего понял в Вашем ответе:(
Я не являюсь опытным программистом:(((((
Буду признателен Вам за более подробную консультацию:)
А именно:
Где писать?
Что писать?
З.Ы. Тип поля Datetime
В ожидании Вашего ответа, остаюсь покорнейшим Вашим слугой.
Geen
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32163713
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не опытный, то лучше сначала почитать какую-нибудь литературу и посмотреть работающие примеры.

Так какое же было страшное ругательство?

По поводу что? где? как?
Для выпадающего списка есть свойство AfterUpdate (ПослеОбновления)
Для него нужен примерно след. код

Private Sub first_AfterUpdate()
Me.subfrm_2.Form!second.DefaultValue = "'" & Format(Me.first, "dd.mm.yy") & "'"
End Sub
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32164978
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый incold!
Следуя Вашему совету, задал AfterUpdete.
В результате поимел в поле подчиненной формы ?ошибку.
Предполагаю конфликт форматов т.к. и в одном поле и в другом (DateTime).
Если Вас не затруднит, подскажите синтаксис (воспринимать Format..... как Дату)
С наилучшими пожеланиями.
Geen.
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32165017
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Довольно часто встречаемый вопрос.
Сорри забыл про формат
Format(Me.first, "yyyymmdd")
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32165143
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To incold

Пиво! Пиво! Пиво! И пиво!
Преогромнейшее спасибо! (убрать точки, так и заработало)
А теперь хотелось бы усложнить задачу!
"first" - на самом деле должно быть условием WHERE для источника строк поля в подчиненной форме.
Примерно так
SELECT ID, Odin, Dva
FROM "Неважно"
WHERE Dva = и здесь мысль останавливается:( (first)
Ну если и это заработает, то буду самым счастливым разработчиком
С уважением Geen
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32165156
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое "источника строк поля"?
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32165179
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To incold
В подчиненной форме есть поле со списком, которое берет данные для подстановки типа SELECT FROM WHERE
Вот и нужно, чтобы поле со списком в основной форме задавало WHERE для поля со списком в подчиненной форме.
Если не в напряг, то помогите уж и с этим.
Geen

З.Ы. Будете в Киеве, милости прошу!:)
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32165189
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В тот же код добавить строку

Me.subfrm_2.Form!second.rowsource="select ... from ... where ..."

:) Я и сейчас в Киеве :)
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32165197
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку:
очень не рекомендую использовать выпадающие списки в подчиненных формах (если подчиненная форма ленточная).
При увеличении объемов данных большие тормоза
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32174616
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый incold!
Прошу Вас простить мое вынужденное молчание! (провайдер перегрыз провода)
С проблемой, стоявшей передо мной, с Вашей помошью, почти разобрался!:)
Однако, тут же встала следующая:(
После форматирования в дату, получил значение типа 15.02.2003 18:50:01
в условии WHERE для источника строк поля со списком в подчиненной форме.
Но к указанному мною выше значению кто-то довесил одинарные кавычки:(((
И все это, вдруг, перестало восприниматься как дата:(((
Если информации достаточно, прошу Вас о помощи!:)
Else Наберу текст Sub-а
End If
Geen
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32174847
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дата в запросах передаваемых на SQL должна передаваться в кавычках и в соответствующем формате.
Есть такой раздел в FAQ
http://www.sql.ru/faq/faq_topic.aspx?fid=103

Вот из него кусочек
Подготовленное для передачи значение должно быть представлено
в формате ISO - 'yyyymmdd hh:mm:ss.mmm'


Т.е. нужно сделать примерно так:

strSql="select ... from ... where myDate = ' " & format(myfield,"yyyymmdd hh:mm:ss.mmm") & " ' "
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32175347
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно так я и сделал.
И получил результат в одинарных кавычках.
На что получил в ответ сообщение о несовпадении типов данных.
При этом, везде, где только можно, стоит формат полной даты.
Проект хотел бы видеть #................#, а на попытку написать что-нибудь вроде
"#" & ".............." & "#" VBA выделяет красным и работать отказывается:(
Вот в чем проблема-то:(
Искренне Ваш Geen
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32175380
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Что именно он выделяет красным? Строчку в студию! Я уверен, что там недочет или перечет с кавычками.
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32176499
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вот!
Сначала я писал:

& " WHERE ID_Type = ' " & Format(Me.P10, ddmmyyyyhhnnss) & " ' "
потом
& " WHERE ID_Type = ' " & Format(Me.P10, yyyymmddhhmmss) & " ' "

при этом результат был следующим:

SELECT Tbl_Materials.ID_Material, Tbl_Type.ID_Type
FROM dbo.Tbl_Materials INNER JOIN
dbo.Tbl_Type ON
dbo.Tbl_Materials.K_Type = dbo.Tbl_Type.ID_Type
WHERE (dbo.Tbl_Type.ID_Type = '04.06.2003 10:05:06'
это выдает мне пустую строку

Текст саба такой:

Private Sub P10_AfterUpdate()
Dim WHR As String
WHR = "SELECT dbo.Tbl_Materials.ID_Material, dbo.Tbl_Type.ID_Type" _
& " FROM dbo.Tbl_Materials INNER JOIN dbo.Tbl_Type ON dbo.Tbl_Materials.K_Type = dbo.Tbl_Type.ID_Type" _
& " WHERE (dbo.Tbl_Type.ID_Type = CONVERT(DATETIME, '" & Format(Me.P10, yyyymmddhhmmss) & "'))"
Me.Fld2.RowSource = WHR
End Sub

В результате имею:

SELECT Tbl_Materials.ID_Material, Tbl_Type.ID_Type
FROM dbo.Tbl_Materials INNER JOIN
dbo.Tbl_Type ON
dbo.Tbl_Materials.K_Type = dbo.Tbl_Type.ID_Type
WHERE (dbo.Tbl_Type.ID_Type = CONVERT(DATETIME,
'04.06.2003 10:05:06', 102))

А машина считает, что нужно:

SELECT Tbl_Materials.ID_Material, Tbl_Type.ID_Type
FROM dbo.Tbl_Materials INNER JOIN
dbo.Tbl_Type ON
dbo.Tbl_Materials.K_Type = dbo.Tbl_Type.ID_Type
WHERE (dbo.Tbl_Type.ID_Type = CONVERT(DATETIME,
'2003-06-04 10:05:06', 102))

Как???

Geen
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32176513
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Format(Me.P10, "yyyy-mm-dd hh:nn:ss")
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32176514
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему так

Private Sub P10_AfterUpdate()
Dim WHR As String
WHR = "SELECT dbo.Tbl_Materials.ID_Material, dbo.Tbl_Type.ID_Type" _
& " FROM dbo.Tbl_Materials INNER JOIN dbo.Tbl_Type ON dbo.Tbl_Materials.K_Type = dbo.Tbl_Type.ID_Type" _
& " WHERE (dbo.Tbl_Type.ID_Type = '" & Format(Me.P10, yyyymmddhhmmss) & "')"
Me.Fld2.RowSource = WHR
End Sub
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32176535
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой. ошибочка. Владимир Саныч прав

Private Sub P10_AfterUpdate()
Dim WHR As String
WHR = "SELECT dbo.Tbl_Materials.ID_Material, dbo.Tbl_Type.ID_Type" _
& " FROM dbo.Tbl_Materials INNER JOIN dbo.Tbl_Type ON dbo.Tbl_Materials.K_Type = dbo.Tbl_Type.ID_Type" _
& " WHERE (dbo.Tbl_Type.ID_Type = '" & Format(Me.P10, "yyyymmddhhmmss") & "')"
Me.Fld2.RowSource = WHR
End Sub
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32176742
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно не работает:((((

Если пишу - yyyymmddhhmmss
Выдает rowsource:

SELECT dbo.Tbl_Materials.ID_Material, dbo.Tbl_Type.ID_Type FROM dbo.Tbl_Materials INNER JOIN dbo.Tbl_Type ON dbo.Tbl_Materials.K_Type = dbo.Tbl_Type.ID_Type WHERE (dbo.Tbl_Type.ID_Type = '04.06.2003 10:05:45')

А если пишу - "yyyymmddhhmmss"
Выдает rowsource:
Syntax error converting datetime from character string

Мягко говоря замучился:)
Но надежду не теряю!:)
Ваш покорный слуга Geen
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32176754
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А если все-таки сделать так, как я предложил?
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32176762
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, кстати, я слона-то не заметил.
Почему "yyyymmddhhmmss"?
Работает или "yyyymmdd hh:nn:ss"
или вариант ВС "yyyy-mm-dd hh:nn:ss"
...
Рейтинг: 0 / 0
??? обновить поле в подчиненной форме
    #32179972
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну наконец-то!:)
Большое спасибо!
Окончательный вариант:
"yyyy mm dd hh:mm:ss"
причем именно в "" кавычках.
Работает безотказно:)
8(044)4411010 - пиво:)
Икренне Ваш
Geen
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ??? обновить поле в подчиненной форме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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