-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Проверить значение поля циклом по полям формы

Воскресенье, 18 Мая 2014 г. 02:19 + в цитатник
Всем привет.
Очередной раз за помощью.

Есть форма, порядка 50 полей.
От формы на источнике данных отказался, у меня там много просчитываемых полей и при сохранении через .Execute работала, но попал на - "Эту запись правил другой пользователь......" /Пробовал решить но через Dirty не решил
Так нормально и не получилось сохранить ...
Раньше делал всегда отвязанные формы, решил вернуться на старый способ

Нужно при открытии присваивать полям значения, при закрытии - сохранять назад.
Сделал такой модуль.
На вставить занчения в форму проблем нет. А вот при сохранении не могу проверить значение контрола. Вылетает на ошибку - присвоения нулевого значения с типом не "вариант"

Call LinkSetD(здесь селект)
If Not str.EOF Then
    If kod Then
'....
'здесь циклы по записи в поля формы значений селекта
'....
    Else
' принцип обработки, такой же как и при записи в форму(выше), только здесь начинаю цикл по полям формы а там делал
' начало циклов с полей запроса
        For e = 0 To Me.Controls.Count - 1
            For i = 0 To str.Fields.Count - 1
                If Me.Controls.Item(e).ControlType = acTextBox Or Me.Controls.Item(e).ControlType = acComboBox Then ' 109--111
                        If str.Fields(i).Name = Me.Controls(e).Name Then
                            If kods1 Then '--- New
                                str.AddNew
                            Else '--- Edit
                                str.Edit
                            End If
                            If Not IsNull(Me.Controls(e).Value) Then
                            Select Case str.Fields(i).Type
                                Case dbCurrency
                                    str.Fields(i).Value = Me.Controls(e).Value 'CCur(Nz(Me.Controls(e).Value, 0))
                                Case dbNumeric
                                    str.Fields(i).Value = Me.Controls(e).Value 'CLng(Nz(Me.Controls(e).Value, 0))
                                Case dbDate
                                    str.Fields(i).Value = Me.Controls(e).Value 'CDate(Nz(Me.Controls(e).Value, 0))
                                Case Else
                                    If i <> 0 Then str.Fields(i).Value = Me.Controls(e).Value 'CStr(Nz(Me.Controls(e).Value, ""))
                            End Select
                            str.Update
                            Else
' -------вот здесь(строка ниже) и бьет ошибку на нулевое значение
' хоят мне нужно записать null в таблицу. Таблица и поля это позваляют.
                            str.Fields(i).Value = Null
                            End If
'                            Debug.Print str.Fields(i).Name & "  " & str.Fields(i).Value
                        End If
                Else
                    GoTo 2
                End If
            Next i
2:
        Next e
    End If
End If
str.Close


на правильность конца циклов и IF...end if - не смотрите - резал, мог пропустить
уже просто тупить начал
ткните, что нужно делать?

http://www.sql.ru/forum/1095231/proverit-znachenie-polya-ciklom-po-polyam-formy


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку