Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Вопросы порядковой нумерации в Access2007  [new]
Lekks
Member

Откуда:
Сообщений: 147
Подскажите, пожалуйста, можно ли обратиться ко всем комбобоксам в форме одновременно (для установки количества и ширины Column)
10 ноя 18, 12:26    [21730364]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы порядковой нумерации в Access2007  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 847
+
Доброе утро товарищи комбобоксы!
Начинаем комплекс утренней гимнастики.
:)

Одновременно нет.

Можно ссылки на комбобоксы добавить в свою коллекцию,
описать процедуру, в которой перебирать члены коллекции,
и присваивать нужные значения свойств.

В этом случае один вызов этой процедуры будет имитировать "одновременное" обращение.
10 ноя 18, 13:43    [21730409]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы порядковой нумерации в Access2007  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5669
Lekks,
Можно перебрать
Sub my()
Dim ctl As Control
For Each ctl In Me.Controls
	If ctl.ControlType = acСomboBox Then 'или какой другой тип, например acТextBox
	                With ctl 'устанавливайте доступные свойства
 				.SetFocus  
 				.Enabled = True
 				.Height = 400
				.SpecialEffect = 0
			End With
        End If
	Next ctl
End Sub
10 ноя 18, 15:13    [21730452]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы порядковой нумерации в Access2007  [new]
Lekks
Member

Откуда:
Сообщений: 147
Predeclared
Одновременно нет... процедуру, в которой перебирать члены коллекции...

...один вызов этой процедуры будет имитировать "одновременное" обращение.


sdku
Lekks,
Можно перебрать


Да, я именно это и имел ввиду. Не смог разобраться как их обозначать как объект. Спасибо!!!
10 ноя 18, 19:16    [21730560]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы порядковой нумерации в Access2007  [new]
Lekks
Member

Откуда:
Сообщений: 147
Привет. Проблема такого рода:

Select Case PSOTsotr
        Case False
            Me.Registration = Nz(DMax("RegNum", "Accounting", "Year(RegDate)= " & Year(Me.[RegiDate])), (Me.StartNum)) + 1
            Me.StartNum = 0
        Case True
            Me.Registration = Nz(DMax("RegNumOf", "Accounting", "Year(RegDate)= " & Year(Me.[RegiDate])), (Me.StartNum)) + 1
            Me.StartNum = 0
    End Select


В данном коде по полю RegNum таблицы Accounting Dmax нумерует нормально, а по полю RegNumOf той же таблицы, начиная с 9 присваивает номер 10 и на этом все... последующие номера - тоже 10. Поля текстовые.
Подскажите что не так?

P.S. при написании запроса в SQL - DMax (CLng ([RegNumOf]), "Accounting") дает верный результат. Но с чем это связано, почему по двум однотипным полям считает по разному - это неясно. И как правильно написать в VBA тоже не знаю.
7 дек 18, 10:38    [21756735]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы порядковой нумерации в Access2007  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 210
Если вы сделаете сортировку по текстовому полю, то увидите, что "10" меньше "9" (даже меньше "2"), т.к. сравнивается 1-й символ, затем 2-й и т.д.
Странно, что ваш код вообще работает. Ведь DMax("RegNumOf"...) возвращает строку,
а "9"+1 вернет "91" (конкатенация), а не 10.
Вы уверены, что "RegNum" тоже текстовое?

Вам надо открывать Recordset на запросе с сортировкой CLng([RegNumOf]) (или Val([RegNumOf]) ) по убыванию читать значение из 1-й записи с преобразованием строки в число.

Кстати, Year(RegDate)= 2018 выглядит проще, чем RegDate Between #01/01/2018# And #12/31/2018#, но работает значительно медленнее.
7 дек 18, 12:05    [21756836]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы порядковой нумерации в Access2007  [new]
Lekks
Member

Откуда:
Сообщений: 147
Кривцов Анатолий
Вы уверены, что "RegNum" тоже текстовое?


RegNum тоже текстовое. И это как бы не мой код, мне его выше в топике подсказали.
7 дек 18, 17:18    [21757379]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы порядковой нумерации в Access2007  [new]
Lekks
Member

Откуда:
Сообщений: 147
Поможет ли изменение формата полей на числовой? И как все-таки правильно написать в VBA выражение
DMax (CLng ([RegNumOf]), "Accounting") и можно ли вообще?
7 дек 18, 17:33    [21757403]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы порядковой нумерации в Access2007  [new]
Lekks
Member

Откуда:
Сообщений: 147
Lekks
Поможет ли изменение формата полей на числовой?


Помогло. Волнует - не вылезет ли из-за этого ошибка в дальнейшем?
7 дек 18, 17:39    [21757409]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Microsoft Access Ответить