powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Объясните разницу между Me.Form.RecordSource и Me.RecordSource
21 сообщений из 46, страница 2 из 2
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36914728
Guest33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кто попробует с разными вариантами свойства "Разрешить изменения макета"?
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36914758
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest33Может кто попробует с разными вариантами свойства "Разрешить изменения макета"?

в 97м такого св-ва нет
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36914768
Фотография kha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ё...гм-гм,
я вот тоже всегда считал что это одно и тоже...

но, какгрится - "практика критерий истины" ,
так вот - с "практикой" - что-то не то...

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Кнопка4_Click()
  MsgBox "ObjPtr(Me) = " & ObjPtr(Me) & vbCrLf & _
         "ObjPtr(Me.Form) = " & ObjPtr(Me.Form) & vbCrLf & _
         "ObjPtr(Me.Form.Form) = " & ObjPtr(Me.Form.Form) & vbCrLf & _
         "ObjPtr(Me.Form.Form.Form) = " & ObjPtr(Me.Form.Form.Form)
End Sub
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
---------------------------
Microsoft Office Access
---------------------------
ObjPtr(Me) =  2315888 

ObjPtr(Me.Form) =  9014736 

ObjPtr(Me.Form.Form) =  9014736 

ObjPtr(Me.Form.Form.Form) =  9014736 
---------------------------
ОК   
---------------------------


ПМСМ ни чего удивительного, вы подменили исходную тему
между Me.Form.RecordSource и Me.RecordSource нет никакой разницы

просто Form это дефолтное проперти класса Form_XXXX.
для аналога сравните

Debug.Print ObjPtr(Me.Recordset), ObjPtr(Me.Form.Recordset)

т.е Ме - это ссылка на объект класса Form_XXXX
а сам Form это отдельный объект

например создайте в модуле формы паблик проперти и попробуйте к нему обратится

me.myproperty и me.form.myproperty
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36914787
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
khaё...гм-гм,
я вот тоже всегда считал что это одно и тоже...

но, какгрится - "практика критерий истины" ,
так вот - с "практикой" - что-то не то...

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Кнопка4_Click()
  MsgBox "ObjPtr(Me) = " & ObjPtr(Me) & vbCrLf & _
         "ObjPtr(Me.Form) = " & ObjPtr(Me.Form) & vbCrLf & _
         "ObjPtr(Me.Form.Form) = " & ObjPtr(Me.Form.Form) & vbCrLf & _
         "ObjPtr(Me.Form.Form.Form) = " & ObjPtr(Me.Form.Form.Form)
End Sub
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
---------------------------
Microsoft Office Access
---------------------------
ObjPtr(Me) =  2315888 

ObjPtr(Me.Form) =  9014736 

ObjPtr(Me.Form.Form) =  9014736 

ObjPtr(Me.Form.Form.Form) =  9014736 
---------------------------
ОК   
---------------------------


ПМСМ ни чего удивительного, вы подменили исходную тему
между Me.Form.RecordSource и Me.RecordSource нет никакой разницы

просто Form это дефолтное проперти класса Form_XXXX.
для аналога сравните

Debug.Print ObjPtr(Me.Recordset), ObjPtr(Me.Form.Recordset)

т.е Ме - это ссылка на объект класса Form_XXXX
а сам Form это отдельный объект

например создайте в модуле формы паблик проперти и попробуйте к нему обратится

me.myproperty и me.form.myproperty

тоже склонялся к такому выводу, таки Me - ссылка на текущий экземпляр класса, разницы нет и в последующем, но надо отдавать должное тому, что экземпляров может быть и более 1го.
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36914814
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kha
просто Form это дефолтное проперти класса Form_XXXX.
для аналога сравните

Debug.Print ObjPtr(Me.Recordset), ObjPtr(Me.Form.Recordset)

т.е Ме - это ссылка на объект класса Form_XXXX
а сам Form это отдельный объект

например создайте в модуле формы паблик проперти и попробуйте к нему обратится

me.myproperty и me.form.mypropertyО, ну вот и объяснения.

Спасибочки.
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36914815
Фотография kha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

да- экземпляров может быть более одного, в чем противоречие?
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36914904
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
khaПМСМ ни чего удивительного, вы подменили исходную тему
между Me.Form.RecordSource и Me.RecordSource нет никакой разницы

просто Form это дефолтное проперти класса Form_XXXX.
для аналога сравните

Debug.Print ObjPtr(Me.Recordset), ObjPtr(Me.Form.Recordset)

вот поэтому, я ничего ни про RecordSource, ни про Recordset - ни говорил

вопрос был в том - почему ObjPtr(Me), ObjPtr(Me.Form) - возвращают разное значение
ответ - вот поэтому
Код: plaintext
1.
2.
3.
4.
5.
6.
Debug.Print "acNormal - " & ObjPtr(Forms!Форма8), ObjPtr(Forms!Форма8.Form), ObjPtr(Forms.Item( 0 ))
DoCmd.OpenForm "Форма8", acDesign
Debug.Print "acDesign - " & ObjPtr(Forms!Форма8), ObjPtr(Forms!Форма8.Form), ObjPtr(Forms.Item( 0 ))
DoCmd.OpenForm "Форма8", acNormal
Debug.Print "acNormal - " & ObjPtr(Forms!Форма8), ObjPtr(Forms!Форма8.Form), ObjPtr(Forms.Item( 0 ))
DoCmd.OpenForm "Форма8", acDesign
Debug.Print "acDesign - " & ObjPtr(Forms!Форма8), ObjPtr(Forms!Форма8.Form), ObjPtr(Forms.Item( 0 ))
Код: plaintext
1.
2.
3.
acNormal -  159751728           129251236       159751728  
acDesign -  129252920           129252920       129252920  
acNormal -  159751728           129252920       159751728  
acDesign -  129253748           129253748       129253748  
khaт.е Ме - это ссылка на объект класса Form_XXXX
а сам Form это отдельный объект
т.е. Me - это ссылка на текущую форму в виде элемента коллекции Forms
а сам Me.Form - ссылка непосредственно на объект форма
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36914967
Фотография kha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ё,

я не знаю внутреннего устройства аксес, поэтому может скажу ерунду

класс Form_XXXX какбы наследуется от класса ХХХХ , где ХХХХ-имя какой - то формы,
по этому используюя Me.property мы можем обращаться к свойствам формы в текущем экземпляре
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36914976
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ё,

таки Me - это ссылка на экземпляр класса( коих, может быть и более одного)
а Me.Form - это ссылка на обьект "форма".(контролы, модуль и тд)
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36915011
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сравнение ObjPtr(Me) с ObjPtr(Me.Form) - сравнение тёплого с мягким, так как Me и Me.Form имеют разные типы: ИмяVBAПроекта.Form_XXX и Access.Form. Объект может реализовывать разные интерфейсы, и возвращать ссылки на разные интерфейсы (но при вызове членов этих разных интерфейсов код этих членов будет обращаться к внутренним данным одного объекта). Для иллюстрации покажу на обычных классах.
Класс BaseClass:
Код: plaintext
1.
Option Explicit
'"Пустой" класс, аналог, как ни странно, Access.Form
Класс Class1:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Option Explicit
'Аналог класса Form_XXX, реализующего Access.Form
Implements BaseClass

Public Property Get Class() As BaseClass 'Аналог свойства Form
 Dim bc As BaseClass
 Set bc = Me
 Set Class = bc
End Property

'Здесь реализация методов и свойств BaseClass, не будь он пустой
Тестовая процедура:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public Sub Test()
 Dim c As Class1
 Set c = New Class1
 Debug.Print ObjPtr(c), ObjPtr(c.Class), ObjPtr(c) = ObjPtr(c.Class) 'не равны
 
 Dim o As Object, o1 As Object
 Set o1 = c
 Set o = c.Class
 Debug.Print ObjPtr(o1), ObjPtr(o), ObjPtr(o) = ObjPtr(o1) 'не равны
 
 'Надо подключить библиотеку "TypeLib Information" в References
 Dim ii As InterfaceInfo, ii1 As InterfaceInfo
 Set ii = InterfaceInfoFromObject(o)
 Set ii1 = InterfaceInfoFromObject(o1)
 Debug.Print ii1.GUID, ii.GUID, ii1.GUID = ii.GUID 'не равны
 
 'Приводим к одному типу
 Dim k As Class1, k1 As Class1
 Set k = c 'или o
 Set k1 = c.Class 'или o1
 Debug.Print ObjPtr(k), ObjPtr(k1), ObjPtr(k) = ObjPtr(k1) 'Упс, таки равны!
End Sub
Мораль: сравнивайте ссылки, приведённые к одному типу, причём не к Object.
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36915018
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
Озверинё,

таки Me - это ссылка на экземпляр класса( коих, может быть и более одного)
а Me.Form - это ссылка на обьект "форма".(контролы, модуль и тд)
и то, и другое - ссылка на экземпляр класса

я ж уже сегодня "публиковал" свои "игры" с экземплярами
вот ещё раз - все значения ObjPtr(F) и ObjPtr(F.Form)
(в моём букваре - это называется, цитирую - "указатель на объект(адрес объекта в памяти)" - за точность формулировки - отвечать не берусь, но смысл - очевиден)
уникальны
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Dim F As Form_Форма8
Dim F1 As Form_Форма8
Dim F2 As Form_Форма8

Set F = New Form_Форма8
F.Visible = True
Debug.Print "F - " & ObjPtr(F), ObjPtr(F.Form)

Set F1 = New Form_Форма8
F1.Visible = True
Debug.Print "F1 - " & ObjPtr(F1), ObjPtr(F1.Form)

Set F2 = New Form_Форма8
F2.Visible = True
Debug.Print "F2 - " & ObjPtr(F2), ObjPtr(F2.Form)

On Error Resume Next
Debug.Print "Forms(Форма8) - " & ObjPtr(Forms("Форма8")), ObjPtr(Forms("Форма8").Form)
Debug.Print Err.Description
Код: plaintext
1.
2.
3.
4.
F -  2193624      9008272  
F1 -  149515016                 9011688  
F2 -  149522896                 9014476  
Приложению 'Microsoft Office Access' не удается найти форму 'Форма8', указанную в выражении макроса или в программе Visual Basic.
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36915848
адв
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БенедиктСравнение ObjPtr(Me) с ObjPtr(Me.Form) - сравнение тёплого с мягким...Ну вот и тяжёлая артиллерия :)

Спасибо за разъяснения.

зы.
авторОбъект может реализовывать разные интерфейсы, и возвращать ссылки на разные интерфейсы (но при вызове членов этих разных интерфейсов код этих членов будет обращаться к внутренним данным одного объекта). Читал это как тост (или как два тоста:).
Если бы не пример, так бы и не понял, с кем это разговаривают :)
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36916014
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктМораль: сравнивайте ссылки, приведённые к одному типу, причём не к Object.
а точнее - сравнивать можно только IUnknown
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36916158
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adv,

"Тост должен быть короткий, как выстрел" (c) Ну, или как дуплет
Как настоящий тост не всегда обращён к кому-то лично, так и этот "тост" был обращён к аудитории, сравнивающей указатели разных типов.


Изопропил,

по спецификации COM - безусловно, и я хотел включить это в пример. Но пришлось бы либо вызывать IUnknown::QueryInterface() самому (а вызов функции по адресу в VBA удовольствие сильно ниже среднего), либо включать в проект библиотеку типов, содержащую описание IUnknown (что во многом предпочтительнее, учитывая наличие, например, отличной библиотеки OLELIB.TLB ).

Поэтому, IMHO, приведение к (самому) специализированному типу, хоть и ленивый, но достаточно практичный способ для сравнения.
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36916164
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, к чему эти сложности? Есть же оператор Is.
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36916604
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
Бенедикт,

вот сделал аналогично Вашему, пример с формой,
получил такой же результат (кто бы сомневался)) )
vba
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Кнопка0_Click()
  Dim o1 As Object
  Dim o2 As Object
  Dim f1 As Form
  Dim f2 As Form
  Dim fx1 As Form_XXX
  Dim fx2 As Form_XXX
  ' ************
  Debug.Print "Type", "Me", "Me.Form"
  Debug.Print "-----------------------------------"
  ' ************
  Set o1 = Me
  Set o2 = Me.Form
  Debug.Print "Object", ObjPtr(o1), ObjPtr(o2)
  ' ************
  Set f1 = Me
  Set f2 = Me.Form
  Debug.Print "Form", ObjPtr(f1), ObjPtr(f2)
  ' ************
  Set fx1 = Me
  Set fx2 = Me.Form
  Debug.Print "Form_XXX", ObjPtr(fx1), ObjPtr(fx2)
End Sub
Код: plaintext
1.
2.
3.
4.
Type          Me            Me.Form
-----------------------------------
Object          1915144         9124892  
Form            1915144         9124892  
Form_XXX        1915144         1915144  

...но как бы - результат - есть, понимания его - нет

если Вас не затруднит, ответьте ещё на несколько вопросов

что бы пояснить откуда "растут ноги у непонимания"
ещё один небольшой пример
delphi
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
 procedure  TForm1.Button1Click(Sender: TObject);
   var 
    MyObj : TStringList;
    o0    : TObject;
    o1    : TStringList;
    o2    : TStrings;
 begin 
  MyObj := TStringList.Create;
   // TStringList -> TStrings -> TObject 
  o0 := MyObj;
  o1 := MyObj;
  o2 := MyObj;
  Memo1.Lines.Add('--- Значение ---');
  Memo1.Lines.Add(IntToStr(Integer(o0)));
  Memo1.Lines.Add(IntToStr(Integer(o1)));
  Memo1.Lines.Add(IntToStr(Integer(o2)));
  Memo1.Lines.Add(IntToStr(Integer(MyObj)));
  Memo1.Lines.Add('--- Адрес ---');
  Memo1.Lines.Add(IntToStr(Integer(@o0)));
  Memo1.Lines.Add(IntToStr(Integer(@o1)));
  Memo1.Lines.Add(IntToStr(Integer(@o2)));
  Memo1.Lines.Add(IntToStr(Integer(@MyObj)));
 end ;
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
--- Значение ---
 9774056 
 9774056 
 9774056 
 9774056 
--- Адрес ---
 1242656 
 1242652 
 1242648 
 1242660 

вот здесь - мне всё ясно и "прозрачно":
объектная переменная - это ссылка на объект - соответственно, так как объект - один и тот же,
то и значения этих ссылок (Значения) у всех объектных переменных (вне зависимости от типа) - одинаковые
(вот нечто подобное, я ожидал от ObjPtr)
хотя адрес - разный

но я никак не могу проследить аналогии между результатом в delphi и в vba
какой, вообще физический смысл у ObjPtr ? ,
т.е. - что обозначают все эти "цифири"

я ориентировался на то определение ObjPtr, которое уже приводил
ё(в моём букваре - это называется, цитирую - "указатель на объект (адрес объекта в памяти)" - за точность формулировки - отвечать не берусь, но смысл - очевиден)
(вопрос: неправильное определение? как правильно ?)

из чего делал, как мне казалось, вполне логически правильный вывод,
что если результат возвращаемый ObjPtr, для 2-х объектных переменных (в частности - для объектного свойства) - разный,
то и объекты - разные
(вопрос: вывод не правильный ?..ну тут уже понятно - да, неправильный)

Заранее спасибо!
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36917113
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ё,

Про физический смысл у ObjPtr.
ObjPtr() возвращает адрес блока памяти такой структуры:
Код: plaintext
1.
2.
3.
Type IX
   pVtbl As Long 'адрес таблицы виртуальных функций (методов)
   'далее данные экземпляра компонента (объекта COM)
End Type
О размере данных экземпляра, их структуре и значениях мы формально не можем предполагать ничего, это личное дело (деталь реализации) компонента. Поле pVtbl содержит адрес таблицы виртуальных функций такой структуры:
Код: plaintext
1.
2.
3.
4.
5.
6.
Type IX_Vtbl
   'Адреса обязательных виртуальных функций (методов интерфейса IUnknown)
   pQueryInterface As Long 'адрес метода QueryInterface
   pAddRef As Long 'адрес метода AddRef
   pRelease As Long 'адрес метода Release
   'Далее 0 или более адресов других виртуальных функций
End Type
Таблица виртуальных функций может совместно использоваться разными экземплярами компонента (значения pVtbl у разных экземпляров компонентов могут быть равны). Первым параметром виртуальные функции принимают значение ObjPtr() (типизированный указатель, имеющий это значение, при реализации виртуальной функции методом класса в ООЯП известен как this, Self, Me...), чтобы код виртуальной функции мог добраться до данных экземпляра компонента. Вот таков физический смысл значения, возвращаемого ObjPtr(), если мы говорим о компоненте (объекте COM) вообще. Но нам же нужен не сферический коньмпонент в вакууме, а компонент, который что-то умеет делать. "Что-то делать" выражается в том, что компонент реализует некие интерфейсы (интерфейсы COM, COM-интерфейсы), а клиент создаёт экземпляр(-ы) компонента, и взаимодействует с ним(-и), используя эти интерфейсы. На логическом уровне интерфейс является связанной группой (набором) функций. На физическом – структурой в памяти, описанной выше, а именно указателем на таблицу виртуальных функций, плюс сама таблица. Т. е. указатель на интерфейс – это указатель на указатель на таблицу (массив адресов (указателей на)) виртуальных функций. Интерфейс может наследовать другому интерфейсу, в самом простом виде, добавляя свои методы к методам родительского интерфейса (на физическом уровне – добавляя адреса виртуальных функций-методов в таблицу виртуальных функций после адресов методов родительского интерфейса). Корневым интерфейсом для всех COM-интерфейсов является IUnknown, содержащий три метода: QueryInterface, AddRef, Release.

Теперь, быть может не совсем плавно, перейдём к вопросу – как это, результат ObjPtr() разный, а объект (экземпляр компонента) один? Или наоборот, запросили указатели на разные интерфейсы у экземпляра компонента, и получили одинаковые значения этих указателей? Если совсем кратко, такие особенности – детали реализации компонента, и не более, на которые нельзя (формально) закладываться. Теперь подробнее.

Пусть мы пишем компонент, который должен реализовать три интерфейса: IUnknown, IX и IY. IX наследует IUnknown и добавляет свой метод x(), IY наследует IX и добавляет свой метод y(). Таким образом, для IUnknown в таблице виртуальных функций должно быть 3 указателя: на QueryInterface(), AddRef(), Release(); для IX – 4: на QueryInterface(), AddRef(), Release(), x(); для IY – 5: на QueryInterface(), AddRef(), Release(), x(), y(). И тут возникает два соблазна (следовало бы взять в кавычки, так как человек редко кодирует эти вещи вручную, здесь речь скорее о компиляторе) на почве оптимизации. Соблазн первый – объединить таблицы виртуальных функций, т. е. иметь 1 массив из 5 элементов, а не 3 в общей сложности из 12-ти. Но это довольно безобидно, как говорилось, таблица виртуальных функций может использоваться совместно. Соблазн второй – объединить указатели на таблицу виртуальных функций, раз уж сами таблицы объединены. Таким образом, даже для такого простого случая взаимоотношений реализуемых компонентом интерфейсов, имеем два экстремальных варианта (а в компоненте могут быть реализованы и промежуточные, и "боковые"):
1) Для независимых таблиц виртуальных функций область памяти экземпляра может описываться структурой:
Код: plaintext
1.
2.
3.
4.
5.
Type TMyObject
   pVtblIUnknown As Long 'указатель на отдельную таблицу из 3-х адресов
   pVtblIX As Long 'указатель на отдельную таблицу из 4-х адресов
   pVtblIY As Long 'указатель на отдельную таблицу из 5-и адресов
   'другие данные экземпляра
End Type
2) Для полностью оптимизированных таблиц и указателей на них:
Код: plaintext
1.
2.
3.
Type TMyObject
   pVtbl As Long 'указатель на объединённую таблицу из 5-и адресов
   'другие данные экземпляра
End Type
Теперь представим, что клиент запрашивает у экземпляра компонента вернуть указатели на интерфейсы IX и IY. Для первого варианта компонент вернёт указатели, соответственно, со значениями VarPtr(pVtblIX) и VarPtr(pVtblIY) (разные), для второго – VarPtr(pVtbl) (одинаковые).


Честно говоря, не уверен, что ответил на все заданные вопросы, но голова в настоящий момент уже не варит. Лучше задайте ещё раз.
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36919394
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати есть разница между таким:

Me.OrderList.Form.Requery (так обновляется лучше, надёжнее что-ли)

и таким:

Me.OrderList.Requery


Почему так:) ???
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36919803
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NeboКстати есть разница между таким:

Me.OrderList.Form.Requery (так обновляется лучше, надёжнее что-ли)

и таким:

Me.OrderList.Requery
f1The Requery method updates the data underlying a specified form or a control that's on the active form by requerying the source of data for the form .
В примере первый случай - requerying the source of data for the form
второй - or control

Работать должно и так и так, поскольку форма помещена в контрол. (Я пользуюсь первым вариантом ;)

А вот, например, Me.OrderList.Recordset работать не будет, поскольку у контрола, в который помещена подчинённая форма нет рекордсета, есть он только у помещённой формы: Me.OrderList.Form.Recordset. Тоже относится и к обращению к контролам ПФ.
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36920177
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adv,

Спасибо:)
...
Рейтинг: 0 / 0
Объясните разницу между Me.Form.RecordSource и Me.RecordSource
    #36920230
адв
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
о, только сейчас заметил, что недоцитировал ф1ф1The Requery method updates the data underlying a specified form or a control that's on the active form by requerying the source of data for the form or control .
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Объясните разницу между Me.Form.RecordSource и Me.RecordSource
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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