Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Recordset и поле со списком / 25 сообщений из 27, страница 1 из 2
29.04.2017, 08:12
    #39446438
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
Добрый день!

Задача сохранить новую запись в таблицу "клиенты".
Поле со списком "Me.Курсы" имеет несколько значений, ровно так же как "rs![Курсы]".
Но! при сохранении выдает "Ошибка преобразования тип данных"

ВОПРОС: как используя Recordset сохранить запись данные из поля Me.Курсы в таблицу?
Может есть еще какой метод.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub СохранитьКлиентыNew_Click()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("Клиенты")
rs.AddNew
rs![ФИО ребенка] = Me.ФИО_ребенка
rs![Курсы] = Me.Курсы
rs.Update
MsgBox ("Занятие успешно сохранено!")
End Sub
...
Рейтинг: 0 / 0
29.04.2017, 09:04
    #39446448
вопрос__222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar,

в источнике для комбобокса сколько столбцов?

me.[курсы] это ссылка на первый столбец, как правило, ключевой, он может быть скрыт

попробуйте
me.[курсы].column(index)

где вместо index подставьте индекс столбца, данные из которого надо сохранять
...
Рейтинг: 0 / 0
29.04.2017, 09:16
    #39446452
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
вопрос__222, в источнике 2 столбца.
сделал видимым (1 см) и в источнике, в форме ввода данных.


rs![Курсы] = Me.[Курсы].Column(1) выдает "metod collect of recordset2 failed"

Как исправить?
...
Рейтинг: 0 / 0
29.04.2017, 09:21
    #39446453
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar, NotInList
...
Рейтинг: 0 / 0
29.04.2017, 09:25
    #39446455
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar, или всётаки запись в комбобоксе есть такая? Форма unbound?
...
Рейтинг: 0 / 0
29.04.2017, 09:31
    #39446459
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstarПоле со списком "Me.Курсы" имеет несколько значений, ровно так же как "rs![Курсы]".Поле в таблице многозначное?
...
Рейтинг: 0 / 0
29.04.2017, 09:32
    #39446460
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
Панург, извините , не понимаю вопроса. Не понимаю как форма может быть не связана.

Во вложении отправляю саму базу, так нагляднее.
...
Рейтинг: 0 / 0
29.04.2017, 09:46
    #39446466
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
Панург, да, многозначное
...
Рейтинг: 0 / 0
29.04.2017, 10:02
    #39446468
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar,
...
Рейтинг: 0 / 0
29.04.2017, 10:04
    #39446470
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar, создай нормальную форму с источником данных, привяжи контролы к полям источника. И код практически будет не нужен.
...
Рейтинг: 0 / 0
29.04.2017, 10:19
    #39446475
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
Панург, сделал форму заново. потом перенес поле Курсы, в свою форму. Все равно ошибка та же.
Не понимаю что значит привязать контролы.
Скажите "по-русски" ))) чего сделать-то?)
...
Рейтинг: 0 / 0
29.04.2017, 10:32
    #39446477
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar, форму переделывать не надо. Просто у каждого контрола (почти) есть свойство "Данные", так вот, нужно чтобы там были прописаны поля источника записей (таблицы/запроса). В этом случае значения сами поступают в таблицы. Правда есть некоторые нюансы, но лучше взять какую-нибудь книгу по Access (их даже покупать не надо когда есть интернет) и прочитать там про создание форм и прочего. Так же рекомендуется просмотреть учебную БД "Борей" которая идёт в стандартной поставке дистрибутива MS Office с Access, хотя её можно так же найти в интернете.
...
Рейтинг: 0 / 0
29.04.2017, 10:35
    #39446478
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstarВсе равно ошибка та же.В том пример, что я исправил?
...
Рейтинг: 0 / 0
29.04.2017, 10:39
    #39446480
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
Панург, мне нужно поле с несколькими вариантами выбора. В том, что Вы исправили только 1 вариант для выбора курса.
...
Рейтинг: 0 / 0
29.04.2017, 10:41
    #39446481
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
и я хочу понать где у меня ошибка, понять, что сделал не так и научиться сохранять в таблицу поле с множественными вариантами выбора.
...
Рейтинг: 0 / 0
29.04.2017, 11:03
    #39446484
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstarПанург, мне нужно поле с несколькими вариантами выбора. В том, что Вы исправили только 1 вариант для выбора курса.Один из вариантов я тебе предложил тут-> 20445717
Комбо без источника не позволит выбрать несколько значений, так как это сделано у тебя это неправильно.
...
Рейтинг: 0 / 0
29.04.2017, 11:12
    #39446486
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
Панург, в том то и дело, что источник привязан. В форме я вижу нужные мне значения.
Вопрос лишь в сохранении.
Две ошибки выдает, которые я один побороть не смог. Оттого и прошу помощи. Не стандартная ошибка.
...
Рейтинг: 0 / 0
29.04.2017, 11:23
    #39446487
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar, вот я тебе частично привязал контролы и поправил код. То, что заремлено, ненужно.
...
Рейтинг: 0 / 0
29.04.2017, 11:29
    #39446488
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar, упс, я там по запарке тебе немного неправильно в примере написал, поправь выделенное
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub ЗакрытьКлиентNew_Click()
    If Me.Dirty Then Me.Undo
Me.SetFocus
DoCmd.Close
End Sub

Private Sub СохранитьКлиентыNew_Click()
Me.ФИО_ребенка.SetFocus
Me.Dirty = False
Me.ФИО_ребенка.BackColor = "900500"
MsgBox ("Занятие успешно сохранено!")
DoCmd.Close
End Sub

...
Рейтинг: 0 / 0
29.04.2017, 11:34
    #39446489
вопрос__222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar,

у вас таблица курсы предусматривает для каждой записи одно значение кода курса и таблица курсы (справочная таблица) тоже на одну запись одно значение кода курса. Для реализации записи выбора множественного значения "многие-ко-многим" (несколько вариантов значений курсов для каждого клиента и несколько клиентов для одного курса) нужна таблица с полями "код клиента", "код курса", и уже в ней сохранять выбранное значение. Кстати, его как множественное надо и отображать (в виде какого-либо списка)
...
Рейтинг: 0 / 0
29.04.2017, 14:23
    #39446528
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
Спасибо всем за помощь.
К сожалению, не одним из способов не смог решить вопрос.

"Me.Dirty = False" - значит придется устанавливать связь с таблицей "клиенты" и любое изменение поля сразу ведет к созданию записи в таблице "курсы". Администраторы умудряются по 3-5 дубликатов делать одного клиента. Поэтому мне нужен рекогсет, чтобы сохранение было исключительно после нажатия кнопки "сохранить".

Связь многие-ко-многим сделал - ошибка та же.

Решил просто сделать три отдельных поля в каждом свой курс будем выбирать.
...
Рейтинг: 0 / 0
29.04.2017, 14:40
    #39446535
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar,
родитель1,телефон1,родитель2,телефон2...(а если телефонов 4 куда ещё 2 писать?-Ржевский молчать!!) а подчиненные, со связью 1:М,почему не использовать
да и использование многозначных (допускающих несколько значений) полей не ICE
...
Рейтинг: 0 / 0
29.04.2017, 14:51
    #39446538
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
вдогонку:quickstarРешил просто сделать три отдельных поля в каждом свой курс будем выбирать.не поля,а таблицу "курсы"(тем более что оплата,количество занятий,преподаватель да мало-ли что еще может отличаться
(извиняюсь что не отвечаю конкретно на Ваш вопрос-считаю что при правильной структуре БД создается,причем достаточно легко,а при не правильной,после ряда мучений,приходит понимание что создать БД не удастся)
...
Рейтинг: 0 / 0
29.04.2017, 14:51
    #39446539
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
sdku, у меня сложности с по курсами возникли. По родителям там несколько полей.
Я сделал связь м-к-м, все ранво ошибку выдавало.
...
Рейтинг: 0 / 0
29.04.2017, 15:50
    #39446552
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset и поле со списком
quickstar"Me.Dirty = False" - значит придется устанавливать связь с таблицей "клиенты" и любое изменение поля сразу ведет к созданию записи в таблице "курсы".Да, устанавливать источником таблицу. Почему изменение поля ведёт к созданию записи в таблице курсы? Ничего подобного. Надо правильно провести настройки.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Recordset и поле со списком / 25 сообщений из 27, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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