powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Баги Access (топик не закрыт, можно добавлять)
25 сообщений из 370, страница 13 из 15
Баги Access (топик не закрыт, можно добавлять)
    #37583439
.ЛПАлё, Вась?
То, что "use keywords" - как то отменяет то, что "can only be"?
Принимается односложный ответ. Типа да/нет/не знаю/знаю, но не скажу.
После этого и поговорим.

четателей развелось, тля, плюнуть некуда :)Никак не отменяет.
"use keywords" от "may use keywords" отличить, надеюсь, сможете?
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583459
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Короче говоря, эту проблему надо переносить в другой топик. В ответ на недокументированный синтаксис получаем недокументированное поведение.
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583478
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СавсемГостьНикак не отменяет.
Очень хорошо.
Имеем два утверждения из хелпа:
1. Булевская переменная может быть только Труе и Фалсе.
2. Результатом применения оператора Нот к значению Труе является Фалсе. И наоборот, Нот Фалсе равно Труе.
Имеем кусок кода, результат выполнения которого опровергает либо первое, либо второе утверждение. Явно написанное.

На данный момент все слова понятны?

"use keywords" от "may use keywords" отличить, надеюсь, сможете?
Со словарём справлюсь.
Однако ж даже со словарём не пойму, при чём тут вот это вот "use the keywords ... to assign ... to Boolean variables", если в приведённом куске кода не содержится ни одного присвоения значения булевской переменной.

Присвоение значения переменной типа Variant - есть. Присвоения значения переменной типа Boolean - нет.
К чему было акцентировано "use keywords", независимо от того, "may" или не "may"?
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583485
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СанычКороче говоря, эту проблему надо переносить в другой топик. В ответ на недокументированный синтаксис получаем недокументированное поведение.
Нет.
Синтаксис самый что ни на есть документированный.
Возможные значения типа Boolean - документированы.
Возможные результаты оператора Not - документированы.
Правила приведения типов вообще, и Integer к Boolean в частности - документированы.
Вместе оно не (всегда) работает.
Но почему-то говорят, что это не баг. Вах-вах-вах.
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583609
.ЛП,
Присвоение значения переменной типа Variant - есть. Присвоения значения переменной типа Boolean - нет.Мы один и тот-же код обсуждаем?

К чему было акцентировано "use keywords", независимо от того, "may" или не "may"? Было акцентировано, как раз отсутствие may. Надеюсь, многоуважаемому .ЛП знакомы принципы "Всё, что не разрешено - запрещено" и "использование недокументированных возможностей - на свой страх и риск"? Спекуляций на тему "как же тогда быть с присвоением результата логического выражения переменной типа Boolean??!!!", надеюсь, не будет.

ЗЫ: если можно, объясните притчу про крестик и трусы.
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583644
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СавсемГость.ЛП,
Присвоение значения переменной типа Variant - есть. Присвоения значения переменной типа Boolean - нет.Мы один и тот-же код обсуждаем?
Да.
Признаю свою оплошность, поторопился.
Видимо есть присвоение Boolean'у.
звиняйте, таки посыпаю голову пеплом. поспешил, не проверил. привычке решил, что там промежуточная упаковка-распаковка вылезает, ан нет.

Тогда переколбашусь слегка.
Есть два утверждения из хелпа.
1. Boolean variables are stored as 16-bit (2-byte) numbers, but they can only be True or False.
2. When other numeric types are converted to Boolean values, 0 becomes False and all other values become True.
По приведённому коду - либо не "can only be", либо не "becomes".

Надеюсь, многоуважаемому .ЛП знакомы принципы "Всё, что не разрешено - запрещено" и "использование недокументированных возможностей - на свой страх и риск"?
Приведение типов - документировано. Вообще. И numeric types к boolean в частности.

ЗЫ: если можно, объясните притчу про крестик и трусы.
Дык вся притча уже и сказана.
В бане - "Авраам Моисеевич, или крестик снимите, или трусы наденьте".
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583700
>.ЛП,
>Видимо есть присвоение Boolean'у.

Видимо есть ... запись в память, "выделенную" под Boolean значения типа Variant/Byte(?)
А вот приведения к Boolean нет совсем
Я уже почти готов согласиться, что это бак VB
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583738
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СавсемГостьВидимо есть ... запись в память, "выделенную" под Boolean значения типа Variant/Byte(?)
Если бы это было LSet, или возврат значения из WinAPI-функции, то было бы можно говорить про "запись в память, выделенную под".
Ну, вот я так думаю.
По крайней мере нигде не сказано, что в таких случаях должно быть какое-то приведение типов. Наверное даже сказано обратное.

А вот приведения к Boolean нет совсем
Ну как же это "нет совсем"?
Ведь значение типа String преобразуется.
Сначала в numeric type. Если сумеет.
Потом из numeric type в Boolean. С багом.

Если бы было "нет совсем", т.е. например не происходило бы преобразования стринга в интеджер, то был бы другой коленкор. Можно было бы со спокойной совестью поставить этот случай на ту же полку, где стоит LSet и WinAPI.
А так имеем то, что "преобразовывали, преобразовывали, да не выпреобразовывали". В полном противоречии с хелпом, раз уж речь зашла о документированности и допустимости (и допустимости через документированность) преобразований.
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583750
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
.ЛПВедь значение типа String преобразуется.
Сначала в numeric type. Если сумеет.
Потом из numeric type в Boolean. С багом.
Код: vbnet
1.
2.
3.
4.
?CBool("true")
True
?CBool("false")
False
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583774
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч.ЛПВедь значение типа String преобразуется.
Сначала в numeric type. Если сумеет.
Потом из numeric type в Boolean. С багом.
Код: vbnet
1.
2.
3.
4.
?CBool("true")
True
?CBool("false")
False


Код: vbnet
1.
2.
3.
4.
? CBool(#1/1/2012#)
True
? Not CBool(#1/1/2012#)
False



А вот при попытке сделать
Код: vbnet
1.
2.
3.
Sub GetP(ByRef pOut As Variant)
    pOut = #1//1/2012#
End Sub


получается "программа выполнила невыполнимое и будет закрыта".
Бида бида огорчение...
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583776
>.ЛП,
>Потом из numeric type в Boolean. С багом.
Такое впечатление, что не к Boolean, а к его внутреннему представлению.

ЗЫ: как по мне, что LSet, что "обычная" процедура с передачей "хитрожёлтого" типа по ссылке в параметр с формальным типом вариант, - те же яйца, только в профиль.
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583785
.ЛП,

А вот при попытке сделать

Код: vbnet
1.
2.
3.
Sub GetP(ByRef pOut As Variant)
    pOut = #1//1/2012#
End Sub


получается "программа выполнила невыполнимое и будет закрыта".
Если это баг копипаста, то будет Overflow. Если умышленно, то до рантайма и не дойдёт.
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583793
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СавсемГость>.ЛП,
>Видимо есть присвоение Boolean'у.

Видимо есть ... запись в память, "выделенную" под Boolean значения типа Variant/Byte(?)
А вот приведения к Boolean нет совсем
Я уже почти готов согласиться, что это бак VBЧтобы было меньше вопросов:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
Private Enum VARENUM
   VT_EMPTY = 0
   VT_NULL = 1
   VT_I2 = 2
   VT_I4 = 3
   VT_R4 = 4
   VT_R8 = 5
   VT_CY = 6
   VT_DATE = 7
   VT_BSTR = 8
   VT_DISPATCH = 9
   VT_ERROR = 10
   VT_BOOL = 11
   VT_VARIANT = 12
   VT_UNKNOWN = 13
   VT_DECIMAL = 14
   VT_I1 = 16
   VT_UI1 = 17
   VT_UI2 = 18
   VT_UI4 = 19
   VT_INT = 22
   VT_UINT = 23
   VT_VOID = 24
   VT_ARRAY = &H2000
   VT_BYREF = &H4000
End Enum

Private Type MyVariantName3
   Val0 As Integer
   Val1 As Integer
   Val2 As Integer
   Val3 As Integer
End Type
Private Type MyVariantName4
   Val0 As Long
   Val1 As Long
End Type
Private Type MyVariant
   vt As Integer 'комбинация значений VARENUM
   wReserved1 As Integer
   wReserved2 As Integer
   wReserved3 As Integer
   Value As MyVariantName3
End Type

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
   pvDest As Any, pvSource As Any, ByVal cBytes As Long)

Sub t1()
 Dim b As Boolean
 
 b = True
 Debug.Print "Адрес переменной b: " & VarPtr(b)
 Debug.Print "До вызова процедуры GetP"
 Debug.Print "Шестн. значение переменной b: " & Hex$(b)

 GetP b
 
 Debug.Print "После вызова процедуры GetP"
 Debug.Print "Шестн. значение переменной b: " & Hex$(b)
 
 'далее по вкусу
End Sub

Sub GetP(ByRef pOut As Variant)
  Dim mv As MyVariant
  Dim mvn4 As MyVariantName4
  Dim boolVal As Boolean
  
  Debug.Print "Процедура GetP"
  
  CopyMemory mv, pOut, Len(mv)
  If mv.vt = (VT_BOOL Or VT_BYREF) Then
     Debug.Print "Переменная pOut типа Variant имеет подтип VT_BOOL | VT_BYREF"
     LSet mvn4 = mv.Value
     Debug.Print "Адрес переменной типа VT_BOOL, на которую ссылается pOut: " & mvn4.Val0
     CopyMemory boolVal, ByVal mvn4.Val0, LenB(boolVal)
     Debug.Print "До присвоения значения переменной pOut типа Variant"
     Debug.Print "Шестн. значение переменной типа VT_BOOL, на которую ссылается pOut: " & Hex$(boolVal)
  End If
  
  pOut = "3003"
     
  If mv.vt = (VT_BOOL Or VT_BYREF) Then
     CopyMemory boolVal, ByVal mvn4.Val0, LenB(boolVal)
     Debug.Print "После присвоения значения переменной pOut типа Variant"
     Debug.Print "Шестн. значение переменной типа VT_BOOL, на которую ссылается pOut: " & Hex$(boolVal)
  End If
End Sub

Вывод:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
t1
Адрес переменной b: 1242890
До вызова процедуры GetP
Шестн. значение переменной b: FFFF
Процедура GetP
Переменная pOut типа Variant имеет подтип VT_BOOL | VT_BYREF
Адрес переменной типа VT_BOOL, на которую ссылается pOut: 1242890
До присвоения значения переменной pOut типа Variant
Шестн. значение переменной типа VT_BOOL, на которую ссылается pOut: FFFF
После присвоения значения переменной pOut типа Variant
Шестн. значение переменной типа VT_BOOL, на которую ссылается pOut: 3003
После вызова процедуры GetP
Шестн. значение переменной b: 3003

Т. е. баг (не приведение к типу Boolean, несмотря на то, что информация о типе, на который ссылается Variant, имеется) в момент присвоения pOut.
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583799
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СавсемГостьЕсли это баг копипаста, то будет Overflow. Если умышленно, то до рантайма и не дойдёт.
Да нет, совсем не бага копипаста. И до рантайма доходит. Что я делаю не так?

Может у нас датавременные константы в коде стали как-то по-другому писаться?
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583804
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СавсемГостьЗЫ: как по мне, что LSet, что "обычная" процедура с передачей "хитрожёлтого" типа по ссылке в параметр с формальным типом вариант, - те же яйца, только в профиль.Ничего подобного. LSet небезопасен. Присвоение значения Variant-у обязано быть безопасным.
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583811
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не тот вывод скопипастил. Вот соответствующий коду:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
t1
Адрес переменной b: 1242890
До вызова процедуры GetP
Шестн. значение переменной b: FFFF
Процедура GetP
Переменная pOut типа Variant имеет подтип VT_BOOL | VT_BYREF
Адрес переменной типа VT_BOOL, на которую ссылается pOut: 1242890
До присвоения значения переменной pOut типа Variant
Шестн. значение переменной типа VT_BOOL, на которую ссылается pOut: FFFF
После присвоения значения переменной pOut типа Variant
Шестн. значение переменной типа VT_BOOL, на которую ссылается pOut: BBB
После вызова процедуры GetP
Шестн. значение переменной b: BBB
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583819
Пришёл лесник Бенедикт и всех разогнал
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583823
>.ЛП,
>Да нет, совсем не бага копипаста. И до рантайма доходит. Что я делаю не так?
Невнимательно смотрите.
Код: vbnet
1.
2.
3.
Sub GetP(ByRef pOut As Variant)
    pOut = #1//1/2012#
End Sub


У Вас два слеша подряд в "литерале даты".
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583827
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СавсемГость>.ЛП,
>Да нет, совсем не бага копипаста. И до рантайма доходит. Что я делаю не так?
Невнимательно смотрите.
Код: vbnet
1.
2.
3.
Sub GetP(ByRef pOut As Variant)
    pOut = #1//1/2012#
End Sub


У Вас два слеша подряд в "литерале даты".
А, не, это бага копипаста.
Пальцы заплетаются, простите.
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #37583844
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Пальцы заплетаются за язык...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Баги Access (топик не закрыт, можно добавлять)
    #38267160
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начал работать с аксом 2003 глючит часто
при быстрой работе копирования и т.д. надинает отваливатся главная форма у меня
самое ужасное - импорт таблиц dBase 5, OOCB с этим делом вообще непонятки
то нормально импортируется один и тот же файл, то выскакивают всякие ошибки (типо путь не найдет или ошибка драйвера)
часто теряются связи с таблицами bdf
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #38332244
Kroko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access 2003.
Есть главная форма, внутри которой подчиненная.
Подчиненная выполнена в табличном виде и на ее первом поле висит макрос, который по клику на это поле открывает другую форму.
При открытии главной формы, в какую бы точку подчиненной формы не кликнешь - срабатывает это макрос, но самое странное, что срабатывает только 1 раз, т.е. сразу после открытия формы. При этом он нормально продолжает отрабатывать при клике на нужное поле.
Не понимаю в чем дело и как такое возможно.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Баги Access (топик не закрыт, можно добавлять)
    #39015637
hardfate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я вообще пока себе не скачал офис 2013, один очень важный документ открыть по асесу не мог, а надо было срочно, ппц
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #39015645
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hardfate,

И в чем баги?
В отсутствии на машине нужной версии Access?
...
Рейтинг: 0 / 0
Баги Access (топик не закрыт, можно добавлять)
    #39025470
tanchukz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как по мне вообще баговая система, лучше использовать My SQL
...
Рейтинг: 0 / 0
25 сообщений из 370, страница 13 из 15
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Баги Access (топик не закрыт, можно добавлять)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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