powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отдельный топик для Быкиса и П-Л по совету Вади
25 сообщений из 323, страница 9 из 13
Отдельный топик для Быкиса и П-Л по совету Вади
    #34719020
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исчо вапрос - как сделать?
На форме стартуп (твоей, где происходит подключение библиотек) он таймер есть
Код: plaintext
Dim conn As ADODB.Connection
(вместо курентпрожек.конекшн). АДО конечно нету, т.к. он отключается при выходе.
Как подключить АДО, чтобы аксес не ругался? Я пробовал он лоад подключать адо, но ему не нравиться что она в модуле формы есть, пока ещё не подключена.
Я понятно спросил?
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34719146
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно всё это в отдельные ф-ии. А как ещё?
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34719181
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял - в таймере сначала подключается ADODB. Уточни вопрос.
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34719248
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно, но если в том же таймере использую ссылаюсь на объекты адо, то аксесс ругается. И не важно что к тому времени, как адо потребуется - билиотека уже будет подключена. Или я неправ?
Код как утебя. Но при открытии формы, сразу ругается на жёлтую строчку.
Код: plaintext
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.
Private Sub Form_Timer()
On Error GoTo Err_Form_Timer

    Dim ref As Reference
    Dim bOK As Boolean

    If iInitialisationStep =  1  Then
    
        With Me
            .TimerInterval =  0 
            .OnTimer = ""
            .lblCurrentProcess.Caption = _
                "Inicializuojamos ir pajungiamos sisteminës bibliotekos..."
            .Repaint
        End With
        
        For Each ref In Application.References
        
            If Not ref.IsBroken Then
                
                If ref.Name = "stdole" Or _
                   ref.Name = "Office" Or _
                   ref.Name = "MSComctlLib" Or _
                   ref.Name = "Scripting" Or _
                   ref.Name = "MSCommLib" Or _
                   ref.Name = "ADOMD" _
                Then Application.References.Remove ref
            
            End If
                
        Next ref
    
        Set lnkRef = Nothing: Set lnkRef = New LinkReferences
           
        With lnkRef
            .CheckReferences
            .LinkADODB
            .LinkReferenceFromGUID "stdole",  2 #,  1 #, "{00020430-0000-0000-C000-000000000046}"
            .LinkReferenceFromGUID "Office",  2 . 3 ,  1 #, "{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}"
            .LinkReferenceFromGUID "MSComctlLib",  2 #,  0 #, "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}"
            .LinkReferenceFromGUID "Scripting",  1 #,  0 #, "{420B2830-E718-11CF-893D-00A0C9054228}"
            .LinkReferenceFromGUID "MSCommLib",  1 #,  1 #, "{648A5603-2C6E-101B-82B6-000000000014}"
            .LinkReferenceFromGUID "ADOMD",  3 #,  2 #, "{22813728-8BD3-11D0-B4EF-00A0C9138CA4}"
            .CheckReferences
        End With
        
        bOK = True
        
        For Each ref In References
        
            If ref.IsBroken = False Then
                
                Me.lblCurrentAction.Caption = ref.Name & " " & ref.Major & "." & ref.Minor & " " & ref.FullPath
        
                If ref.Name = "Access" And ref.Major <  9  Then
                    MsgBox _
                        "Ðiame kompiuteryje instaliuota sena MS Office " & _
                        "Access versija." & _
                        vbExclamation + vbCritical + vbOKOnly, _
                        "Bibliotekø inicializacija"
                    bOK = False
                End If
            
            Else
                       
                Me.lblCurrentAction.Caption = ref.Name & " (" & ref.Guid & ")"
                MsgBox _
                    "Ðiame kompiuteryje instaliuota sena arba nepilna MS Office " & _
                    "paketo programø versija." & vbNewLine & vbNewLine & _
                    "Nepavyko inicializuoti: " & ref.Name & " (" & ref.Guid & ")", _
                    vbExclamation + vbCritical + vbOKOnly, _
                    "Bibliotekø inicializacija"
                bOK = False
            End If
            
            Me.Repaint
            
            Dim PauseTime: PauseTime = iShortPause
            Dim Start:     Start = Timer
            Do While Timer < Start + PauseTime:  DoEvents: Loop
        
        Next ref

        Me.lblCurrentProcess.Caption = ""
        Me.lblCurrentAction.Caption = ""
        
        If Not bOK Then Application.Quit
        
        Me.lblCurrentProcess.Caption = "Jungiamasi prie SQL serverio ir duomenø bazës..."
        Me.Repaint
        
On Error GoTo Err_Connection
        Me.lblCurrentAction.Caption = "Tikrinamas sujungimas su serveriu"
        Me.Repaint
        Dim conn As ADODB.Connection: Set conn = New ADODB.Connection
        conn.ConnectionString = strConnLKvitai
        conn.Open
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767416
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нахожу скриншотов с твоими деревянными справочниками. Не помнишь хде выкладывал?
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767455
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Справочниками чего ?
Сейчас у меня несколько форм с деревьями. Проверочные отчеты, источники данных, шаблоны и документы.
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767470
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да мне бы посмотреть как с деревьми работать - типа новый нод, удалить, сделать парентам... Кнопками? Контекстным меню? Тулбаром? Драг/дроп и апдейт и лженоды с текстом "новый нод"? Или вообще для работы отдельная простая форма, а деревом только показывать? Кароче не могу придумать - и так не удобно, и так не удобно. Поделись идеями ;)
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767524
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я "сачканул" сделал не так добросовестно, как следовало бы. Но все таки для той конкретной ситуации, где это дерево работает получилось на четверочку.
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767536
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исходный код (обрати внимание внизу на связь драг-н-дропа с T-SQL процедурами):
(Form_Resize выкинул, ты знаешь, что у меня там ужас-ужас)
Код: plaintext
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.
718.
719.
720.
721.
722.
723.
724.
725.
Private Sub Form_Load()

    SourceObject = ""
    nodeKey = ""
    Me!lstOption =  1 
    
    bExcel = Null
    sFileName = ""
    bFormat = Null
    bOpen = Null
    optFieldList = Null
    
    Call modCheckData.LoadTree(Me.treeCtl.Object, Me.lstOption)
    ' Key:="ROOT"
    ' Key:="CD" & rsCheckData!iCheckDataID
    ' Key:="OP" & rsNode!iSyntaxNodeID
    With Me.treeCtl.Nodes("ROOT")
        .Expanded = True
        .Selected = True
    End With
    NodeClick Me.treeCtl.Nodes("ROOT"), True

    With Me.treeCtl
        .style =  7 
        .Indentation =  300 
        .LineStyle =  1 
        .Visible = True
        .SetFocus
        .OLEDragMode =  1  ' ccOLEDragAutomatic
        .OLEDropMode =  1  ' ccOLEDropManual
    End With
    blnDragging = False

End Sub

Private Sub treeCtl_NodeClick(ByVal oNode As Object)

    NodeClick oNode, True

End Sub

Public Function SetDatasourceList()

    If SourceObject = "CheckData0" Then
        If Me.lstOption =  1  Then
            With Me.subForm.Form.sDatasourceName
                .RowSource = _
                    "SELECT sDatasourceName, sDatasourceDescription " & _
                    "FROM qrDatasourceDescription " & _
                    "ORDER BY sDatasourceName, sDatasourceDescription"
                .ColumnWidths = "2268;5670"
                .BoundColumn =  1 
            End With
        Else
            With Me.subForm.Form.sDatasourceName
                .RowSource = _
                    "SELECT sDatasourceDescription, sDatasourceName " & _
                    "FROM qrDatasourceDescription " & _
                    "ORDER BY sDatasourceDescription, sDatasourceName"
                .ColumnWidths = "5670;2268"
                .BoundColumn =  2 
            End With
        End If
    End If
    
End Function

Public Function NodeClick(n As node, Optional bVisualEffect As Boolean = True)

    DoCmd.Hourglass True
    If Not n Is Nothing Then
        nodeKey = n.Key
        Dim s As String, ss() As String
        s = n.FullPath
        ss = Split(s, "\")
        Select Case UBound(ss)
        Case  0 
            If SourceObject <> "CheckData0" Then
                SourceObject = "CheckData0"
                Me.subForm.SourceObject = "frmMETA_CheckData_subCheckData0"
                Me.subForm.Form.UniqueTable = "METAB_CheckData"
                Me.lblSub.Caption = " Проверочные отчеты"
            End If
            Me.subForm.Form.RecordSource = _
                "SELECT * " & _
                "FROM qrCheckData " & _
                "ORDER BY sCheckDataName"
            Call SetDatasourceList
        Case  1 
            If SourceObject <> "CheckData1" Then
                SourceObject = "CheckData1"
                Me.subForm.SourceObject = "frmMETA_CheckData_subCheckData1"
                Me.subForm.Form.UniqueTable = "METAB_CheckData"
                Me.lblSub.Caption = " Данные отчета"
            End If
            Me.subForm.Form.RecordSource = _
                "SELECT * " & _
                "FROM qrCheckData " & _
                "WHERE iCheckDataID=" & Mid(n.Key,  3 )
        Case Else
            If SourceObject <> "CheckData2" Then
                SourceObject = "CheckData2"
                Me.subForm.SourceObject = "frmMETA_CheckData_subCheckData2"
                Me.subForm.Form.UniqueTable = "METAB_SyntaxNode"
                Me.lblSub.Caption = " Данные узла"
            End If
            Me.subForm.Form.RecordSource = _
                "SELECT * " & _
                "FROM qrSyntaxNode " & _
                "WHERE iSyntaxNodeID=" & Mid(n.Key,  3 ) & " " & _
                "ORDER BY iSyntaxNodeParentNomer"
        End Select
    Else
        nodeKey = ""
    End If
    If Me.subForm.SourceObject <> "" Then
        Dim b As Boolean: b = modUser.IsSuperUser()
        With Me.subForm.Form
            .AllowAdditions = b
            .AllowDeletions = b
            .AllowEdits = b
        End With
    End If
    Form_Resize
    DoCmd.Hourglass False

End Function

Private Sub btnExpandAll_Click()

    DoCmd.Hourglass True
    Me.treeCtl.Visible = False
    Me.Repaint
    Me.Painting = False
    
    Dim n As node
    For Each n In Me.treeCtl.Nodes
        n.Expanded = True
    Next n

    Me.treeCtl.Visible = True
    Me.Painting = True
    DoCmd.Hourglass False

End Sub

Public Function CollapseAll()

    Dim n As node
    For Each n In Me.treeCtl.Nodes
        If n.Key = "ROOT" Then
            n.Expanded = True
        Else
            n.Expanded = False
        End If
    Next n

End Function

Public Function CollapseAllVisual()

    DoCmd.Hourglass True
    Me.treeCtl.Visible = False
    Me.Repaint
    Me.Painting = False
    
    Call CollapseAll
    
    Me.treeCtl.Visible = True
    Me.Painting = True
    DoCmd.Hourglass False

End Function

Private Sub btnCollapseAll_Click()

    Call CollapseAllVisual
    
End Sub

Private Sub btnChildOR_Click()

    Dim treeNode As node, id, idParent, sFlag, iLevel
    Set treeNode = Me.treeCtl.SelectedItem
    If Not treeNode Is Nothing Then
        Dim s As String, ss() As String
        s = treeNode.FullPath
        ss = Split(s, "\")
        Select Case UBound(ss)
        Case  0 ,  1 
            Beep
            Exit Sub
        Case Else
            iLevel =  2 
            id = CLng(Mid(treeNode.Key,  3 ))
            idParent = DLookup( _
                "iSyntaxNodeParentID", "METAB_SyntaxNode", _
                "iSyntaxNodeID=" & id)
            If Not IsNull(idParent) Then
                CurrentProject.Connection.Execute _
                    "dbo.SyntaxNode_MoveNodeToChild 'OR', " & id
            End If
        End Select
    End If
    
    If Not id >  0  Then
        Beep
        Exit Sub
    End If

End Sub

Private Sub btnChildAND_Click()

    Dim treeNode As node, id, idParent, sFlag, iLevel
    Set treeNode = Me.treeCtl.SelectedItem
    If Not treeNode Is Nothing Then
        Dim s As String, ss() As String
        s = treeNode.FullPath
        ss = Split(s, "\")
        Select Case UBound(ss)
        Case  0 ,  1 :
            Beep
            Exit Sub
        Case Else
            iLevel =  2 
            id = CLng(Mid(treeNode.Key,  3 ))
            idParent = DLookup( _
                "iSyntaxNodeParentID", "METAB_SyntaxNode", _
                "iSyntaxNodeID=" & id)
            If Not IsNull(idParent) Then
                CurrentProject.Connection.Execute _
                    "dbo.SyntaxNode_MoveNodeToChild 'AND', " & id
            End If
        End Select
    End If

End Sub

Private Sub btnCopy_Click()

    Dim treeNode As node, id, idCopy, sFlag
    Set treeNode = Me.treeCtl.SelectedItem
    If Not treeNode Is Nothing Then
        id = Null
        Dim s As String: s = treeNode.FullPath
        Dim ss() As String: ss = Split(s, "\")
        Select Case UBound(ss)
        Case  0 ,  1 
            Call modForm.GetObjectID(Me.subForm.Form, "iCheckDataID", id)
            If Not IsNull(id) Then
                CurrentProject.Connection.Execute _
                    "dbo.CheckData_CopyTree " & id
            End If
        Case Else
            'Данные текущего уровня
            id = CLng(Mid(treeNode.Key,  3 ))
            sFlag = DLookup( _
                    "sSyntaxNodeRootFlag", "METAB_SyntaxNode", _
                    "iSyntaxNodeID=" & id)
            If id >  0  Then
                idCopy = CurrentProject.Connection.Execute _
                    ("dbo.SyntaxNode_CopyNode " & id).Fields("iSyntaxNodeID")
                If idCopy >  0  Then
                    ' Key:="OP" & rsNode!iSyntaxNodeID
                    RequeryTree
                    Set treeNode = Me.treeCtl.Nodes("OP" & idCopy)
                    Call modTree.ExpandNode(Me.treeCtl.Object, treeNode, True)
                    Call Me.NodeClick(treeNode)
                End If
            End If
        End Select
    End If

End Sub

Private Sub btnDelete_Click()

    Dim treeNode As node, id, sFlag
    Set treeNode = Me.treeCtl.SelectedItem
    If Not treeNode Is Nothing Then
        id = Null
        Dim s As String: s = treeNode.FullPath
        Dim ss() As String: ss = Split(s, "\")
        Select Case UBound(ss)
        Case  0 ,  1 
            '   Удаление всего отчета
            Call modForm.GetObjectID(Me.subForm.Form, "iCheckDataID", id)
            If Not IsNull(id) Then
                On Error Resume Next
                CurrentProject.Connection.Execute _
                    "dbo.CheckData_DeleteTree " & id
                If Err.number <>  0  Then
                    '   -2147217873
                    '   DELETE statement conflicted with COLUMN REFERENCE constraint
                    '   'FK_METAB_CheckDataSchedule_METAB_CheckData'.
                    '   The conflict occurred in database 'AM',
                    '   table 'METAB_CheckDataSchedule', column 'iCheckDataID'.
                    If Err.number = - 2147217873  Then
                        MsgBox _
                            "Нельзя удалить данный проверочный отчет, " & _
                            "так как он используется в системе.", _
                            vbExclamation + vbOKOnly, _
                            "Удаления проверочного отчета"
                    End If
                    Err.Clear
                    GoTo exit_sub
                End If
                On Error GoTo  0 
            End If
        Case Else
            '   Данные текущего уровня дерева выражений
            id = CLng(Mid(treeNode.Key,  3 ))
            sFlag = DLookup( _
                    "sSyntaxNodeRootFlag", "METAB_SyntaxNode", _
                    "iSyntaxNodeID=" & id)
            If id >  0  Then
                CurrentProject.Connection.Execute _
                    "dbo.SyntaxNode_DeleteNode " & id
            End If
        End Select
        Me.treeCtl.Nodes.Remove treeNode.Key
    End If
    
exit_sub:
    Exit Sub

End Sub

Private Sub btnMoveUp_Click()

    Dim treeNode As node, id, idParent, sFlag, iLevel
    Set treeNode = Me.treeCtl.SelectedItem
    If Not treeNode Is Nothing Then
        Dim s As String, ss() As String
        s = treeNode.FullPath
        ss = Split(s, "\")
        Select Case UBound(ss)
        Case  0 ,  1 
            Beep
            Exit Sub
        Case Else
            iLevel =  2 
            id = CLng(Mid(treeNode.Key,  3 ))
            idParent = DLookup( _
                "iSyntaxNodeParentID", "METAB_SyntaxNode", _
                "iSyntaxNodeID=" & id)
            If Not IsNull(idParent) Then
                CurrentProject.Connection.Execute _
                    "dbo.SyntaxNode_MoveNodeToParent " & id
            End If
        End Select
    End If

End Sub

Public Function RequeryTree()

    Dim s As String
    s = Me.treeCtl.SelectedItem.Key
    Me.treeCtl.Nodes.Clear
    DoCmd.Hourglass True
    Me.treeCtl.Visible = False
    Me.subForm.Visible = False
    Me.Repaint
    Me.Painting = False
    
    Call modCheckData.LoadTree(Me.treeCtl.Object, Me.lstOption, False)
    CollapseAll
    Me.subForm.Form.Requery
    On Error Resume Next
    Me.treeCtl.Nodes(s).Selected = True
    Me.treeCtl.Nodes(s).EnsureVisible = True
    On Error GoTo  0 

    If SourceObject = "CheckData0" Then Call SetDatasourceList

set_focus:
    Me.subForm.Visible = True
    Me.treeCtl.Visible = True
    Me.treeCtl.SetFocus
    Me.Painting = True
    DoCmd.Hourglass False
    Exit Function
    
err_label:
    If Err.number =  35601  Then
        'Element not found
        Err.Clear
        Resume set_focus
    End If

End Function

Private Sub btnRequery_Click()

    RequeryTree
    
End Sub

Private Sub lstOption_AfterUpdate()

    RequeryTree

End Sub

Public Function CheckDataLevel()

    Dim treeNode As node, id, sFlag
    Set treeNode = Me.treeCtl.SelectedItem
    Me.treeCtl.SetFocus
    If Not treeNode Is Nothing Then
        Dim s As String, ss() As String
        s = treeNode.FullPath
        ss = Split(s, "\")
        Select Case UBound(ss)
        Case  0 ,  1 
            Call modForm.GetObjectID(Me.subForm.Form, "iCheckDataID", id)
        Case Else
            id = CLng(Mid(treeNode.Key,  3 ))
            sFlag = DLookup( _
                "sSyntaxNodeRootFlag", "METAB_SyntaxNode", _
                "iSyntaxNodeID=" & id)
            While sFlag <> "Y" And Not IsNull(id)
                id = DLookup( _
                    "iSyntaxNodeParentID", "METAB_SyntaxNode", _
                    "iSyntaxNodeID=" & id)
                sFlag = DLookup( _
                    "sSyntaxNodeRootFlag", "METAB_SyntaxNode", _
                    "iSyntaxNodeID=" & id)
            Wend
            If Not IsNull(id) Then
                id = DLookup( _
                    "iSyntaxNodeParentID", "METAB_SyntaxNode", _
                    "iSyntaxNodeID=" & id)
                Set treeNode = Me.treeCtl.Nodes("CD" & id)
            End If
        Me.treeCtl.Nodes("CD" & id).Selected = True
        Call NodeClick(treeNode)
        Me.subForm.Form.Requery
        If id >  0  Then Me.subForm.Form.Recordset.Find "iCheckDataID=" & id
        End Select
    End If
    
    CheckDataLevel = id
    Exit Function

End Function

Private Sub btnExecute_Click()
    
    Dim id: id = CheckDataLevel
    If Not id >  0  Then Beep: Exit Sub
    
    Dim rs As New ADODB.Recordset
    Set rs = Me.subForm.Form.Recordset
        
    If Not rs.EOF And Not rs.BOF Then
        Dim sCheckDataSQL_OUT As String, sCheckDataOrderBy_OUT As String, sFieldList_OUT As String
        Dim sCheckDataRunUserName_OUT As String, dtCheckDataRunDate_OUT As Date
        Dim nCheckDataRunRecordCount_OUT As Integer
        
        Dim n: n = modCheckData.ParseAndRun( _
            rs!sDatasourceName, rs!iCheckDataID, rs!bCheckDataIncludeAudit, _
            sFieldList_OUT, sCheckDataSQL_OUT, sCheckDataOrderBy_OUT, _
            sCheckDataRunUserName_OUT, dtCheckDataRunDate_OUT, _
            nCheckDataRunRecordCount_OUT)
        Select Case n
        Case - 1 
            DoCmd.Hourglass False: Beep
            MsgBox _
                "Проверочный отчет " & rs!sCheckDataName & _
                vbNewLine & vbNewLine & _
                "Не выполнен из-за неверно сгенерированных условий проверки " & _
                "или по другой причине, связанной с исполнением инструкций SQL.", _
                vbExclamation + vbOKOnly
            DoCmd.Hourglass True
        Case - 2 
            DoCmd.Hourglass False: Beep
            MsgBox _
                "Проверочный отчет " & rs!sCheckDataName & _
                vbNewLine & vbNewLine & _
                "Не задан источник данных.", vbExclamation + vbOKOnly
            DoCmd.Hourglass True
        Case - 3 
            DoCmd.Hourglass False: Beep
            MsgBox _
                "Проверочный отчет " & rs!sCheckDataName & _
                vbNewLine & vbNewLine & _
                "Не сгенерирован текст условия отбора.", _
                vbExclamation + vbOKOnly
            DoCmd.Hourglass True
        Case Is >=  0 
            If n =  0  Then
                Beep
                MsgBox _
                    "Проверка выполнена успешно. " & vbNewLine & vbNewLine & _
                    "По условиям проверки не отфильтровано ни одной записи в источника данных.", _
                    vbInformation + vbOKOnly
            Else
                Beep
                sFileName = rs!sCheckDataName
                Dim sTableFormName: sTableFormName = DLookup( _
                    "sTableFormName", "TAB_DatasourceDescription", _
                    "sDatasourceName='" & rs!sDatasourceName & "'")
                Dim s
                If Len(sTableFormName) >  0  Then
                    s = modCheckDataRun.CheckDataOption _
                    (bExcel, sFileName, bFormat, bOpen, optFieldList,  1 )
                Else
                    s = modCheckDataRun.CheckDataOption _
                    (bExcel, sFileName, bFormat, bOpen, optFieldList,  0 )
                End If
                If InStr( 1 , s, "TABLE") >  0  Then
                    Dim sOpenArgs
                    sOpenArgs = _
                        "CheckData=" & sCheckDataSQL_OUT & ";" & _
                        "FieldList=" & sFieldList_OUT
                    DoCmd.OpenForm _
                        sTableFormName, acNormal, , , acFormEdit, acWindowNormal, _
                        sOpenArgs
                End If
                If InStr( 1 , s, "EXCEL") >  0  Then
                    DoCmd.OpenForm _
                        "dlgCheckDataProgress", _
                        acNormal, , , acFormEdit, acWindowNormal
                    Dim dlg As Form_dlgCheckDataProgress
                    Set dlg = Forms("dlgCheckDataProgress")
                    dlg.lbl1.Caption = "Проверочный отчет " & vbNewLine & vbNewLine & rs!sCheckDataName
                    modCheckDataRun.ExportCheckToXLS _
                        bFormat, bOpen, optFieldList, rs!bCheckDataIncludeAudit, _
                        sFileName, rs!sDatasourceName, _
                        rs!iCheckDataID, rs!sCheckDataName, _
                        rs!sCheckDataSQL, rs!sCheckDataOrderBy, _
                        dtCheckDataRunDate_OUT, sCheckDataRunUserName_OUT, _
                        nCheckDataRunRecordCount_OUT
                    DoCmd.Close acForm, "dlgCheckDataProgress", acSaveNo
                    On Error Resume Next
                    Dim xl As Object: Set xl = CreateObject("Excel.Application")
                    xl.DisplayAlerts = True
                    xl.Workbooks.Open sFileName
                    xl.Visible = True
                    Set xl = Nothing
                    On Error GoTo  0 
                End If
            End If
        End Select
    End If
    Set rs = Nothing
    
End Sub

Private Sub btnExecuteAll_Click()

    Dim nRoot As node, id, sFlag
    Set nRoot = Me.treeCtl.Nodes("ROOT")
    NodeClick nRoot, True
    Me.treeCtl.SetFocus
    
    DoCmd.Hourglass True
    Dim rs As ADODB.Recordset
    Set rs = Me.subForm.Form.RecordsetClone
    If Not rs.EOF And Not rs.BOF Then
        rs.MoveFirst
        While Not rs.EOF
            Dim sCheckDataSQL_OUT As String, sCheckDataOrderBy_OUT As String, sFieldList_OUT As String
            Dim sCheckDataRunUserName_OUT As String, dtCheckDataRunDate_OUT As Date
            Dim nCheckDataRunRecordCount_OUT As Integer
            Dim n: n = modCheckData.ParseAndRun( _
                rs!sDatasourceName, rs!iCheckDataID, rs!bCheckDataIncludeAudit, _
                sFieldList_OUT, sCheckDataSQL_OUT, sCheckDataOrderBy_OUT, _
                sCheckDataRunUserName_OUT, dtCheckDataRunDate_OUT, _
                nCheckDataRunRecordCount_OUT)
            Select Case n
            Case - 1 
                DoCmd.Hourglass False: Beep
                MsgBox _
                    "Проверочный отчет " & rs!sCheckDataName & _
                    vbNewLine & vbNewLine & _
                    "Не выполнен из-за неверно сгенерированных условий проверки " & _
                    "или по другой причине, связанной с исполнением инструкций SQL.", _
                    vbExclamation + vbOKOnly
                DoCmd.Hourglass True
            Case - 2 
                DoCmd.Hourglass False
                Beep
                MsgBox _
                    "Проверочный отчет " & rs!sCheckDataName & _
                    vbNewLine & vbNewLine & _
                    "Не задан источник данных.", vbExclamation + vbOKOnly
                DoCmd.Hourglass True
            Case - 3 
                DoCmd.Hourglass False
                Beep
                MsgBox _
                    "Проверочный отчет " & rs!sCheckDataName & _
                    vbNewLine & vbNewLine & _
                    "Не сгенерирован текст условия отбора.", vbExclamation + vbOKOnly
                DoCmd.Hourglass True
            Case Is >=  0 
            End Select
            rs.MoveNext
        Wend
        rs.MoveLast
    End If
    Set rs = Nothing
    DoCmd.Hourglass False
    
    Exit Sub
    
End Sub

Private Sub btnCheckDataSchedule_Click()

    DoCmd.OpenForm "frmMETA_CheckDataSchedule", acNormal, , , acFormEdit, acWindowNormal

End Sub

Private Sub treeCtl_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long)

    Dim nodNode As node
    ' get the node we are over
    Set nodNode = Me.treeCtl.HitTest(x, y)
    If nodNode Is Nothing Then Exit Sub ' no node
    ' ensure node is actually selected, just incase we start dragging.
    nodNode.Selected = True
    
End Sub

' occurs when the user starts dragging
' this is where you assign the effect and the data.
Private Sub treeCtl_OLEStartDrag(Data As Object, AllowedEffects As Long)

'ccOLEDropEffectCopy = 1
'ccOLEDropEffectMove = 2
'ccOLEDropEffectNone = 0
'ccOLEDropEffectScroll = -2147483648 (&H80000000)

    ' Set the effect to move
    AllowedEffects =  2  'MSComctlLib.OLEDropEffectConstants.ccOLEDropEffectMove
    ' Assign the selected item's key to the DataObject
    Data.SetData Me.treeCtl.SelectedItem.Key
    ' we are dragging from this control
    blnDragging = True
    
End Sub

' occurs when the object is dragged over the control.
' this is where you check to see if the mouse is over
' a valid drop object
Private Sub treeCtl_OLEDragOver(Data As Object, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer)

    Dim nodNode As node
    ' set the effect
    Effect =  2  'MSComctlLib.OLEDropEffectConstants.ccOLEDropEffectMove
    ' get the node that the object is being dragged over
    Set nodNode = Me.treeCtl.HitTest(x, y)
    If nodNode Is Nothing Then
        Effect =  0  'MSComctlLib.OLEDropEffectConstants.ccOLEDropEffectNone
        Exit Sub
    End If
    If _
        nodNode.Key = "ROOT" Or Left(nodNode.Key,  2 ) = "CD" Or _
        blnDragging = False _
    Then
        ' the dragged object is not over a node, invalid drop target
        ' or the object is not from this control.
        Effect =  0  'MSComctlLib.OLEDropEffectConstants.ccOLEDropEffectNone
        Exit Sub
    End If
    
End Sub

' occurs when the user drops the object
' this is where you move the node and its children.
' this will not occur if Effect = vbDropEffectNone
Private Sub treeCtl_OLEDragDrop(Data As Object, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)

    Dim strSourceKey As String, idSource As Long
    Dim nodTarget As node, idTarget As Long
    ' get the carried data
    strSourceKey = Data.GetData( 1 )
    ' get the target node
    Set nodTarget = Me.treeCtl.HitTest(x, y)
    If _
        nodTarget Is Nothing Or _
        nodTarget.Key = "ROOT" Or _
        Left(nodTarget.Key,  2 ) = "CD" _
        Or blnDragging = False _
    Then
        Effect =  0 
        Beep
        Exit Sub
    End If
    idTarget = CLng(Mid(nodTarget.Key,  3 ))
    idSource = CLng(Mid(strSourceKey,  3 ))
    If idTarget = idSource Then
        Effect =  0 
        Beep
        Exit Sub
    End If
    ' if the target node is not a folder or the root item
    ' then get it's parent (that is a folder or the root item)
    ' move the source node to the target node
    Set Me.treeCtl.Nodes(strSourceKey).Parent = nodTarget
    CurrentProject.Connection.Execute _
        "UPDATE dbo.METAB_SyntaxNode " & _
        "SET " & _
            "iSyntaxNodeParentID=" & idTarget & ", " & _
            "iSyntaxNodeParentNomer=(" & _
                "SELECT MAX(iSyntaxNodeParentNomer) " & _
                "FROM dbo.METAB_syntaxNode " & _
                "WHERE iSyntaxNodeParentID=" & idTarget & _
            ") + 1 " & _
        "WHERE iSyntaxNodeID=" & idSource
    Me.subForm.Requery
    ' NOTE: You will also need to update the key to reflect the changes
    ' if you are using it
    ' we are not dragging from this control any more
    blnDragging = False
    ' cancel effect so that VB doesn't muck up your transfer
    Effect =  0 
    
End Sub

...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767631
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда... на слабенькую четвёрочку. Хотя, дело вкуса. Мне так себе, не очень. Какой-то я занудой стал - ничего не нравиться. :)
А как моё на твой опытный взгляд?
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767636
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
'Я так делал. Можно добавить что хош. Кликнув по лженоду.
Private Sub tvwRules_DblClick()
On Error GoTo Err_tvwRules_DblClick

    Dim oTvw As Object: Set oTvw = Me.tvwRules
    Dim sNewItemName As String
    Dim oNode, oNode1 As node
    
    If Left(oTvw.SelectedItem.Key,  2 ) = "NC" Then
    
        sNewItemName = InputBox("Įveskite pavadinimą", MsgBoxTitle)

        If StrPtr(sNewItemName) =  0  Or sNewItemName = "" Then Exit Sub
            
        Dim rs As ADODB.Recordset: Set rs = New ADODB.Recordset
        
        CurrentProject.Connection.Execute _
            ("INSERT INTO dbo.TBD_Rules (iParentID, sName, bHideInAppFlag) " & _
             "VALUES (0, '" & sNewItemName & "', 0)")

        rs.Open "SELECT @@identity as ID", CurrentProject.Connection
               
        Set oNode = oTvw.Nodes.Add(Text:=sNewItemName, Key:="T" & rs!Id)
         
        rs.Close: Set rs = Nothing
        
    End If

Exit_tvwRules_DblClick:
    Exit Sub
    
Err_tvwRules_DblClick:
    Call custError(Err.Number, Me.Form.Name, "tvwRules", "tvwRules_DblClick")
    Resume Exit_tvwRules_DblClick

End Sub

'Потом его назвать как надо. Хотя, пожалуй у тебя лучше - нехрем пользователям ноды называть.
Private Sub tvwRules_AfterLabelEdit(Cancel As Integer, NewString As String)
On Error GoTo Err_tvwRules_AfterLabelEdit

    CurrentProject.Connection.Execute _
        ("UPDATE dbo.TBD_Rules SET sName = '" & NewString & "' WHERE iRuleID = '" & _
         Mid(Me.tvwRules.SelectedItem.Key,  2 ) & "'")

Exit_tvwRules_AfterLabelEdit:
    Exit Sub
    
Err_tvwRules_AfterLabelEdit:
    Call custError(Err.Number, Me.Form.Name, "tvwRules", "tvwRules_AfterLabelEdit")
    Resume Exit_tvwRules_AfterLabelEdit
    
End Sub

'Потом вставить его куда надо. При указании родителя, тригеры на скуле сами всё прописывают.
Private Sub tvwRules_OLEDragDrop(Data As Object, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
On Error GoTo Err_tvwRules_OLEDragDrop

    Dim tvw As TreeView, strKey As String, strText As String
    Dim nodNew As node, nodDragged As node
    Dim rs As ADODB.Recordset: Set rs = New ADODB.Recordset

    rs.Open _
        ("SELECT * FROM dbo.TBD_Rules"), CurrentProject.Connection, adOpenDynamic, adLockOptimistic

    Set tvw = Me.tvwRules.Object
    
    If tvw.SelectedItem Is Nothing Then
    Else
        Set nodDragged = tvw.SelectedItem
        If tvw.DropHighlight Is Nothing Then
            strKey = nodDragged.Key
            strText = nodDragged.Text
            tvw.Nodes.Remove nodDragged.Index
            rs.Find "[iRuleID]=" & Mid(strKey,  2 )
            rs![iParentID] =  0 
            rs.Update
            Set nodNew = tvw.Nodes.Add(, , strKey, strText)
            AddChildNodesTotvwRules nodNew, rs![iRuleID]
        ElseIf nodDragged.Index <> tvw.DropHighlight.Index Then
            Set nodDragged.Parent = tvw.DropHighlight
            rs.Find "[iRuleID]=" & Mid(nodDragged.Key,  2 )
            rs![iParentID] = Mid(tvw.DropHighlight.Key,  2 )
            rs.Update
        End If
            
    End If

    Set nodDragged = Nothing
    Set tvw.DropHighlight = Nothing

Exit_tvwRules_OLEDragDrop:
    Exit Sub
    
Err_tvwRules_OLEDragDrop:
    Call custError(Err.Number, Me.Form.Name, "tvwRules", "tvwRules_OLEDragDrop")
    Resume Exit_tvwRules_OLEDragDrop

End Sub
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767732
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если дерево большое, то верхний лженод уползает за край контрола. А кнопки сверху остаются прибитыми.
Либо делать контекстное меню. В целом очень хорошо смотрится. А я тулбары поленился вставить - обычными копочками обхожусь. Если есть стандартный аксесный функционал - использую его, другие элементы - если только без них никак. Но у тебя тулбары смотрятся очень хорошо.
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767806
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, спасибо. Аж крылья выросли :)

Ага, нод уползёт, не подумал :(
Кнопки - не совсем то. У меня на месте твоих кнопок тулбар. Если делать кнопки - то тулбар надо в меню переносить, а это тоже как-то не очень. Всё что связано с формой - у меня вызывается кнопками на форме. В меню только система, вызов основных форм, инструменты, справка (будет :) )
Над контекстным меню долго думал - но не понравилось, то, что пока не райткликнеш - не видешь что можно сделать. Не дружелюбно получается - типо полазь, покликай - тогда узнаешь где, что и как. А до следующего раза уже и забудешь. Хочу, чтоб всё перед глазами было.
Прям не знаю...
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767872
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любительобрати внимание внизу на связь драг-н-дропа с T-SQL процедурамиА шо там? На что именно внимание обратить?
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34767953
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, не правильно выразился. на кнопках Вложить AND, Вложить OR, Копия, Удалить идет вызов процедур, делающих изменения в дереве. Хотя зря я про это акцентировал, вещь очевидная, ты и сам таким же образом реализуешь логику в сервере, а не на клиенте.
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34768075
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идеи наверное других вариантов и нет - только меню, тулбар, кнопки и мой вариант? Типа абламися и выбери что меньше всего не нравиться. Isn't it?
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34768084
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще голосом продиктовать или встроить ИИ, чтобы система сама все думала и делала, пока ты ноги на стол сидишь.
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34768124
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, можно и голосом. Но тоже не удобно, одно обучение программы чего стоит. А если серьёзно, то есть ещё способы, и очень удобные, просты я до них ещё не додумался ;)))
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34770951
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Додумался. Все команды для дерева на дополнительную кнопку "Дерево" в тулбаре повесить! И тулбар дополнительный ненадо, и на передний план не выходит. И похоже на контекстное меню, и в то же время всегда перед глазами.
ЗЫ: Конечно, ерунда, а мне понравилось. Буду так делать :)
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34770977
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как только убираешь кнопки, выполняющие нужные действия, с формы куда-то чуть глубже - у тупых юзверей сразу возникает трудность в том, что не могут найти.
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34771013
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот потому я не хотел контекстное меню - постоянно спрашивают куда пропало (уже думал просто издеваются :)
Навесить все команды для дерева (ими то редко пользуются) на форму рядом с "полноценными" кнопками (типа проводки, новый, которые открывают другие формы) - тоже не хотел, т.к. те основные "потерялись бы" в общей куче.
А так по-мойму нормально. Дерево, и там всё что связано с деревом. Проводки - там всё для проводок. Выход.
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34771099
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А шо за lstOption ?
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34771124
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И где фукция для прокрутки дерева при драге/дропе? просто не нужна или как-то обходишь?
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34771268
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она сама прокручивается правильно.

lstOption - задает выводить ли латинские идентификаторы таблиц/полей либо русские коменнтарии из моих дополнительных к INFORMATION_SCHEMA... таблиц. Просто для удобства. Иногда лучше так - иногда - эдак.
...
Рейтинг: 0 / 0
Отдельный топик для Быкиса и П-Л по совету Вади
    #34771303
Фотография Быкис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительlstOptionТак это комба, которая на форме? cbo нада писать, путаешь тут панимашли :)

Программист-ЛюбительОна сама прокручивается правильно.???? Научи, у меня не прокручивается.
...
Рейтинг: 0 / 0
25 сообщений из 323, страница 9 из 13
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отдельный топик для Быкиса и П-Л по совету Вади
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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