powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / TreeView для MS Office 64 bit
198 сообщений из 198, показаны все 8 страниц
TreeView для MS Office 64 bit
    #38243446
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел ссылку. http://www.jkp-ads.com/articles/treeview.asp Еще не опробовал. Если кто успеет первый, сюда бы хорошо комментарии.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38243453
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В аксесовском демо у меня не работает скроллинг
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38243640
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель,

скроллинг не работал по причине свойства .Height у контрола TreeControl в классе clsTreeView, которое отсутствует в свойствах этого объекта, как "вылечить" пока не разобрался, но линейки прокрутки "починил"
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38243658
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InsideHeight есть у него.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38243778
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-Л,

InsideHeight пробовал , ерунда какая-то получается
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38243809
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
??? Хде ерунда ? При использовании в коде InsideHeight и от клавиатуры скроллирует вверх-вниз в твоем варианте файла атлична!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38243913
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-Л,

в моем то примере скроллирует "атлична", в вот в этом , где всё заменено на InsideHeight, чо то "не пашет", может у тебя по другому будет
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38243993
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное ВСЕМ СПАСИБО!!!

слава Богу нашлось хоть что то внятное по тривью под 64, теперь есть что покопать!!!

у меня акс64 и все работает, демо правда, но уже хорошо!!!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38244050
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ждал, когда Алекс на своих новомоднейших аксесах проверит.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38244088
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

дык, кудыж мне от прогресса то деваться, приходится....

на самом деле мне очень понравилась возможность на тривью показывать структуру и состав в человеческом виде, а на 64 разрядке такой возможности просто не было, теперь хоть надежда появилась...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38244178
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему, я тебе давал код хорошей формы с тривью на голом вба, без моего фреймворка. Если доработаешь напильником, взлетит.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38244191
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

пробовал, на х64 выдавал ошибки, на 2007 по моему все получалось, если нетрудно (извиняй пожалуйста) выдай еще разок или хоть ссылку дай, не сочти за наглость с моей стороны, пожалуйста
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38244205
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этаж искать нада... Дома поищу. Я чего-то специально под твою БД делал.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38244348
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

ЖДУ с нетерпением!!!! заранее огромное спасибо!!!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38246463
~интересно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хм.. а ведь полезная в хозяйстве вещь. спасибо П-Л за ссылку
нужно осваивать и не только из-за проблем с битностью

guest_rusimportвсё заменено на InsideHeight, чо то "не пашет"
значит не всё
там еще и Width того же TreeControl нужно на InsideWidth заменить, тогда все будет гуд
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247373
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня заработало это дерево в адп проекте. Скоро смогу выложить для Алекса пример приложения с формами для ввода структуры изделия не на стандартном тривью, а на этом.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247527
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вниманию Алекса,

Есть приложение с формой структуры изделия на апишном тривью. Можешь загрузить и попробовать запустить в своем операционном окружении. Сейчас сделаю архивы и выложу.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247611
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начинаю выкладывание файлов, думаю, что они будут полезны Алеску и Изерлорнеру.

1. Схема данных в виде картинки ПДФ
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247612
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. Скрит t-sql создающий запросы, используемые в приложении
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247616
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3. Маленький скрипт создания линкованного сервера для демонстрации работы примера дерева на данных MDB
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247617
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4.1 из 5 порезанный архзив адп файла
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247618
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4.2 из 5
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247619
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4.3 из 5
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247620
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4.4 из 5
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247621
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4.5 из 5
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247622
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
5.1 из 2 Бэкап базы данных Ms SQL 2005
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247623
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
5.2 из 2
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247886
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

при нажатии на кнопку "перестроить все" в форме frmIzdelieTreeAPI выдает ошибку 91 "Object variable or With block variable not set"
ссылается на
Код: vbnet
1.
Call Me.RebuildTree

. Что поправить нужно что бы заработало? Пытался перкомпилировать - не помогло.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247890
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сейчас ощибку отловлю. Пока просто походи по разным изделиям - дерево перестраивается ?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247893
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не перестраивается. Буду исправлять.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247896
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

я спать. У нас три ночи.
Христос Воскресе!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247911
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воистину воскресе!

Починил. Для экономии выкладываю только измененный код формы frmIzdelieTreeAPI. Вклеишь весь код формы вместо имеющегося, ошибка исправится. Я неправильно очищал до нуля дерево.


Код: 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.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
Option Compare Database
Option Explicit

' Стандартный микрософсткий тривью
' Private WithEvents TreeView As MSComctlLib.TreeView
' Апишный тривью сделанный через MS Forms
Private WithEvents CustomTreeView As CustomTreeView
' Классы, обеспечивающий связь один-ко-многим для форм,
' замена стандартного микрософского LinkMasterFields, LinkChildFields
Dim lmcElement As LinkMasterChild ' для верхней субформы-карточки Текущий элемент
Dim lmcNode As LinkMasterChild ' для нижней субформы-грида Состав текущего узла

Private Sub Form_Load()

'    Закоментирован код задания данных стандартного микрософтского тривью
'    Set TreeView = Me.ctlTree.Object
'    Me.ctlTree.Visible = True
'    TreeView.Nodes.Clear
'    DoCmd.Save acForm, Me.Name
    
    ' Взвод таймера для выполнения всех действий по загрузке формы
    ' в момент, когда форма уже будет отображена на экране
    Me.TimerInterval = 1
    Me.OnTimer = "[Event Procedure]"

End Sub

Private Sub Form_Close()

' Make sure all objects are destroyed
    If Not CustomTreeView Is Nothing Then
        CustomTreeView.TerminateTree
    End If

End Sub

Private Sub Form_Timer()

    ' Отключение таймера, чтобы код процедуры выполнялся только один раз
    ' при загрузке формы
    Me.TimerInterval = 0
    Me.OnTimer = ""
    
    ' Задание источника данных формы
    ' параметры:
    ' имя вью из которого будет сделан SELECT FROM,
    ' условие для отбора данных WHERE
    ' поля, которые будут использованы в ORDER BY
    Dim sSQL As String: sSQL = modSYS.MakeSelectRecordSource( _
        "dbo.qrElement", "iTypeElementID=3", "sElementCode")
    Me.RecordSource = sSQL
    ' Вставание на нужную запись при открытии формы из других форм
    If Me.OpenArgs <> "" Then
        ApplyParameter (Me.OpenArgs)
    End If
    
End Sub

' Вставание на нужную запись
Public Function ApplyParameter(sParamString As String)

    Dim tv As TaggedValues
    Set tv = New TaggedValues
    tv.Text = sParamString
    If tv.Exists("iElementID") Then
        modForm.FindObjectByID Me, "iElementID", tv.item("iElementID")
    End If

End Function

' На событие текущей записи для текущего изделия надо перерисовать дерево
' и полную таблицу состава изделия
Private Sub Form_Current()

    If Me.RecordSource = "" Then Exit Sub
    If Me.Recordset.EOF Or Me.Recordset.BOF Then Exit Sub
    If Me.NewRecord Then Exit Sub
    
    Call Me.RebuildTree
    Call Me.RebuildFullTable

End Sub

' Принудительная перерисовка дерева при нажатии кнопки
Private Sub btnRebuildTree_Click()

    Call Me.RebuildTree

End Sub

' Принудительная перерисовка полной таблицы при нажатии кнопки
Private Sub btnRebuildFullTable_Click()
    
    Call Me.RebuildFullTable

End Sub

' Полное перестроение дерева структуры изделия от нуля
Public Sub RebuildTree()

    Dim sNodeElementAddress As String
    sNodeElementAddress = "#" & Me.iElementID & "#"
    
    ' Инициализация и задание параметров апишного тривью
    
    If Not CustomTreeView Is Nothing Then
        CustomTreeView.NodesClear
        Set CustomTreeView = Nothing
    End If

    Set CustomTreeView = New CustomTreeView
    With CustomTreeView
        ' Pass frame to the TreeControl of the treeview class
        Set .TreeControl = Me.ctlTree.Object
        ' Title for message boxes:
        .AppName = ""
        ' Set some properties
        .CheckBoxes = False
        .RootButton = True
        .LabelEdit = 0
        .Indentation = 20 * 0.75
        .NodeHeight = 16 * 0.75
        .ShowLines = True
    End With
    
    Dim tv As CustomTreeView
    Dim nodeRoot As CustomTreeNode
    Dim rsRoot As ADODB.Recordset

    Set tv = CustomTreeView

    Dim nCount As Long: nCount = -1
    Dim sSQL As String: sSQL = "SELECT * FROM qrNodeElement WHERE iElementID=" & Me.iElementID
    Dim rs As ADODB.Recordset

    modSQL.OpenRecordset rs, nCount, sSQL
    If rs.EOF And rs.BOF Then
        nCount = -1
        sSQL = "INSERT INTO dbo.NodeElement (iElementID) VALUES (" & Me.iElementID & ")"
        modSQL.ExecuteCommand nCount, sSQL
        nCount = -1
        sSQL = "SELECT * FROM qrNodeElement WHERE iElementID=" & Me.iElementID
        modSQL.OpenRecordset rs, nCount, sSQL
    End If

    ' Add a Root node with main and expanded icons and make it bold
    Set nodeRoot = tv.AddRoot( _
        Key:="ROOT", _
        Text:=Me.sElementCode & " " & Me!sElementName & " (" & Me!iTypeElementID.Column(1) & ")", _
        vImageMain:="FolderClosed", vImageExpanded:="FolderOpen")
    nodeRoot.Bold = True
    nodeRoot.Tag = rs!iNodeElementID
    
    ' Рекурсивный обход дерева и загрузка всех узлов в память, но пока не в кустомный контрол
    Call LoadLevel(tv, nodeRoot, Me!iElementID)
    
    ' Заполнение кустомного контрола элементами по данным загруженного дерева
    tv.PopulateTree
    Me.ctlTree.SetFocus
    ' Активация корневого узла, загрузка в субформы его данных
    CustomTreeView_Click nodeRoot

End Sub

' Рекурсивная процедура загрузки текущего узла
Public Function LoadLevel(tv, nodeParent, iElementID)

    Dim nCount As Long: nCount = -1
    Dim sSQL As String: sSQL = "SELECT * FROM qrNodeElement WHERE iElementID_Parent=" & iElementID
    Dim rs As ADODB.Recordset
    modSQL.OpenRecordset rs, nCount, sSQL
    
    While Not rs.EOF
    
'       Закоментирован код загрузки узла в микрософтский тривью
'       Dim node As node
'       Set node = tv.Nodes.Add( _
'           relative:=nodeParent.Index, relationship:=tvwChild, _
'           Key:="NODE" & CStr(rs!iNodeElementID), _
'           Text:=rs!sElementCode & " " & rs!sElementName & " (" & rs!sTypeElementName & ")")
'       node.Tag = rs!iNodeElementID
'       node.Expanded = True

'       Загрузка узла в кустомный тривью
        Dim node As CustomTreeNode
        ' Add node
        Dim strKey As String, strCaption As String
        strKey = "NODE" & CStr(rs!iNodeElementID)
        strCaption = rs!sElementCode & " " & rs!sElementName & " (" & rs!sTypeElementName & ")"
        Set node = nodeParent.AddChild(Key:=strKey, Text:=strCaption)
        node.Tag = rs!iNodeElementID
        ' Рекурсивный вызов самой себя для загрузки детей текущего узла
        Call LoadLevel(tv, node, rs!iElementID)
        ' Переход к следующему соседнему узлу на том же уровне
        rs.MoveNext
    Wend
    
End Function

'    Закоментирован код обработки нажатия узла стандартного микрософтского тривью
'    Private Sub TreeView_NodeClick(ByVal n As MSComctlLib.node)
'
'        Me.iNodeElementID = n.Tag
'        Me.iElementID_Link = DLookup("iElementID", "qrNodeElement", "iNodeElementID=" & Me.iNodeElementID)
'        Dim vTypeElementID: vTypeElementID = DLookup("iTypeElementID", "qrElement", "iElementID=" & Me.iElementID_Link)
'
'        Me.lblElement.Caption = "Текущий элемент [" & n.Text & "]"
'        If Me.frmElement.SourceObject = "" Then
'            Me.frmElement.SourceObject = "frmElement"
'        End If
'        If lmcElement Is Nothing Then
'            Set lmcElement = New LinkMasterChild
'            lmcElement.SetMasterChildParameters _
'                Me, Me.frmElement.Form, _
'                "iElementID_Link", "iElementID", _
'                "SELECT * FROM dbo.qrElement", True
'        Else
'            lmcElement.RequeryChild
'        End If
'
'        Me.lblNodeElement.Caption = "Состав текущего узла [" & n.Text & "]"
'        Select Case vTypeElementID
'        Case 1
'            Me.grNodeElement.SourceObject = ""
'            Set lmcNode = Nothing
'        Case 2, 3:
'            If Me.grNodeElement.SourceObject = "" Then
'                Me.grNodeElement.SourceObject = "grNodeElement"
'                With Me.grNodeElement.Form
'                    Dim ctl As Control
'                    For Each ctl In .Controls
'                        On Error Resume Next
'                        Select Case ctl.Tag
'                        Case "NODE":                    ctl.ColumnHidden = False
'                        Case "ELEMENT":                 ctl.ColumnHidden = False
'                        Case "TYPE_ELEMENT":            ctl.ColumnHidden = True
'                        Case "ELEMENT_PARENT":          ctl.ColumnHidden = True
'                        Case "ELEMENT_PARENT_HIDDEN":   ctl.ColumnHidden = True
'                        Case "TYPE_ELEMENT_PARENT":     ctl.ColumnHidden = True
'                        End Select
'                    Next ctl
'                End With
'            End If
'            If lmcNode Is Nothing Then
'                Set lmcNode = New LinkMasterChild
'                lmcNode.SetMasterChildParameters _
'                    Me, Me.grNodeElement.Form, _
'                    "iElementID_Link", "iElementID_Parent", _
'                    "SELECT * FROM dbo.qrNodeElement", True
'            Else
'                lmcNode.RequeryChild
'            End If
'        End Select
'
'    End Sub

' Обработка нажатия узла кустомного тривью
' Загрузка в субформы данных текущего узла
Private Sub CustomTreeView_Click(n As CustomTreeNode)
    
        Me.iNodeElementID = n.Tag
        Me.iElementID_Link = DLookup("iElementID", "qrNodeElement", "iNodeElementID=" & Me.iNodeElementID)
        Dim vTypeElementID: vTypeElementID = DLookup("iTypeElementID", "qrElement", "iElementID=" & Me.iElementID_Link)

        Me.lblElement.Caption = "Текущий элемент [" & n.Text & "]"
        If Me.frmElement.SourceObject = "" Then
            Me.frmElement.SourceObject = "frmElement"
        End If
        If lmcElement Is Nothing Then
            Set lmcElement = New LinkMasterChild
            lmcElement.SetMasterChildParameters _
                Me, Me.frmElement.Form, _
                "iElementID_Link", "iElementID", _
                "SELECT * FROM dbo.qrElement", True
        Else
            lmcElement.RequeryChild
        End If

        Me.lblNodeElement.Caption = "Состав текущего узла [" & n.Text & "]"
        Select Case vTypeElementID
        Case 1
            Me.grNodeElement.SourceObject = ""
            Set lmcNode = Nothing
        Case 2, 3:
            If Me.grNodeElement.SourceObject = "" Then
                Me.grNodeElement.SourceObject = "grNodeElement"
                With Me.grNodeElement.Form
                    Dim ctl As Control
                    For Each ctl In .Controls
                        On Error Resume Next
                        Select Case ctl.Tag
                        Case "NODE":                    ctl.ColumnHidden = False
                        Case "ELEMENT":                 ctl.ColumnHidden = False
                        Case "TYPE_ELEMENT":            ctl.ColumnHidden = True
                        Case "ELEMENT_PARENT":          ctl.ColumnHidden = True
                        Case "ELEMENT_PARENT_HIDDEN":   ctl.ColumnHidden = True
                        Case "TYPE_ELEMENT_PARENT":     ctl.ColumnHidden = True
                        End Select
                    Next ctl
                End With
            End If
            If lmcNode Is Nothing Then
                Set lmcNode = New LinkMasterChild
                lmcNode.SetMasterChildParameters _
                    Me, Me.grNodeElement.Form, _
                    "iElementID_Link", "iElementID_Parent", _
                    "SELECT * FROM dbo.qrNodeElement", True
            Else
                lmcNode.RequeryChild
            End If
        End Select

End Sub

Public Sub RebuildFullTable()

    '
    '    Этот код перестал быть нужен после перезода на АДП
    '    и создания запроса qrNodeElement2, выполняющего рекурсивный обход
    '    всего дереваи вычисялющего поле полного адреса sNodeElementAddress
    '
    
    '    Dim sNodeElementAddress As String
    '    sNodeElementAddress = "#" & Me.iElementID & "#"
    
    '    Dim cnn As ADODB.Connection, rs As ADODB.Recordset
    '    Set cnn = CurrentProject.Connection
    '    Set rs = New ADODB.Recordset
    '    rs.CursorLocation = adUseClient: rs.CursorType = adOpenStatic: rs.LockType = adLockBatchOptimistic
    '    rs.Open "SELECT * FROM dbo.qrNodeElement WHERE iElementID=" & Me.iElementID, cnn
    '    If rs.EOF And rs.BOF Then
    '        rs.AddNew
    '        rs!iElementID = Me.iElementID
    '        rs.Update
    '    End If
    '    rs.Close: Set rs = Nothing
    
    '    Set rs = New ADODB.Recordset
    '    rs.CursorLocation = adUseClient: rs.CursorType = adOpenStatic: rs.LockType = adLockBatchOptimistic
    '    rs.Open "SELECT * FROM dbo.qrNodeElement WHERE iElementID=" & Me.iElementID, cnn
    '    While Not rs.EOF
    '        CurrentProject.Connection.Execute _
    '            "UPDATE dbo.NodeElement " & _
    '            "SET sNodeElementAddress='" & sNodeElementAddress & "' " & _
    '            "WHERE iNodeElementID=" & rs!iNodeElementID
    '        Call MakeLevelAddress(rs!iElementID, sNodeElementAddress)
    '        rs.MoveNext
    '    Wend
    '    rs.Close: Set rs = Nothing
    
    Me.lblFullTable.Caption = "Полный состав всего изделия [" & Me!sElementName & "]"
    Me.grFullTable.SourceObject = "grNodeElement"
    With Me.grFullTable.Form
        ' Управление видимостью столбцов, скрытие части из них
        ' чтобы на экран не выводились внутренние коды, айдишники,
        ' необходимые для набора данных, но не нужные для отображения
        Dim ctl As Control
        For Each ctl In .Controls
            On Error Resume Next
            Select Case ctl.Tag
            Case "NODE":                    ctl.ColumnHidden = False
            Case "ELEMENT":                 ctl.ColumnHidden = False
            Case "TYPE_ELEMENT":            ctl.ColumnHidden = True
            Case "ELEMENT_PARENT":          ctl.ColumnHidden = False
            Case "ELEMENT_PARENT_HIDDEN":   ctl.ColumnHidden = True
            Case "TYPE_ELEMENT_PARENT":     ctl.ColumnHidden = True
            End Select
        Next ctl
    End With
    ' Задание источника данных структуры Полного состава
    Me.grFullTable.Form.RecordSource = _
        "SELECT * FROM dbo.qrNodeElement2 " & _
        "WHERE iElementID_Root=" & Me.iElementID & " " & _
        "ORDER BY iElementID_Root, iNodeElementID"
    Me.grFullTable.Form.UniqueTable = "NodeElement"

End Sub

'    Необходимость в пересчете адреса отпала после перехода на адп и использования рекурсивного запроса
'    Public Function MakeLevelAddress(iElementID, sNodeElementAddress)
'
'        Dim cnn As ADODB.Connection
'        Set cnn = CurrentProject.Connection
'        Dim rs As ADODB.Recordset
'        Set rs = New ADODB.Recordset
'        rs.CursorLocation = adUseClient: rs.CursorType = adOpenStatic: rs.LockType = adLockBatchOptimistic
'        rs.Open "SELECT * FROM qrNodeElement WHERE iElementID_Parent=" & iElementID, cnn
'
'        While Not rs.EOF
'            CurrentProject.Connection.Execute _
'                "UPDATE dbo.NodeElement " & _
'                "SET sNodeElementAddress='" & sNodeElementAddress & rs!iElementID & "#' " & _
'                "WHERE iNodeElementID=" & rs!iNodeElementID
'            Call MakeLevelAddress(rs!iElementID, sNodeElementAddress & rs!iElementID & "#")
'            rs.MoveNext
'        Wend
'
'    End Function

' Кнопка Открыть карточку элемента
' В зависимости от того, какого типа элемент в субформе Состав текущего узла
' открывается одна из трех форм - карточка изделия, сборки или детали
Private Sub btnOpenElementCard_Click()

    On Error Resume Next
    Me.grNodeElement.SetFocus
    DoCmd.RunCommand acCmdSelectRecord
    On Error GoTo 0
    
    If Me.grNodeElement.SourceObject <> "" Then
        Dim vElementID, vTypeElementID
        modForm.GetObjectID Me.grNodeElement.Form, "iElementID", vElementID
        modForm.GetObjectID Me.grNodeElement.Form, "iTypeElementID", vTypeElementID
        If vTypeElementID > 0 And vElementID > 0 Then
            Dim sParamter As String
            sParamter = "iElementID=" & vElementID
            Dim sFormName As String, frm As Form
            Select Case vTypeElementID
            Case 1: sFormName = "frmDetal"
            Case 2: sFormName = "frmSborka"
            Case 3: sFormName = "frmIzdelie"
            End Select
            If modUtil.IsLoaded(sFormName) Then
                ' Если форма уже открыта, то ее надо поставить на нужную запись
                Set frm = Forms(sFormName)
                frm.ApplyParameter "iElementID=" & vElementID
                frm.SetFocus
            Else
                ' Если форма еще не открыта, то надо передать ей айди,
                ' на который она должна встать в качестве аргумента
                DoCmd.OpenForm _
                    sFormName, acNormal, , , acFormEdit, acWindowNormal, _
                    "iElementID=" & vElementID
                Set frm = Forms(sFormName)
                frm.SetFocus
            End If
        End If
    End If

End Sub

' Нажатие кнопки Добавить новый элемент
' При этом выполняется два действия
' 1. Создание нового элемента в таблице элементов
' 2. Вставка этого элемента в текущий узел изделия
Private Sub btnAddElement_Click()

    If Me.grNodeElement.SourceObject <> "" Then
        DoCmd.OpenForm "dlgAddElement", acNormal, , , acFormEdit, acDialog
        Dim dlg As Form_dlgAddElement
        Set dlg = Forms!dlgAddElement
        If dlg.bOK Then
        
            ' 1. Добавление нового элемента в таблицу элементов
            Dim vTypeElementID, vElementCode, vElementName, vElementNote, _
                vElementWeight, vElementCoverage, vElementElectricLight
                vTypeElementID = dlg.iTypeElementID
                vElementCode = dlg.sElementCode
                vElementName = dlg.sElementName
                vElementNote = dlg.sElementNote
                vElementWeight = dlg.dbElementWeight
                vElementCoverage = dlg.dbElementCoverage
                vElementElectricLight = dlg.sElementElectricLight
            ' Специальный вставлятор данных в таблицу
            Dim insertElement As InsertSQL
            Set insertElement = New InsertSQL
            insertElement.Constructor sTableName:="Element", sTableOfDecription:="элементов"
            insertElement.AddFieldValue "iTypeElementID", vTypeElementID
            insertElement.AddFieldValue "sElementCode", vElementCode
            insertElement.AddFieldValue "sElementName", vElementName
            insertElement.AddFieldValue "sElementNote", vElementNote
            Select Case vTypeElementID
            Case 1
                insertElement.AddFieldValue "dbElementWeight", vElementWeight
                insertElement.AddFieldValue "dbElementCoverage", vElementCoverage
                insertElement.AddFieldValue "sElementElectricLight", vElementElectricLight
            Case 2
            Case 3
            End Select
            ' Выполнение оператора вставки и получение айди - ПК автосчетчика свежевставленной записи
            Dim vNodeID: vNodeID = insertElement.Execute
            
            ' Еще один вставлятор данных, теперь в таблицу структуры изделия
            ' текущий узел, в который будет добавлен элемент, хранится в поле формы Me!iElementID_Link
            Set insertElement = New InsertSQL
            insertElement.Constructor sTableName:="NodeElement", sTableOfDecription:="состав"
            insertElement.AddFieldValue "iElementID", vNodeID
            insertElement.AddFieldValue "iElementID_Parent", Me!iElementID_Link
            insertElement.AddFieldValue "nNodeElementCount", 1
            Dim vNodeElementID: vNodeElementID = insertElement.Execute
        
            Dim tv As CustomTreeView: Set tv = CustomTreeView
            Dim nodeParent As CustomTreeNode: Set nodeParent = tv.ActiveNode
            Dim node As CustomTreeNode
            Set node = nodeParent.AddChild(Key:="NODE" & CStr(vNodeElementID), Text:=CStr(vElementName))
            
            ' Закоментирован код вставки в стандартный микрософтский тривью
            '    Set node = tv.Nodes.Add( _
            '        relative:=nodeParent.Index, relationship:=tvwChild, _
            '        Key:="NODE" & CStr(vNodeElementID), Text:=vElementName)
            
            node.Tag = vNodeElementID
            '   TreeView_NodeClick nodeParent
            
            ' После вставки надо обновить субформу Состав текущего узла,
            ' чтобы в нем отобразился новый элемент
            Me.grNodeElement.Requery
            ' Позиционируем субформу на новый элемент
            Me.grNodeElement.Form.Recordset.Find "iNodeElementID=" & vNodeElementID
            Me.grNodeElement.Form!iElementID.Requery
        End If
        DoCmd.Close acForm, "dlgAddElement", acSaveNo
    End If
    
End Sub

' ВСЕ ФОРМЫ ДОЛЖНЫ БЫТЬ РЕЗИНОВЫМИ
Private Sub Form_Resize()
Me.Painting = False

    ' Верхняя часть формы до табстрипа резинится без проблем
    Dim h, w
    w = (Me.InsideWidth - 100 _
    - Me.lblElementID.Width - 100 _
    - Me.lblTypeElementID.Width - 100 _
    - Me.lblElementCode.Width - 100 _
    - Me.lblElementName.Width - 100) * 0.125
    If w < 300 Then w = 300
    
    With Me.lblElementID
        .Top = 200
        .Left = 100
    End With
    With Me.iElementID
        .Top = Me.lblElementID.Top
        .Left = Me.lblElementID.Left + Me.lblElementID.Width
        .Width = w
    End With
    With Me.lblTypeElementID
        .Top = Me.iElementID.Top
        .Left = Me.iElementID.Left + Me.iElementID.Width + 100
    End With
    With Me.iTypeElementID
        .Top = Me.lblTypeElementID.Top
        .Left = Me.lblTypeElementID.Left + Me.lblTypeElementID.Width
        .Width = w
    End With
    With Me.lblElementCode
        .Top = Me.iTypeElementID.Top
        .Left = Me.iTypeElementID.Left + Me.iTypeElementID.Width + 100
    End With
    With Me.sElementCode
        .Top = Me.lblElementCode.Top
        .Left = Me.lblElementCode.Left + Me.lblElementCode.Width
        .Width = w
    End With
    With Me.lblElementName
        .Top = Me.sElementCode.Top
        .Left = Me.sElementCode.Left + Me.sElementCode.Width + 100
    End With
    With Me.sElementName
        .Top = Me.lblElementName.Top
        .Left = Me.lblElementName.Left + Me.lblElementName.Width
        .Width = 5 * w
    End With
    
    ' Чтобы отрезинить табстрип сначала надо согнать все контролы, расположенные на нем
    ' в его правый верхний угол. Правила определения контролов на табстрипе:
    ' 1. У всех контролов табстрипа должно быть в таге 'tab'
    ' 2. Контролы, которые растягиваются по вертикали в пределах табстрипа, должны имтеть в таге 'height'
    ' 3. Контролы, которые растягиваются по горизонтали в пределах табстрипа, должны имтеть в таге 'width'
    ' отдельный ключевые коды разделяются точкой с запятой: 'tab;height;width'
    Dim t, l
    t = Me.lblElementID.Top + Me.lblElementID.Height + 200
    l = Me.lblElementID.Left
    modForm.SqueezeControls Me, t + 600, l + 300
    
    ' Позиционирование на форме табстрипа
    With Me.tabStrip
        .Height = 0
        .Width = 0
        .Top = t
        .Left = l
        h = Me.InsideHeight - .Top - 100
        If h < 1000 Then h = 1000
        w = Me.InsideWidth - .Left - 100
        If w < 1000 Then w = 1000
        .Height = h
        .Width = w
    End With

    ' Позиционирование на форме контролов в пределах табстрипа
    
    ' Вкладка Структура изделия tabTree
    Dim hh, ww
    hh = Me.tabTree.Height / 3
    ww = Me.tabTree.Width / 3
    If ww < 1000 Then ww = 1000
    If hh < 1000 Then hh = 1000
    
    With Me.lblTree
        .Top = Me.tabTree.Top + 100
        .Left = Me.tabTree.Left
    End With
    With Me.ctlTree
        .Top = Me.lblTree.Top + Me.lblTree.Height + 100
        .Left = Me.lblTree.Left
        Dim hhh
        hhh = Me.tabTree.Top + Me.tabTree.Height - .Top
        If hhh < 0 Then hhh = 0
        .Height = hhh
        .Width = ww
    End With
    With Me.btnRebuildTree
        .Top = Me.lblTree.Top - (.Height - Me.lblTree.Height)
        l = Me.ctlTree.Left + Me.ctlTree.Width - .Width
        If l < Me.ctlTree.Left Then l = Me.ctlTree.Left
        .Left = l
    End With
    
    With Me.lblElement
        .Width = 0
        .Top = Me.lblTree.Top
        .Left = Me.ctlTree.Left + Me.ctlTree.Width + 100
        Dim www
        www = Me.tabTree.Left + Me.tabTree.Width - .Left
        If www < 1000 Then www = 1000
        .Width = www
    End With
    With Me.frmElement
        .Width = 0
        .Top = Me.lblElement.Top + Me.lblElement.Height + 100
        .Left = Me.lblElement.Left
        .Height = hh
        ww = Me.tabTree.Left + Me.tabTree.Width - .Left
        If ww < 1000 Then ww = 1000
        .Width = ww
    End With
    ' Примечание: очень полезный эффект аксеса
    ' При задании размера субформы frmElement, являющейса карточкой,
    ' в ней тоже тоже будет вызываться код ресайзинга
    ' и она расположит свои контролы так,
    ' чтобы красиво заполнять всю предоставленную ей площадь
    
    With Me.lblNodeElement
        .Width = 0
        .Top = Me.frmElement.Top + Me.frmElement.Height + 200
        .Left = Me.frmElement.Left
        Dim www2
        www2 = www - 100 - Me.btnOpenElementCard.Width - 50 - Me.lblOpenElementCard.Width - 100 - Me.btnAddElement.Width - 50 - Me.lblAddElement.Width
        If www2 < 1000 Then www2 = 1000
        .Width = www2
    End With
    With Me.btnOpenElementCard
        .Top = Me.lblNodeElement.Top - (.Height - Me.lblNodeElement.Height) / 2 - 30
        .Left = Me.lblNodeElement.Left + Me.lblNodeElement.Width + 100
    End With
    With Me.lblOpenElementCard
        .Top = Me.btnOpenElementCard.Top
        .Left = Me.btnOpenElementCard.Left + Me.btnOpenElementCard.Width + 50
    End With
    With Me.btnAddElement
        .Top = Me.lblOpenElementCard.Top
        .Left = Me.lblOpenElementCard.Left + Me.lblOpenElementCard.Width + 100
    End With
    With Me.lblAddElement
        .Top = Me.btnAddElement.Top
        .Left = Me.btnAddElement.Left + Me.btnAddElement.Width + 50
    End With
    With Me.grNodeElement
        .Width = 0
        .Top = Me.lblNodeElement.Top + Me.lblNodeElement.Height + 100
        .Left = Me.lblNodeElement.Left
        hh = Me.tabTree.Top + Me.tabTree.Height - .Top
        If hh < 1000 Then hh = 1000
        .Height = hh
        .Width = www
    End With
    
    ' Вкладка Полный состав в виде единой таблицы tabFullTable
    ww = Me.tabFullTable.Width
    If ww < 1000 Then w = 1000
    With Me.lblFullTable
        .Top = Me.tabFullTable.Top + 100
        .Left = Me.tabFullTable.Left
    End With
    With Me.grFullTable
        .Top = Me.lblFullTable.Top + Me.lblFullTable.Height + 100
        .Left = Me.lblFullTable.Left
        hhh = Me.tabFullTable.Top + Me.tabFullTable.Height - .Top
        If hhh < 0 Then hhh = 0
        .Height = hhh
        .Width = ww
    End With
    With Me.btnRebuildFullTable
        .Top = Me.lblFullTable.Top - (.Height - Me.lblFullTable.Height)
        l = Me.grFullTable.Left + Me.grFullTable.Width - .Width
        If l < Me.grFullTable.Left Then l = Me.grFullTable.Left
        .Left = l
    End With
        
    ' Вкладка Примечание
    With Me.lblElementNote
        .Top = Me.tabNote.Top
        .Left = Me.tabNote.Left
    End With
    With Me.sElementNote
        .Top = Me.lblElementNote.Top + Me.lblElementNote.Height + 100
        .Left = Me.lblElementNote.Left
        hhh = Me.tabNote.Top + Me.tabNote.Height - .Top
        If hhh < 0 Then hhh = 0
        .Height = hhh
        .Width = Me.tabNote.Width
    End With
        
Me.Painting = True
End Sub

...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38247922
СхБд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-ЛюбительИзвините, спойлер не туда вставил... поф
спасибищще!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248483
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!!

еще раз ОГРОМНОЕ спасибо за помощь и подсказки!!!

Сейчас скачаю и посмотрим...

кстати первая ссылка на скачивание не работает ( [14257650] ), там где " К сообщению приложен файл (Схема данных Детали, Сборки, Изделия.pdf - 69Kb) cкачать "

пишет :
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248486
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только что скачал без проблем. Дело в твоем броузере. Насколько понимаю, у Изерлонера тоже скачалось.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248490
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

работаю с роутера фрештел, никаких проблем ни разу не было, все скачалось, только вот указанное не могу скачать, выставь пожалуйста еще раз...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248494
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не смогу. Может кто из завсегдатаев не поленится скачать и приложить заново ?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248506
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

что то я совсем подзабыл, не получается развернуть бэкап скл сервера...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248507
////
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248508
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, добрый человек!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248511
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
////,

Да что ж за день то сегодня такой.....

не получается скачать, сообщение такое же...

может на почту бросишь.... не сочти за труд..... СПАСИБО!!!!

Alex999kon@mail.ru
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248512
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex999konП-Л,

что то я совсем подзабыл, не получается развернуть бэкап скл сервера...
Читай бол. Галку не поставил Перезаписать текущее содержмимое той базы что уже есть у тебя сейчас на сервере.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248515
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

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

все получилось, пробую, а скачать пдф так и не получилось, ни через роутер ни через прокси, странно что все остальное качать дает...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248516
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Развернешь базу - в ней будет диаграмма данных, которая в ПДф, так что он как таковой тебе и не нужен.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248521
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

чето не догадался, спасибо, кстати пробую открывать формы выдает сообщения об ошибках..
сейчас работаю под вин 7-32 с скл 2008 р2, вот скрин...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248526
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы все будете смеяться но из под YANDEXA такое же сообщение...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248531
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот EXPLORER скачал, и даже показал...

ну да ладно, отвлекаемся...

насчет ошибок открытия форм-
думается мне что нужно перекомпилировать только вот не знаю как это по-правильнее что-ли, подскажите... плиз...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248535
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо проверить в вба все ссылки. Все ссылки стандартные для а2003. Решить проблему, если есть миссинг. Проверить, компилируется ли проект.

Покажи принтскрин окна ссылок.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248540
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

пока пробовал вот что получил:
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248541
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex999kon,

насчет окна ссылок, имеется ввиду наверное в отладчике tools - reference? если я правильно понял...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248542
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты не показал окно ссылок.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248544
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,
чуть ранее об этом и справшивал
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248546
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex999konнасчет окна ссылок, имеется ввиду наверное в отладчике tools - reference? если я правильно понял...
Да.
Для фотографирования окон завели себе програмку, чтобы снимать только нужное. Я пользуюсь доисторическим стандартныс микрософтским HTML Help Image Editor. Скачивается и работает без вопросов.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248550
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,
прости, но я несколько не понял, скрин то не все равно в чем, делаю Ctrl-Alt-PrintScreen, потом в paint и вырезаю что хочу показать, дело еще в том что работаю на двух мониторах, приходится брать нужное, на одном экране акс на другом скл, удобно...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248553
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для наглядности:
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248554
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот я ИМЕННО об этом. В той программе, что я предложил, можно выбрать одно конкретное окно или даже часть окна. Вырезать в ней очень удобно, можно до пикселя, но этот чаще всего просто не нужно.

Скачай, поставь, пользуйся.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248556
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

спасибо, попробуем...

насчет нашей темы - что-то никак не получается ничего, что-то я совсем обмяг...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248560
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скачал, если не сразу получится не гневись сильно то....
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248565
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думается предложить ПЛ подлючиться ко мне по TeamViewer, попробовать, может что-то у меня в корне что-то не так... кк считаешь
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248618
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Лalex999konП-Л,

что то я совсем подзабыл, не получается развернуть бэкап скл сервера...
Читай бол. Галку не поставил Перезаписать текущее содержмимое той базы что уже есть у тебя сейчас на сервере.
А что и так можно? А я предварительно сношу базу, прежде чем восстановить ее из бэкапа.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248630
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex999konдумается предложить ПЛ подлючиться ко мне по TeamViewer, попробовать, может что-то у меня в корне что-то не так... кк считаешь
Алекс, у меня многие вещи решаются тупо настойчивостью. Определил область поиска. Тыкнул сначала так, потом иначе, потом еще по другому. Тупо, но действенно. Если долго не получается, анализирую чего делал, а может область определил не верно. Вношу коррективы и по новой.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248663
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь за задержку, тут поздравлялок с ДР много накопилось, отвлекли....

выдаю ссылки (если правильно понял), вроде как все на месте....
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248666
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Снимай галку с миссинг коммонконтролз.

За что боролись-то ? И старуу форму изделия со стандартным тривью не открывай.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248668
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаю..
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248673
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаю сжать восстановить, запускаю форму frmTreeViewAPI в ответ:
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248676
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пытаюсь найти плохие места через Debug - Compile выдает
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248691
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Убей форму на стандартном тривью или закоментируй весь ее код.

2.
В загрузке был скрипт создания линкед сервера.
В топике выше был исходный пример кустомного тривью в аксесе.
Скрипт создает линкед сервер, использующий данные этого мдб. Тебе нужно выполнить его без ошибок, со всеми правильными каталогами и именами файлов как у тебя будут расположены эти файлы.
Линкед сервер нужен для демоформы, максимально близкой к исходному примеру тривью, но на платформе адп.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248693
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

понял, пробую, по результату отпишусь
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248703
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex999konтут поздравлялок с ДР много накопилось, отвлекли....

Я смотрю у нас не только области деятельности схожи. Поздравляю!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248765
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изерлонер,

да есть похожести немного...

только это не меня поздравляли а сотрудников, положено присутствовать.... (если Вас правильно понял)
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248901
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мало что могу прокомментировать но вот что получилось:
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248915
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

вроде бы как то получилось...

только вот вопрос: почему в Добавление новой детали или сборки надо вручную прописывать код элемента, это так задумано или автосчетчик не получилось, объясни плиз.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248933
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Патамучта у тебя код - номенклатурный код, задаваемый по твоим сложным правилам. Айди (ПК) прекрасно задается сам в момент вставки записи. ПК автосчетчики выделены ярко-зеленым фоном.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248974
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,
ну теперь понятно, просто с самого начала заложилось название "Код Элемента" а как бы надо "Обозначение Элемента"

ну не знаю как получше внести ясность - любой предмет деятельности на производстве (деталь, сборка, узел, агрегат, изделие) имеет два неприложных элемента - Обозначение и Наименование, причем Обозначение всегда Уникальное в рамках принадлежности к типу (деталь, сборка, узел, агрегат, изделие), опять же не знаю смог ли объяснить...

спасибо, на связи...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38248979
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавлю как уточнение - неприложных элемента атрибута - Обозначение и Наименование

так наверное правильнее будет...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38249018
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, на последнем снимке картинка плохая. При выборе узла в дереве слва на панелях справа вверху должны быть данные этого узла, справа внизу - узлы, непосредственно в него входящие. ДОЛЖНО работать так. Если так не работает - плохо.

Код формы, который в спойлере, вставил в форму ? В загрузке код формы с ошибками, после замечания Изерлорнера я исправлял, но выладывал только вба код формы изделия.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38249287
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Лно выладывал только вба код формы изделия.
Вставлять частями. При попытке выделить весь код и заменить его на корректный - акс вылетает. Я вставлял попроцедурно.
видимо возникает конфликт при замене = удаление , вставка. Акс при удалении пытается привязать ссылки к отсутствующему коду. Наверное так.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38249599
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изерлонер, могу посоветовать как уменьшить вероятность вылетания акса 2003-2007/10 и застраховаться от последствий любых крахов клиента.

Ставишь доисторическую студию VB6, чтоб в комплекте был такой же древний VSS.
Ставишь сервис пак 3 для VSS.
Ставишь специяльный активикс для работы аксеса с VSS.
Настраиваешь в аксесе формат по умолчанию 2003.
Загоняешь свой адп в хранилище саурссейфа.
Все. Теперь для редактирования будешь брать из хранилища форму, модуль, класс, как только очередная порция разработки получилось - возвращаешь. То что вернутое в хранидище - не портиться. В любой момент из хранилища можно получить полный проект. Максимум что можно потерять - взятые и не вернутые объекты.

Хранилище VSS лучше устроить на отдельном диске.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250337
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установил скл 2012 под вин 2012, акс 2010 х64...

восстановил бэкап как есть в скл 2012, взял ранее созданный в акс2007 (тривью начало работать, скрин давал ранее) и ... сходу ошибки... на скрине запуск программы, автозапуск формы frmIzdelieTreeAPI..

причем приразворачивании бэкапа никаких плохих сообщений не было...

не знаю как быть...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250339
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и сразу чтоб потом не дожидаться указаний
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250353
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
несколько подзабыл, поэтому делал и так, результат тот же
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250355
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250362
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какое отношение бэкап серверной части может иметь к клиентскому 64 битному коду вба ? Debug / Compile дает какие-нибудь сообщения ?

ВБАшный код тебе придется копать самому - у меня в планах нет установки чего-нибудь 64 битного.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250369
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Debug / Compile - скрин
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250370
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять же если при восстановлении базы из бэкапа нет сообщений об ошибке то я считаю что все нормально
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250379
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
алекс, ты же, не далее как вчера "разорялся" про отличия ВБА6 и ВБА7,
так что, должен был бы знать причину ... :))

http://msdn.microsoft.com/ru-ru/library/office/ee691831(v=office.14).aspx#odc_office2010_Compatibility32bit64bit_IntroducingVBA7CodeBase Предполагается, что операторы Declare без атрибута PtrSafe не совместимы с 64-разрядной версией Office 2010.
...
В следующем примере показано, как использовать эти элементы в операторе Declare.
Код: vbnet
1.
Declare PtrSafe Function RegOpenKeyA Lib "advapi32.dll" (ByVal Key As LongPtr, ByVal SubKey As String, NewKey As LongPtr) As Long
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250392
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насчет разницы 6 и 7 вба - это я упомянул ответ в мой адрес в одной из тем...

более конкретно пока не готов что ли бо объяснять, недостаточно изучил...

насчет моего вывода о ьезошибочном восстановлении бэкапа, посмотри пожалуйста так ли например представление восстановилось в 2012 скл...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250399
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я никогда не смотрю запросы в конструкторе. Лучше бы ты диаграмму данных открыл.

Меняй описания в ВБА коде. Конкретный хелп тебе показали.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250403
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как раз в это время менял (добавлял для совместимости ) в Declare Function на Declare PtrSafe Function, debug-compile перестал но выдал :
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250406
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по памяти структура в диаграмме вроде бы такая же как и акс2007 и скл 2008:
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250432
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex999konкак раз в это время менял (добавлял для совместимости ) в Declare Function на Declare PtrSafe Function, debug-compile перестал но выдал :
а какой тип у переменной nRecords ?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250444
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чем могу:

Public Function OpenRecordset _
( _
rs As ADODB.Recordset, _
nRecords As Long, _
sSQL As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)

взял через копию прямо из отладчика в аксе
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250457
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex999konчем могу:

Public Function OpenRecordset _
( _
rs As ADODB.Recordset, _
nRecords As Long, _
sSQL As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)

взял через копию прямо из отладчика в аксе
там (по ссылке) как-то "мутно" описанно, но вроде как, в 64б, нужно использовать LongLong (?)
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250463
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял насчет мутно, это текст а не принтскрин,

даю поный текс :

---------------

Option Compare Database
Option Explicit

' CurrentProject.BaseConnectionString
' PROVIDER=SQLOLEDB.1;
' INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=FALSE;
' DATA SOURCE=***;INITIAL CATALOG=***

' CurrentProject.Connection.ConnectionString
' Provider=Microsoft.Access.OLEDB.10.0;Data Provider=SQLOLEDB.1;
' Persist Security Info=False;Integrated Security=SSPI;
' Data Source=***;Initial Catalog=***;

Public Function ConnectionInfo _
( _
sServerName As String, _
sDatabaseName As String _
)
Dim tv As New TaggedValues
sServerName = ""
sDatabaseName = ""
ConnectionInfo = True
tv.Text = Access.CurrentProject.BaseConnectionString
If tv.Exists("DATA SOURCE") Then
sServerName = tv.item("DATA SOURCE")
Else
ConnectionInfo = False
End If
If tv.Exists("INITIAL CATALOG") Then
sDatabaseName = tv.item("INITIAL CATALOG")
Else
ConnectionInfo = False
End If

End Function

Public Function OpenConnection _
( _
cnn As ADODB.Connection, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)
On Error Resume Next: Err.Clear

Dim iTryCount As Integer: iTryCount = 0
OpenConnection = False
If cnn Is Nothing Then Set cnn = New ADODB.Connection
If cnn.State = adStateOpen Then cnn.Close
If sServerName = "" Or sDatabaseName = "" Then
Call modSQL.ConnectionInfo(sServerName, sDatabaseName)
End If
On Error GoTo Err_Connect
cnn.CommandTimeout = iCommandTimeout
cnn.CursorLocation = adUseClient
cnn.Open _
"PROVIDER=SQLOLEDB.1;" & _
"INTEGRATED SECURITY=SSPI;" & _
"PERSIST SECURITY INFO=FALSE;" & _
"DATA SOURCE=" & sServerName & ";" & _
"INITIAL CATALOG=" & sDatabaseName & ";"
If cnn.State = adStateOpen Then
OpenConnection = True
Else
modForm.MsgBox _
"Подключение к серверу " & sServerName & " " & _
"и базе данных " & sDatabaseName & " не выполнено.", _
vbExclamation + vbOKOnly, _
"Ошибка подключения к серверу и базе данных"
OpenConnection = False
End If
On Error GoTo 0
Exit Function

Err_Connect:
If iTryCount > 1 Then
OpenConnection = False
GoTo ERR_LABEL
End If
iTryCount = iTryCount + 1
Call ConnectionInfo(sServerName, sDatabaseName)
Resume

ERR_LABEL:
modForm.MsgBox _
"Ощибка " & Err.Number & ": " & Err.Description, _
vbExclamation + vbOKOnly, _
"Ошибка подключения к базе данных"
OpenConnection = False
On Error GoTo 0
Exit Function

End Function

Public Function OpenRecordset _
( _
rs As ADODB.Recordset, _
nRecords As Long, _
sSQL As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)
On Error Resume Next: Err.Clear

Dim cnnLocal As ADODB.Connection
nRecords = 0
OpenRecordset = False
If IsNull(cnn) Then
Call modSQL.OpenConnection(cnnLocal, sServerName, sDatabaseName, iCommandTimeout)
Else
Set cnnLocal = cnn
End If
Set rs = New ADODB.Recordset
rs.CursorType = adOpenKeyset
rs.CursorLocation = adUseClient
rs.Open sSQL, cnnLocal
nRecords = rs.RecordCount
If Err.Number <> 0 Then
Call modError.ErrorMessage( _
9101401, _
"Ошибка выполнения запроса к серверу" & vbNewLine & vbNewLine & _
"SQL=" & sSQL)
Err.Clear
' Рекордсет не был открыт по причине ЛЮБОЙ ошибки
OpenRecordset = False
Else
' True возвращается даже если открытый рекордсет не имеет строк
OpenRecordset = True
End If

On Error GoTo 0
End Function

Public Function ReadValue _
( _
sFieldName As String, vFieldValue As Variant, sSQL As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)
On Error Resume Next: Err.Clear

Dim cnnLocal As ADODB.Connection, bOpenConnection As Boolean
Dim rs As ADODB.Recordset, n As Long, v As Variant

If IsNull(cnn) Then
bOpenConnection = True
Call modSQL.OpenConnection(cnnLocal, sServerName, sDatabaseName, iCommandTimeout)
Else
bOpenConnection = False
Set cnnLocal = cnn
End If
If modSQL.OpenRecordset(rs, n, sSQL, cnnLocal, sServerName, sDatabaseName) Then
If Err.Number <> 0 Then
Call modError.ErrorMessage(Err.Number, Err.Description)
Err.Clear
vFieldValue = Null
ReadValue = False
ElseIf rs.EOF Or rs.BOF Then
vFieldValue = Null
ReadValue = False
Else
vFieldValue = Null
vFieldValue = rs.Fields(sFieldName)
ReadValue = Not IsNull(vFieldValue)
End If
End If
rs.Close: Set rs = Nothing
If bOpenConnection Then
cnnLocal.Close: Set cnnLocal = Nothing
End If

On Error GoTo 0
End Function

Public Function ExecuteCommand _
( _
nRecords As Long, _
sSQL As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800, _
Optional bShowError As Boolean = True _
)
On Error Resume Next: Err.Clear

Dim cnnLocal As ADODB.Connection, bOpenConnection As Boolean
If IsNull(cnn) Then
bOpenConnection = True
Call modSQL.OpenConnection(cnnLocal, sServerName, sDatabaseName, iCommandTimeout)
Else
bOpenConnection = False
Set cnnLocal = cnn
End If
nRecords = 0
cnnLocal.Execute sSQL, nRecords
If Err.Number <> 0 Then
If bShowError Then
Call modError.ErrorMessage(Err.Number, Err.Description)
End If
Err.Clear
ExecuteCommand = False
Else
ExecuteCommand = True
End If

If bOpenConnection Then
cnnLocal.Close: Set cnnLocal = Nothing
End If

On Error GoTo 0
End Function

Public Function ExecuteInsert _
( _
vObjectID As Variant, _
sInsertSQL As String, _
sTableName As String, sTableDescription As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)
On Error Resume Next: Err.Clear

Dim nInsertRecords As Long, nIdentityRecords As Long

nInsertRecords = 0
nIdentityRecords = 0
vObjectID = -1
ExecuteInsert = False

Dim sTableNameTruncate As String, sIdentitySQL As String

If Left(sTableName, 3) = "dbo" Then
sTableNameTruncate = "dbo." & Replace(sTableName, "dbo.", "")
Else
sTableNameTruncate = sTableName
End If

sIdentitySQL = _
"SELECT IDENT_CURRENT('" & sTableNameTruncate & " '), " & _
"SCOPE_IDENTITY()"

Dim cnnLocal As ADODB.Connection
Dim bOpenConnection As Boolean
If IsNull(cnn) Then
bOpenConnection = True
Call modSQL.OpenConnection(cnnLocal, sServerName, sDatabaseName, iCommandTimeout)
Else
bOpenConnection = False
Set cnnLocal = cnn
End If

Dim rsIdentity As ADODB.Recordset
Call modSQL.ExecuteCommand(nInsertRecords, sInsertSQL, cnnLocal)
Call modSQL.OpenRecordset(rsIdentity, nIdentityRecords, sIdentitySQL, cnnLocal)

If Left(sInsertSQL, 7) = "INSERT " And (Err.Number <> 0 Or nInsertRecords <> 1 Or nIdentityRecords <> 1) Then
modError.ErrorMessage _
9060701, _
"Запись в таблицу " & _
sTableName & " " & sTableDescription & " " & _
"не была добавлена."
Err.Clear: GoTo END_PROCEDURE
ElseIf Left(sInsertSQL, 4) = "EXEC" And (Err.Number <> 0 Or nIdentityRecords <> 1) Then
modError.ErrorMessage _
9060701, _
"Запись в таблицу " & _
sTableName & " " & sTableDescription & " " & _
"не была добавлена."
Err.Clear: GoTo END_PROCEDURE
End If
If rsIdentity.Fields(0) <> rsIdentity.Fields(1) Then
modError.ErrorMessage 9060702, _
"При добавлении в таблицу " & _
sTableName & " " & sTableDescription & " " & _
"неправильно был определен уникальный код записи (счетчик)."
Err.Clear: GoTo END_PROCEDURE
Else
vObjectID = rsIdentity.Fields(0)
ExecuteInsert = True
End If

END_PROCEDURE:
rsIdentity.Close: Set rsIdentity = Nothing
If bOpenConnection Then
cnnLocal.Close: Set cnnLocal = Nothing
End If

On Error GoTo 0
End Function

Public Function ExecuteUpdate _
( _
sUpdateSQL As String, _
Optional sTableName As String = "", Optional sTableDescription As String = "", _
Optional cnn = Null, Optional sServerName As String = "", Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)
On Error Resume Next: Err.Clear

Dim nUpdateRecords As Long

nUpdateRecords = 0
ExecuteUpdate = False

Dim cnnLocal As ADODB.Connection
Dim bOpenConnection As Boolean
If IsNull(cnn) Then
bOpenConnection = True
Call modSQL.OpenConnection(cnnLocal, sServerName, sDatabaseName, iCommandTimeout)
Else
bOpenConnection = False
Set cnnLocal = cnn
End If
Call modSQL.ExecuteCommand(nUpdateRecords, sUpdateSQL, cnn)

If Err.Number <> 0 Then
If sTableName <> "" And sTableDescription <> "" Then
modError.ErrorMessage _
9010703, _
"Ошибка при записи данных (обновлении записи) в таблицу " & _
sTableName & " " & sTableDescription
End If
Err.Clear
Else
ExecuteUpdate = True
End If
If bOpenConnection Then
cnnLocal.Close: Set cnnLocal = Nothing
End If

On Error GoTo 0
End Function

Public Function ToString(v As Variant) As String

Dim VALUE: VALUE = v
Dim i As Integer: i = 0

Begin_Label:
If IsNull(VALUE) Then
ToString = "NULL"
Else
Select Case VarType(VALUE)
Case vbEmpty, vbNull
ToString = "NULL"
Case vbInteger, vbLong
ToString = CStr(v)
Case vbSingle, vbDouble, vbDecimal, vbCurrency
If VALUE = -1E+50 Then
ToString = "NULL"
Else
Dim sDecimalSeparator As String, sThouthandSeparator As String
sDecimalSeparator = Mid(Format(0, "0.0"), 2, 1)
sThouthandSeparator = Mid(Format(1000, "0,000"), 2, 1)
ToString = CStr(v)
ToString = Replace(ToString, sDecimalSeparator, "!")
ToString = Replace(ToString, sThouthandSeparator, "")
ToString = Replace(ToString, "!", ".")
End If
Case vbDate
Date_Label:
If v = modDate.EMPTY_DATE Then
ToString = "NULL"
Else
ToString = "'" & Format(v, "yyyymmdd hh:mm:ss") & "'"
End If
Case vbString
If InStr(VALUE, "-") > 0 _
Or InStr(VALUE, "/") > 0 _
Or InStr(VALUE, ".") > 0 Then

If InStr(InStr(VALUE, "-") + 1, VALUE, "-") > 0 _
Or InStr(InStr(VALUE, "/") + 1, VALUE, "/") > 0 _
Or InStr(InStr(VALUE, ".") + 1, VALUE, ".") > 0 Then
If IsDate(VALUE) Then
VALUE = CDate(VALUE)
GoTo Date_Label
End If
End If
End If
If UCase(VALUE) = "NULL" Then
ToString = "NULL"
Else
ToString = "'" & Replace(VALUE, "'", "''") & "'"
End If
Case vbBoolean
ToString = IIf(v, "-1", "0")
Case vbObject
On Error Resume Next
VALUE = v.VALUE
If Err.Number <> 0 Then
Err.Clear
ToString = "NULL"
Else
i = i + 1
If i < 16 Then
GoTo Begin_Label
Else
ToString = "NULL"
End If
End If
Case Else
ToString = "NULL"
End Select
End If

End Function

Public Function Add(v As Variant, Optional bIsLast As Boolean = False) As String

Add = ToString(v)
If Not bIsLast Then
Add = Add & ", "
Else
Add = Add & " "
End If

End Function

Public Function AddParameter(v As Variant, Optional bIsLast As Boolean = False, _
Optional sDelimiter As String = ",") As String

AddParameter = ToString(v)
If Not bIsLast Then
AddParameter = AddParameter & sDelimiter & " "
Else
AddParameter = AddParameter & " "
End If

End Function

' Ф-ии добавления параметра заданного типа нужны, если в качестве аргумента используется
' свободный контрол, который может принимать значение NULL
' Для bound контролов и непустых значений ф-ия AddParameter сама выясняет нужный тип параметра
Public Function AddString(vString As Variant, Optional bIsLast As Boolean = False) As String
If VarType(vString) = vbEmpty Then vString = Null
If IsNull(vString) Then
AddString = AddParameter(vString, bIsLast)
Else
Dim s As Variant
s = "@" + IIf(IsNull(vString), Null, CStr(Nz(vString, "")))
s = AddParameter(s, bIsLast)
AddString = Mid(s, 1, 1) & Mid(s, 3, Len(s) - 2)
End If
End Function
Public Function AddDate(vDate As Variant, Optional bIsLast As Boolean = False) As String
If VarType(vDate) = vbEmpty Then vDate = Null
If vDate = "" Then vDate = Null
If vDate = 0 Then vDate = Null
AddDate = AddParameter(IIf(IsNull(vDate), Null, CDate(Nz(vDate, #1/1/1900#))), bIsLast)
End Function
Public Function AddDateTime(vDate As Variant, Optional bIsLast As Boolean = False) As String
If VarType(vDate) = vbEmpty Then vDate = Null
If VarType(vDate) = vbNull Then
AddDateTime = AddParameter(Null, bIsLast)
Else
AddDateTime = "'" & Format(CDate(vDate), "yyyymmdd hh:mm:ss") & "'"
End If
If Not bIsLast Then AddDateTime = AddDateTime & ", "
End Function
Public Function AddLong(vLong As Variant, Optional bIsLast As Boolean = False) As String
If VarType(vLong) = vbEmpty Then vLong = Null
AddLong = AddParameter(IIf(IsNull(vLong), Null, CLng(Nz(vLong, 0))), bIsLast)
End Function
Public Function AddDecimal(vDecimal As Variant, Optional bIsLast As Boolean = False) As String
If VarType(vDecimal) = vDecimal Then vDecimal = Null
AddDecimal = AddParameter(IIf(IsNull(vDecimal), Null, CDbl(Nz(vDecimal, 0))), bIsLast)
End Function

Public Function ParseSelectFromWhereOrderBy(sSQL As String, sSelect As String, sFrom As String, sWhere As String, sOrderBy As String)

Dim iSelect As Integer, iFrom As Integer, iWhere As Integer, iOrderBy As Integer

Dim s As String
s = Replace(sSQL, Chr(9), " ")
s = Replace(s, Chr(13), " ")
s = Replace(s, Chr(10), " ")
iSelect = InStr(1, s, "SELECT "): sSelect = ""
iFrom = InStrRev(s, " FROM "): sFrom = ""
iWhere = InStrRev(s, " WHERE "): sWhere = ""
iOrderBy = InStrRev(s, " ORDER BY "): sOrderBy = ""

If iSelect = 0 Or iFrom = 0 _
Or (iFrom <= iSelect) _
Or (iWhere > 0 And iWhere <= iFrom) _
Or (iOrderBy > 0 And iOrderBy <= iWhere) _
Then
ParseSelectFromWhereOrderBy = False
Exit Function
End If

sSelect = Trim(Mid(s, iSelect + Len("SELECT "), iFrom - (iSelect + Len("SELECT "))))
If iWhere > 1 And iOrderBy > 1 Then
sFrom = Trim(Mid(s, iFrom + Len(" FROM "), iWhere - (iFrom + Len(" FROM "))))
sWhere = Trim(Mid(s, iWhere + Len(" WHERE "), iOrderBy - (iWhere + Len(" WHERE "))))
sOrderBy = Mid(s, iOrderBy + Len(" ORDER BY "))
ElseIf iWhere > 1 And iOrderBy = 0 Then
sFrom = Trim(Mid(s, iFrom + Len(" FROM "), iWhere - (iFrom + Len(" FROM "))))
sWhere = Mid(s, iWhere + Len(" WHERE "))
ElseIf iWhere = 0 And iOrderBy > 1 Then
sFrom = Trim(Mid(s, iFrom + Len(" FROM "), iOrderBy - (iFrom + Len(" FROM "))))
sOrderBy = Mid(s, iOrderBy + Len(" ORDER BY "))
Else ' iWhere = 0 And iOrderBy = 0
sFrom = Trim(Mid(s, iFrom + Len(" FROM ")))
End If

End Function

Public Sub Test_ParseSelectFromWhereOrderBy()

Dim sSQL As String, sSelect As String, sFrom As String, sWhere As String, sOrderBy As String
sSQL = "SELECT * FROM TAB WHERE id > 0 ORDER BY sName"
ParseSelectFromWhereOrderBy sSQL, sSelect, sFrom, sWhere, sOrderBy
Debug.Print "|" & sSQL & "|" & sSelect & "|" & sFrom & "|" & sWhere & "|" & sOrderBy & "|"

sSQL = "SELECT * FROM TAB ORDER BY sName"
ParseSelectFromWhereOrderBy sSQL, sSelect, sFrom, sWhere, sOrderBy
Debug.Print "|" & sSQL & "|" & sSelect & "|" & sFrom & "|" & sWhere & "|" & sOrderBy & "|"

sSQL = "SELECT * FROM TAB WHERE id > 0"
ParseSelectFromWhereOrderBy sSQL, sSelect, sFrom, sWhere, sOrderBy
Debug.Print "|" & sSQL & "|" & sSelect & "|" & sFrom & "|" & sWhere & "|" & sOrderBy & "|"

sSQL = "SELECT * FROM TAB"
ParseSelectFromWhereOrderBy sSQL, sSelect, sFrom, sWhere, sOrderBy
Debug.Print "|" & sSQL & "|" & sSelect & "|" & sFrom & "|" & sWhere & "|" & sOrderBy & "|"

sSQL = "select sParusCustomerCode = '*', sParusCustomerAlias = '<Все мнемокоды>', sCondition = '1=1'" & vbNewLine & _
"union all select sParusCustomerCode, sParusCustomerAlias, 'sParusCustomerCode=''{LIST}'''" & vbNewLine & _
"from qrParusCustomerCodeBind1" & vbNewLine & _
"order by sParusCustomerCode"
ParseSelectFromWhereOrderBy sSQL, sSelect, sFrom, sWhere, sOrderBy
Debug.Print "|" & sSQL & "|" & sSelect & "|" & sFrom & "|" & sWhere & "|" & sOrderBy & "|"

End Sub

Public Function JoinSelectFromWhereOrderBy _
( _
sSQL As String, _
sSelect As String, _
sFrom As String, _
Optional sWhere As String = "", _
Optional sOrderBy As String = "", _
Optional bDistinct As Boolean = False _
)

If Len(sSelect) = 0 Or Len(sFrom) = 0 Then
JoinSelectFromWhereOrderBy = False
Exit Function
End If
sSQL = "SELECT "
If bDistinct Then sSQL = sSQL & "DISTINCT "
sSQL = sSQL & sSelect
sSQL = sSQL & " FROM " & sFrom
If Len(sWhere) > 0 Then sSQL = sSQL & " WHERE " & sWhere
If Len(sOrderBy) > 0 Then sSQL = sSQL & " ORDER BY " & sOrderBy
JoinSelectFromWhereOrderBy = True

End Function

Public Function JoinFromWhereOrderBy _
( _
sSQL As String, _
sFrom As String, _
Optional sWhere As String = "", _
Optional sOrderBy As String = "" _
)

JoinFromWhereOrderBy = JoinSelectFromWhereOrderBy(sSQL, "*", sFrom, sWhere, sOrderBy)

End Function

Public Sub Test_JoinSelectFromWhereOrderBy()

Dim sSQL As String, sSelect As String, sFrom As String, sWhere As String, sOrderBy As String
sSQL = "SELECT * FROM TAB WHERE id > 0 ORDER BY sName"
ParseSelectFromWhereOrderBy sSQL, sSelect, sFrom, sWhere, sOrderBy
Debug.Print "|" & sSQL & "|" & sSelect & "|" & sFrom & "|" & sWhere & "|" & sOrderBy & "|"

JoinSelectFromWhereOrderBy sSQL, sSelect, sFrom, sWhere, sOrderBy
Debug.Print "|" & sSQL & "|" & sSelect & "|" & sFrom & "|" & sWhere & "|" & sOrderBy & "|"

JoinSelectFromWhereOrderBy sSQL, sSelect, sFrom, sWhere, sOrderBy, True
Debug.Print "|" & sSQL & "|" & sSelect & "|" & sFrom & "|" & sWhere & "|" & sOrderBy & "|"

JoinFromWhereOrderBy sSQL, sFrom, sWhere, sOrderBy
Debug.Print "|" & sSQL & "|" & sFrom & "|" & sWhere & "|" & sOrderBy & "|"

End Sub

Public Function AddWhereAnd(sWhere1 As String, sWhere2 As String)

AddWhereAnd = sWhere1
If Len(sWhere1) > 0 And Len(sWhere2) > 0 Then
AddWhereAnd = "(" & sWhere1 & ") AND (" & sWhere2 & ")"
ElseIf Len(sWhere1) > 0 And Len(sWhere2) = 0 Then
AddWhereAnd = sWhere1
ElseIf Len(sWhere1) = 0 And Len(sWhere2) > 0 Then
AddWhereAnd = sWhere2
Else
AddWhereAnd = ""
End If

End Function

Public Function AddWhere(sSQL As String, sWhere As String)

Dim sSQL_Local As String, sSelect As String, sFrom As String, sWhere_Local As String, sOrderBy As String
ParseSelectFromWhereOrderBy sSQL, sSelect, sFrom, sWhere_Local, sOrderBy
sWhere = AddWhereAnd(sWhere_Local, sWhere)
JoinSelectFromWhereOrderBy sSQL_Local, sSelect, sFrom, sWhere, sOrderBy
AddWhere = sSQL_Local

End Function

Public Function Test_AddWhere()

Dim sSQL As String, sWhere As String
sSQL = "SELECT a, b FROM tbl WHERE 1=1 AND 1=2"
sWhere = "ID=123"

Debug.Print AddWhere(sSQL, sWhere)

End Function

----
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250523
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заменил
Public Function OpenRecordset _
( _
rs As ADODB.Recordset, _
nRecords As Long, _
sSQL As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)

на

Public Function OpenRecordset _
( _
rs As ADODB.Recordset, _
nRecords As Long Ptr , _
sSQL As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)

заменил везде, ошибка исчезла, но появилась другая: nCount - на что заменить пока не нашел...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250534
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nRecords и nCount - переменные должны быть одинакового типа.
Во что ж это лонг мутировал...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250569
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

спасибо, а я уже многое что перелопатил что ж такое nCount пока не нашел, ну а если это переменные то надо пошукать
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250574
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set tv = CustomTreeView

Dim nCount As Long: nCount = -1
Dim sSQL As String: sSQL = "SELECT * FROM qrNodeElement WHERE iElementID=" & Me.iElementID
Dim rs As ADODB.Recordset
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250575
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что ж они получается Long тоже заменили
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250577
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фаиндом nCount пошукай по проекту. Ну и компил должен выдавать строку, где ошибка.

Они тоже у меня всегда лонги были.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250597
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель Фаиндом nCount пошукай по проекту. Ну и компил должен выдавать строку, где ошибка.

Они тоже у меня всегда лонги были.

имеешь ввиду посиком, если да то уже давно ищу
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250601
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеешь ввиду посиком - ПОИСКОМ, если да то уже давно ищу
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250628
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что, фаиндом по всему проекту можно не найти конкретное имя переменной ? Поделись секретом, как.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250636
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

ну какбы и не смешно совсем, просто CtrlF действует почему то не на весь модуль а только на активный, несколько заблудился видать...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250638
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

у меня как то вот так при Compile с последующим поиском получается (выделяет желтым)
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250648
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex999konПрограммист-Любитель,

ну какбы и не смешно совсем, просто CtrlF действует почему то не на весь модуль а только на активный, несколько заблудился видать...
вот, на твоём же рисунке видно, - есть переключатель "Где искать" (Search)
выбери "Current Project"
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38250650
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел!!!!!!!!!!

Public Function OpenRecordset _
( _
rs As ADODB.Recordset, _
nRecords As LongPtr, _
sSQL As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)

а
Dim nCount As Long: nCount = -1
Dim sSQL As String: sSQL = "SELECT * FROM qrNodeElement WHERE iElementID=" & Me.iElementID
Dim rs As ADODB.Recordset


но почему то замена Long на LongPtr выдает ошибку при компиле
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38251128
cylindr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex999kon,

Вы принципиально не пользуетесь тэгами в оформлении сообщений? Ваш код очень трудно читать.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38251186
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cylindralex999kon,

Вы принципиально не пользуетесь тэгами в оформлении сообщений? Ваш код очень трудно читать.

извиняюсь!! действительно не обучен этому...

тем более что в самом аксе также все и выглядит, поэтому опасаясь испортить привычный вид не трогаю...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38251211
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У ошибки есть текст ?

Может лучше бы на Variant было бы переделать ? А то по хелпу нет полной ясности, когда LongLong, когда LongPtr, надо пробовать, а 64 бит у меня нету.

Ну и с тегами отмазка совсем гнилая. Еще б и в спойлер убирать, чтобы скроллировать поменьше надо было.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38251214
ЫLL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex999konтем более что в самом аксе также все и выглядит, поэтому опасаясь испортить привычный вид не трогаю...я в шоке
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38251349
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЛ, я тебя понял, буду пробовать, по ркезультату отпишусь...

насчет тэгов - не уверен что это главное , тем более при поиске правильности в нашей теме... как то вот так
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38251571
cylindr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex999konпри поиске правильности в нашей теме.

Здесь вы не правы, это не только ваша тема. Есть и другие люди, которым интересно.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38251902
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cylindr,

не спорю, просто говорю то что инетерсно МНЕ, а если есть и ДРУГИЕ темы, то милости просим, кто же против то...

тем более здесь на ФОРУМЕ!!!!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254092
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

я попытался использовать твой модуль с быстрым поиском по тексту в своей базе... ну в общем получилось частично. Вот эта функция работает безупречно:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub fldFindBuh_Change()
    Dim s As String: s = Me.fldFindBuh.Text
    Dim bRes As Boolean
    
    If Len(Trim(Nz(s, ""))) = 0 Then
        Me.btnFindBuh.Enabled = False
    Else
        Me.btnFindBuh.Enabled = True
        bRes = modPattern.FindPattern( _
            Me.subElement_Buh.Form.RecordsetClone, Me.subElement_Buh.Form, _
            s, "strName", "iKOD", "strName", True, False _
        )
    End If

End Sub



А вот здесь проблема:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub fldFind_Change()
    Dim s As String: s = Me.fldFind.Text
    Dim bRes As Boolean
    
    If Len(Trim(Nz(s, ""))) = 0 Then
        Me.btnFind.Enabled = False
    Else
        Me.btnFind.Enabled = True
        bRes = modPattern.FindPatternArray( _
            Me.subElement.Form.RecordsetClone, Me.subElement.Form, _
            s, Array( _
            "strElementName;strElementDescription;strElementStandart" _
        ))
    End If
По началу долго не мог запустить процедуру - выдавала ошибки, сейчас уже не вспомню какие, либо просто ничего не находила и ставила курсор на первую запись, текущий вариант работает... но поиск производится только по первому столбцу из списка (в этом варианте strElementName), а фокус почему то выставляется на последний столбец (здесь strElementStandart). При этом поиск по другим столбцам, кроме первого, не производится вообще. Может я что-то делаю не так?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254122
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверняка неправильно указаны аргументы при вызове функции. Поиск расчитан как на обычные поля так и на комбо-лукапы. Если простое поле, то проблем нет - в нем нашли образец, на него же встали. В случае комбо ищется по некоему текстовому полю (его может не быть на форме), а встаем фокусом на айди, сделанный в виде комбобокса. Отсюда необъодимость задавать такой массив строк.
Каждый элемент массива - строка для поиска по одному из полей. Содержит три имени поля, разделенный ;
Первое имя поля - поле где ищем.
Второе - имя ПК поля для синхронизации рекордсетов. (Аксиома: все ПК - автосчетчики, ПК из ОДНОГО поля)
Треье поле - куда встаем фокусом.

Первое и третье часто совпадают.
Второе поле в массиве строк приходится задавать одинаковым - это небольшая недоработка, его можно было бы задать только один раз.

У тебя в коде:
Array("strElementName;strElementDescription;strElementStandart"...
скорее всего ПК в наборе данных не strElementDescription.

Попробуй задать параметры функции правильно.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254132
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительКаждый элемент массива - строка для поиска по одному из полей. Содержит три имени поля, разделенный ;


Теперь дошло.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub fldFind_Change()
    Dim s As String: s = Me.fldFind.Text
    Dim bRes As Boolean
    
    If Len(Trim(Nz(s, ""))) = 0 Then
        Me.btnFind.Enabled = False
    Else
        Me.btnFind.Enabled = True
        bRes = modPattern.FindPatternArray( _
            Me.subElement.Form.RecordsetClone, Me.subElement.Form, _
            s, Array( _
            "strElementName;iElementID;strElementName", _
            "strElementDescription;iElementID;strElementDescription", _
            "strElementStandart;iElementID;strElementStandart" _
            ))
    End If

End Sub


Все работает корректно :)
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254777
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересная вещь получается:

заменил nCount As Long : на nCount As Long Long:по всему модулю, сжал восстановил, вот что выдало (переменную nRecords) пока не трогал, вот скрин по запуску
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254778
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. запуск ТрииВью начался, просто где то ошибка из-за несоответствия типов данных в новом аксе...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254789
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Трассировать надо. Смотреть, где в 64 битном аксесе затыкается. Там код очень простой, надо поставить брейкпоинт на начало загрузки данных, чтобы гаранитировано попасть в код до ошибки.

С этими непонятными лонгами я бы лучше вариант тип данных сделал. nRecords и nCount должны быть обязательно одного типа.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254791
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, будем копать...

только помоги (чтоб не ошибиться), как поставить точку останова брэкпоинт (вообще тема известная по другим отладчикам, в аксе пока не сталкивался...) не сочти за что-то нехорошее с моей стороны...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254794
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пока вот что нашел:

nRecords As LongPtr, причем в нескольких местах, теперь не знаю что лучше сделать чтобы одинаковые типы данных были, что лучше сделать LongLong или LongPtr
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254795
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Купи книжку по аксесу и прочитай. Писать такие основы на форуме вряд ли хоть кто-то будет.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254796
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex999konспасибо, будем копать...

только помоги (чтоб не ошибиться), как поставить точку останова брэкпоинт (вообще тема известная по другим отладчикам, в аксе пока не сталкивался...) не сочти за что-то нехорошее с моей стороны...
кнопку Debug, для начала, нажми, и посмотри на какую строку кода "выкинет"
нуу и тут можешь показать
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254803
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Debug Compile я делаю, получаю место и описание ошибки, думалось что как в отладчике TurboDubugger можно поставить точки останова с выводом результатов на точку, видать ошибался....

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

извини за кривость изложения...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254804
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254808
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и все таки что лучше использовать в качестве типа данных LongLong или LongPtr, почему спрашиваю, ведь взаимодействие этих переменных возможно с другими переменными, так вот, если заменить на один тип то с другими переменными могут возникать теже грабли, считаю надо определить с единым типом данных, посоветуйте что правильнее будет...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254823
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пытался заменить As LongPtr на As LongLong, выдает ошибку, делал наоборот, т.е. менял As LongLong на As LongPtr, результат один и тот же....
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254879
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вот еще, пока не понял что это, разбираюсь, в смысле ищу...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254895
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex999konи все таки что лучше использовать в качестве типа данных LongLong или LongPtr, почему спрашиваю, ведь взаимодействие этих переменных возможно с другими переменными, так вот, если заменить на один тип то с другими переменными могут возникать теже грабли, считаю надо определить с единым типом данных, посоветуйте что правильнее будет...
попробОвал "вникнуть" в то, что тут пишут про эти новые типы
Тип Элемент Описание Тип данных LongPtr Тип данных переменной, состоящей из 4 байт в 32-разрядных версиях и из 8 байт в 64-разрядных версиях Office 2010. Это рекомендуемый способ объявления указателя или дескриптора в новом коде, а также в старом коде, если он будет выполняться в 64-разрядной версии Office 2010. Эта возможность поддерживается только в среде выполнения VBA 7 в 32- и 64-разрядных системах. Обратите внимание, что этой переменной можно назначать числовые значения, но не числовые типы. Тип данных LongLong Это 8-байтовый тип данных, доступный только в 64-разрядных версиях Office 2010. Этому типу можно назначать числовые значения, но не числовые типы (чтобы избежать усечения).
вот, значит, что LongPtr - ввели для совместимости 32б и 64б версий кода VBA7
в 32б - этот тип будет эквивалентен - Long,
а в 64б - LongLong
как если бы было
Код: vbnet
1.
2.
3.
4.
5.
#if Win64 then
   Dim Param as LongLong
#else
   Dim Param as Long
#end if


т.е. тебе (с учётом твоего Акс-64б) "без разницы", какой тип использовать - результат будет одинаковый,
но лучше LongPtr - "переносимость" кода будет "по-выше"

зы
но последнии ошибки НЕ связаны с типами Long/LongLong,
это я так, "навсякий", вдруг "не дошло"
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254919
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо!!

исправил еще и простые As Long на As LongPtr, начались ошибки, по цепочке дошел до cNode а там CustomTreeNode, и вот дальше пока ничего не понимаю, видать значение из библиотек, если правильно понимаю, так что вот...

все что Вы мне пишете я действительно смотрю и читаю, правда не все понятно сразу, приходится несколько гуглить по книгам и прочим источникам, но все сразу понятно не охватить....

спасибо за помощь....
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254925
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алекс, очевидно ты неаккуратными реплейсами испортил "Long" в других частях проекта (modSQL.AddLong(...)) . Я могу дома переделать все "свои" лонги на варианты и выложить заново.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254928
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подозрение правильно но ведь я ж тоже не совсем туп...

исправлял только там где былыи указания на тип данных, т.е. As Long

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

Friend Function UniqueKey(sKey As String) As String
Dim cNode As CustomTreeNode
For Each cNode In Nodes
If cNode.Key = sKey Then
Err.Raise vbObjectError + 1, "CustomTreeView", "Duplicate key: '" & sKey & "'"
End If
Next
UniqueKey = sKey
End Function
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38254934
ih
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько помню - as object решает проблемы с типами
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38255039
ih
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне совсем туптут разница в бите важна а совсем или не совсем ... )
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261027
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

реализация сортировки и фильтрации – моё почтение. Как говорил Сергей Бондарчук в известном анекдоте «снимаю шляпу».
Код довольно простой, но что бы такое сделать нужно очень хорошо представлять что, как и почему делаешь и как это всё взаимодействует. Системный подход. ...Я бы не смог.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261028
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

реализация сортировки и фильтрации – моё почтение. Как говорил Сергей Бондарчук в известном анекдоте «снимаю шляпу».
Код довольно простой, но что бы такое сделать нужно очень хорошо представлять что, как и почему делаешь и как это всё взаимодействует. Системный подход. ...Я бы не смог.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261034
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

реализация сортировки и фильтрации – моё почтение. Как говорил Сергей Бондарчук в известном анекдоте «снимаю шляпу».
Код достаточно простой, но что бы такое сделать нужно очень хорошо представлять что, как и почему делаешь и как это всё взаимодействует. Системный подход. ...Я бы не смог, даже мысль что можно это так сделать не пришла бы в голову. Ваял бы дальше отдельные поля для каждого столбца что бы фильтровать и сортировать.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261037
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
От восторга даже инет заглючил
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261041
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы, это старая версия не на классах и без опоры на метаданные. Тот вариант, которым я пользуюсь сам для приведение форм в действие (работа всех видов форм, переходы между формами, все остальное НЕ ТРЕБУЕТ кода в прикладных формах. Все конфигурируется).
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261043
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жалко Алекс никак не может запустить.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261061
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь твоя старая версия для меня дело довольно отдаленного будущего. И то если повезет.
У меня 32х битная система, может потому проблем не было.
... Купил тут ноутбук жене, а когда узнал что на нём стоит win8 64 бит, долго ругался и грозился снести. Успокоился только когда сообразил что на борту установлено 8гб оперативки, половина из которых работать не будет.
Сейчас привык, даже ничего так... Но вот разрабатывать что–то на нём я бы не рискнул.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261073
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В тривью, на моей базе пропали «плюсики» на корневом уровне. Содержимое открывается по двойному клику, но с «плюсиками» как то нагляднее. Не могу сообразить как их включить обратно. Не подскажешь?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261076
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коммонконтроловский тривью или апишный для 64 бит ?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261078
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для коммонконтроловского:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
    Set m_AppTree = m_AppForm.Controls(m_sTreeControlName).Object
    With m_AppTree
        .Style = 7
        .Indentation = 300
        .LineStyle = 1
        .HideSelection = False
        .FullRowSelect = True
        .PathSeparator = "\"
    End With
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261080
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый.
Я тривью еще давно у себя сделал. одна из первых форм была.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261083
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю. Завтра проверю. Пора спать.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261286
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительЖалко Алекс никак не может запустить.

бьюсь - аж башкой об стену....

пока мало что получается, то начнет немного работать тривью слева (состав изделия), но куча ошибок после кнопки новая деталь (слева..), после исчезновения ошибок в этом месте при перезапуске преддущее опять начинает ошибки сыпать, восстанавливаю заново то что было в начале, и все опять, правда несколько по другому пробую бороться с ошибками, но в итоге все как то печально....
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261287
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опечатался - новая деталь (слева..) - СПРАВА
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261324
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алекс, любые ошибки - конкретны. Они имеют код и текст ошибки. По нажатию контрол-брейк видна инструкция, вызвавшая ошибку. Можно просмотреть значения переменных, понять и исправить ошибку.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38261327
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

спасибо за ответ, так и делаю, но не все получаетсяя или не все еще понимаю....
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #38272988
Фотография alex999kon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как то забыли про тему......

или не всем интересно стало????
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
TreeView для MS Office 64 bit
    #39920528
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все прочитал но так и не понял есть возможность как то восстановить представления в виде Дерева?


И еще вопрос по этому коду
Dim s As String: s = Me.Flnd.Text
Dim bRes As Boolean

If Len(Trim(Nz(s, ""))) = 0 Then
Me.Flnd.Enabled = False
Else
Me.Flnd.Enabled = True
bRes = modPattern.FindPatternArray( _
Me.ДокументДок.Form.RecordsetClone, Me.ДокументДок.Form, _
s, Array( _
"strElementName;iElementКратко;strElementName", _
"strElementDescription;iElementID;strElementDescription", _
"strElementStandart;iElementID;strElementStandart" _
))

End If
Это название полей в форме?
"strElementName;iElementКратко;strElementName", _
"strElementDescription;iElementID;strElementDescription", _
"strElementStandart;iElementID;strElementStandart"
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39924381
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это имена полей. Первое - где ищем образец. Второе - уникальный ид набора данных. Третье - куда всем фокусом если нашли. Немного громоздко, но работает с коибобоксами с подстановкой и трюком узкого первого видимого поля. Код поиска - часть фреймворка разработки приложений, несколько раз упоминавшийся в этом старом топике.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925610
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Замечено.
Некоторые приложения сделанные на 32 битных системах с Тревью работают нормально и корректно и на 64 бит ОС, о некоторые не работают. Почему?
У меня возникло подозрение что если ПО не преобразовывать под новые ОС то все работает корректно
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925647
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1
Некоторые приложения сделанные на 32 битных системах с Тревью работают нормально и корректно и на 64 бит ОС, о некоторые не работают. Почему?
проблема не в системе, а в битности офиса
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925729
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даже если и так, все равно что то работает, а что то нет
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925760
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

Красивый интерфейс у вашей программы.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925832
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1
Даже если и так, все равно что то работает, а что то нет
Конкретней.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925877
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот две программы. запущены на одном и том же ПК
ОС Вин10 64 Бт Офисс 7 64 бит
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925879
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На верхнем примере Тривью работает
на нижнем вылетает вот такая менюшка и Все!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925911
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень информативная картинка - маленькие принсрины и огромные белые поля
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925913
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1, не видя конкретные программы сложно сказать. Предположу, с ошибкой использует ocx, без ошибки - на API
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39925914
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и что за ошибка тоже не видно...
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926607
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Тут покачественнее
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926609
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926618
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1,

Для вашей каши RecordSet надо объявлять полностью
Код: vbnet
1.
2.
3.
Dim rstTip as ADODB.Recordset
или 
Dim rstTip as DAO.Recordset


Это для начала.
Ну и обработчик ошибок поставте.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926624
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1, так а TreeView тут причём? Как вижу он работает. Кстати, а точно версия Access 64бит?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926625
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь вот это вылезло
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926626
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
Дар1, так а TreeView тут причём? Как вижу он работает. Кстати, а точно версия Access 64бит?

У меня тоже возникли сомнения в разрядности.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926633
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1,
Код: vbnet
1.
У ADODB.Recordset нет свойства .OpenRecordset а есть .Open
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926639
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут что то не вижу разрядности
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926646
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет тут просто .Open если так ка я писал .OpenRecordset
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926651
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1,

Не парься если бы была 64 дерево не заработало бы
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926653
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,

С начала опять же явная инициализация
Код: vbnet
1.
Set rstTip= New ADODB.Recordset


и будет тебе счастье
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926654
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1,

А код точно ваш?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926655
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка ушла вниз
Ran-time error ошибка 424
Object required
Что это?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926660
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1,

Пытаетесь применить фильтр по форме
+ замените на &
а то глаз режет
Поставте обработчик ошибок вам же легче будет отлаживать чужой код.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926668
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2007 всегда x32. х64 началось с офиса 2010 (VBA7). рекордсеты открываются как DAO. Поэтому лучше вернуть DAO 3.6, а объявления ADODB убрать.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926682
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про код.
Делал по аналогии.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926684
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все заработало.
Всем спасибо кто подсказал то что я не совсем понимаю.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926697
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дар1, в данном случае ADODB DAO
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926698
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI
и будет тебе счастье
не будет
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926700
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
Дар1, в данном случае ADODB DAO
упс... уже ответили
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926703
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
ROI
и будет тебе счастье
не будет

Код конечно хлипкий.
Но человек как-то добил его (может потом оптимизирует)
И наконец будет счастье!
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926710
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI, я про библиотеку говорил
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39926714
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
ROI, я про библиотеку говорил

Да я понял.
Можно это на ADO переделать можно на DAO остаться.
Я сразу понял, что человек ни того ни другого не знает (по этому ни стал уточнять)
Он по аналогии делал.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39927372
POKEP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дар1,

С ошибкой MSCOMCTL.OCX (библиотека в референсах) я тоже иногда сталкиваюсь. Зачастую такое бывает после очередных обновлений от Microsoft.

Мне помогает перерегистрация библиотеки от имени администратора в той же папке. Например, в командной строке:

REGSVR32 /u C:\Windows\syswow64\MSCOMCTL.OCX

затем

REGSVR32 C:\Windows\syswow64\MSCOMCTL.OCX
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39927960
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
POKEP,
Интересно можно это вписать как то в загрузочную форму? Так что бы в будущем не парится.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39927962
Дар1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,
Да, с VB проблемы, копаюсь в разных источниках, смотрю как делают другие, или как в книжках. Главное что бы в итоге работало
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39928394
POKEP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дар1,

В стартовую форму - нет смысла, ибо Access уже стартует с теми библиотеками, которые ему предоставляет ОС.

А вот в bat-файл (или файл сценария VB-script), который будет запускать ваше приложение через ярлык - запросто. Я именно так и поступаю с внутрикорпоративными приложениями.
И ещё один важный момент - у пользователя должны быть права локального администратора.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39928400
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
POKEP,

Это как, корпоративные пользователи с правами локального администратора?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39928814
POKEP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,

Есть и такие сетевые пользователи с постоянными правами лок админов, большинству же (бухгалтерия, например) такие права даются временно на период настройки рабочей станции, когда прописываются необходимые приложения и регистрируются библиотеки. Кроме того, есть терминальные компьютеры, где ярлыки для VB скриптов разные на рабочих столах пользователей и разработчиков.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39929847
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне сначала права локального админа давать не хотели. Но после того, как сисадмин раз 5 смотался ко мне по вопросам установки, обновления и удаления программ, я эти права получил.
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39929932
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss
Мне сначала права локального админа давать не хотели. Но после того, как сисадмин раз 5 смотался ко мне по вопросам установки, обновления и удаления программ, я эти права получил.

странные у вас админы пяшком бегают.
А удаленно прицепиться и установить чё требуется не судьба.
Лучше права дать (а потом лопатой огребать проблемы)
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39973863
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нибудь пользуеЦЦа 64-разрядной MSCOMCTL.OCX, выдернутой из "поздних" версий Office 365 2016 (обновление 1707 и далее) либо Office 2019 в проектах на более ранних 64-разрядных Access-ах (2010, 2013, 2016 до 1707)? Если да, какие проблемы в эксплуатации?
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39974028
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЦЦа
Кто-нибудь пользуеЦЦа 64-разрядной MSCOMCTL.OCX,

Я б попользовался, но взять то что работает негде... то что удалось выдернуть - не работало....
...
Рейтинг: 0 / 0
TreeView для MS Office 64 bit
    #39974059
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЦЦа
64-разрядной MSCOMCTL.OCX

Дык вроде нету такого.
...
Рейтинг: 0 / 0
198 сообщений из 198, показаны все 8 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / TreeView для MS Office 64 bit
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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