Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7 8      [все]
 TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Нашел ссылку. http://www.jkp-ads.com/articles/treeview.asp Еще не опробовал. Если кто успеет первый, сюда бы хорошо комментарии.
29 апр 13, 09:04    [14242156]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
В аксесовском демо у меня не работает скроллинг
29 апр 13, 09:16    [14242189]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
guest_rusimport
Guest
Программист-Любитель,

скроллинг не работал по причине свойства .Height у контрола TreeControl в классе clsTreeView, которое отсутствует в свойствах этого объекта, как "вылечить" пока не разобрался, но линейки прокрутки "починил"

К сообщению приложен файл (Treeview_Access.zip - 141Kb) cкачать
29 апр 13, 11:23    [14242979]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
InsideHeight есть у него.
29 апр 13, 11:31    [14243041]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
guest_rusimport
Guest
П-Л,

InsideHeight пробовал , ерунда какая-то получается
29 апр 13, 12:26    [14243469]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
??? Хде ерунда ? При использовании в коде InsideHeight и от клавиатуры скроллирует вверх-вниз в твоем варианте файла атлична!
29 апр 13, 12:39    [14243577]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
guest_rusimport
Guest
П-Л,

в моем то примере скроллирует "атлична", в вот в этом , где всё заменено на InsideHeight, чо то "не пашет", может у тебя по другому будет

К сообщению приложен файл (Treeview_Access1.zip - 141Kb) cкачать
29 апр 13, 13:44    [14243970]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Огромное ВСЕМ СПАСИБО!!!

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

у меня акс64 и все работает, демо правда, но уже хорошо!!!
29 апр 13, 14:45    [14244383]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Я ждал, когда Алекс на своих новомоднейших аксесах проверит.
29 апр 13, 15:25    [14244647]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,

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

на самом деле мне очень понравилась возможность на тривью показывать структуру и состав в человеческом виде, а на 64 разрядке такой возможности просто не было, теперь хоть надежда появилась...
29 апр 13, 15:50    [14244889]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
По моему, я тебе давал код хорошей формы с тривью на голом вба, без моего фреймворка. Если доработаешь напильником, взлетит.
29 апр 13, 16:49    [14245336]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Программист-Любитель,

пробовал, на х64 выдавал ошибки, на 2007 по моему все получалось, если нетрудно (извиняй пожалуйста) выдай еще разок или хоть ссылку дай, не сочти за наглость с моей стороны, пожалуйста
29 апр 13, 16:57    [14245403]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Этаж искать нада... Дома поищу. Я чего-то специально под твою БД делал.
29 апр 13, 17:06    [14245461]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Программист-Любитель,

ЖДУ с нетерпением!!!! заранее огромное спасибо!!!
29 апр 13, 18:34    [14245915]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
~интересно
Guest
хм.. а ведь полезная в хозяйстве вещь. спасибо П-Л за ссылку
нужно осваивать и не только из-за проблем с битностью

guest_rusimport
всё заменено на InsideHeight, чо то "не пашет"

значит не всё
там еще и Width того же TreeControl нужно на InsideWidth заменить, тогда все будет гуд
2 май 13, 10:41    [14253908]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
У меня заработало это дерево в адп проекте. Скоро смогу выложить для Алекса пример приложения с формами для ввода структуры изделия не на стандартном тривью, а на этом.
3 май 13, 19:41    [14256504]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Вниманию Алекса,

Есть приложение с формой структуры изделия на апишном тривью. Можешь загрузить и попробовать запустить в своем операционном окружении. Сейчас сделаю архивы и выложу.

К сообщению приложен файл. Размер - 92Kb
4 май 13, 09:54    [14257451]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Начинаю выкладывание файлов, думаю, что они будут полезны Алеску и Изерлорнеру.

1. Схема данных в виде картинки ПДФ

К сообщению приложен файл (Схема данных Детали, Сборки, Изделия.pdf - 69Kb) cкачать
4 май 13, 12:55    [14257650]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
2. Скрит t-sql создающий запросы, используемые в приложении

К сообщению приложен файл (Sborka.sql - 12Kb) cкачать
4 май 13, 12:56    [14257651]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
3. Маленький скрипт создания линкованного сервера для демонстрации работы примера дерева на данных MDB

К сообщению приложен файл (LinkedServer.sql - 832bytes) cкачать
4 май 13, 12:57    [14257656]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
4.1 из 5 порезанный архзив адп файла

К сообщению приложен файл (Sborka.1.Кодирование_2013-05-04.part01.rar - 97Kb) cкачать
4 май 13, 12:58    [14257658]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
4.2 из 5

К сообщению приложен файл (Sborka.1.Кодирование_2013-05-04.part02.rar - 97Kb) cкачать
4 май 13, 12:59    [14257659]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
4.3 из 5

К сообщению приложен файл (Sborka.1.Кодирование_2013-05-04.part03.rar - 97Kb) cкачать
4 май 13, 12:59    [14257661]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
4.4 из 5

К сообщению приложен файл (Sborka.1.Кодирование_2013-05-04.part04.rar - 97Kb) cкачать
4 май 13, 13:00    [14257663]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
4.5 из 5

К сообщению приложен файл (Sborka.1.Кодирование_2013-05-04.part05.rar - 36Kb) cкачать
4 май 13, 13:00    [14257666]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
5.1 из 2 Бэкап базы данных Ms SQL 2005

К сообщению приложен файл (Sborka_Backup2005_20130504.part01.rar - 97Kb) cкачать
4 май 13, 13:02    [14257668]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
5.2 из 2

К сообщению приложен файл (Sborka_Backup2005_20130504.part02.rar - 47Kb) cкачать
4 май 13, 13:03    [14257669]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Программист-Любитель,

при нажатии на кнопку "перестроить все" в форме frmIzdelieTreeAPI выдает ошибку 91 "Object variable or With block variable not set"
ссылается на
Call Me.RebuildTree
. Что поправить нужно что бы заработало? Пытался перкомпилировать - не помогло.
4 май 13, 20:50    [14258502]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Я сейчас ощибку отловлю. Пока просто походи по разным изделиям - дерево перестраивается ?
4 май 13, 20:58    [14258528]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Не перестраивается. Буду исправлять.
4 май 13, 20:59    [14258534]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Программист-Любитель,

я спать. У нас три ночи.
Христос Воскресе!
4 май 13, 21:04    [14258549]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Воистину воскресе!

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

+

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


Сообщение было отредактировано: 4 май 13, 22:20
4 май 13, 21:41    [14258630]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
СхБд
Guest
Программист-Любитель
Извините, спойлер не туда вставил...
поф
спасибищще!
4 май 13, 22:00    [14258658]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Приветствую!!

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

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

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

пишет :

К сообщению приложен файл. Размер - 19Kb
6 май 13, 08:44    [14261156]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Только что скачал без проблем. Дело в твоем броузере. Насколько понимаю, у Изерлонера тоже скачалось.
6 май 13, 08:54    [14261166]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,

работаю с роутера фрештел, никаких проблем ни разу не было, все скачалось, только вот указанное не могу скачать, выставь пожалуйста еще раз...
6 май 13, 08:57    [14261172]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Не смогу. Может кто из завсегдатаев не поленится скачать и приложить заново ?
6 май 13, 09:00    [14261179]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,

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

К сообщению приложен файл. Размер - 42Kb
6 май 13, 09:15    [14261206]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
////
Guest


К сообщению приложен файл (Схема данных Детали, Сборки, Изделия.pdf - 69Kb) cкачать
6 май 13, 09:15    [14261208]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Спасибо, добрый человек!
6 май 13, 09:17    [14261211]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
////,

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

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

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

Alex999kon@mail.ru
6 май 13, 09:20    [14261216]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
alex999kon
П-Л,

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

Читай бол. Галку не поставил Перезаписать текущее содержмимое той базы что уже есть у тебя сейчас на сервере.
6 май 13, 09:20    [14261217]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,

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

все получилось, пробую, а скачать пдф так и не получилось, ни через роутер ни через прокси, странно что все остальное качать дает...
6 май 13, 09:23    [14261227]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Развернешь базу - в ней будет диаграмма данных, которая в ПДф, так что он как таковой тебе и не нужен.
6 май 13, 09:25    [14261234]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,

чето не догадался, спасибо, кстати пробую открывать формы выдает сообщения об ошибках..
сейчас работаю под вин 7-32 с скл 2008 р2, вот скрин...

К сообщению приложен файл. Размер - 19Kb
6 май 13, 09:27    [14261241]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Вы все будете смеяться но из под YANDEXA такое же сообщение...
6 май 13, 09:29    [14261248]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
а вот EXPLORER скачал, и даже показал...

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

насчет ошибок открытия форм-
думается мне что нужно перекомпилировать только вот не знаю как это по-правильнее что-ли, подскажите... плиз...
6 май 13, 09:32    [14261260]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Надо проверить в вба все ссылки. Все ссылки стандартные для а2003. Решить проблему, если есть миссинг. Проверить, компилируется ли проект.

Покажи принтскрин окна ссылок.
6 май 13, 09:36    [14261269]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,

пока пробовал вот что получил:

К сообщению приложен файл. Размер - 49Kb
6 май 13, 09:39    [14261286]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
alex999kon,

насчет окна ссылок, имеется ввиду наверное в отладчике tools - reference? если я правильно понял...
6 май 13, 09:40    [14261291]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Ты не показал окно ссылок.
6 май 13, 09:40    [14261293]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,
чуть ранее об этом и справшивал
6 май 13, 09:41    [14261298]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
alex999kon
насчет окна ссылок, имеется ввиду наверное в отладчике tools - reference? если я правильно понял...

Да.
Для фотографирования окон завели себе програмку, чтобы снимать только нужное. Я пользуюсь доисторическим стандартныс микрософтским HTML Help Image Editor. Скачивается и работает без вопросов.
6 май 13, 09:43    [14261308]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,
прости, но я несколько не понял, скрин то не все равно в чем, делаю Ctrl-Alt-PrintScreen, потом в paint и вырезаю что хочу показать, дело еще в том что работаю на двух мониторах, приходится брать нужное, на одном экране акс на другом скл, удобно...
6 май 13, 09:47    [14261330]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
для наглядности:

К сообщению приложен файл. Размер - 126Kb
6 май 13, 09:50    [14261345]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Вот я ИМЕННО об этом. В той программе, что я предложил, можно выбрать одно конкретное окно или даже часть окна. Вырезать в ней очень удобно, можно до пикселя, но этот чаще всего просто не нужно.

Скачай, поставь, пользуйся.
6 май 13, 09:50    [14261347]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,

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

насчет нашей темы - что-то никак не получается ничего, что-то я совсем обмяг...
6 май 13, 09:52    [14261353]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
скачал, если не сразу получится не гневись сильно то....
6 май 13, 09:55    [14261366]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
думается предложить ПЛ подлючиться ко мне по TeamViewer, попробовать, может что-то у меня в корне что-то не так... кк считаешь
6 май 13, 09:58    [14261381]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
П-Л
alex999kon
П-Л,

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

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

А что и так можно? А я предварительно сношу базу, прежде чем восстановить ее из бэкапа.
6 май 13, 10:44    [14261562]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
alex999kon
думается предложить ПЛ подлючиться ко мне по TeamViewer, попробовать, может что-то у меня в корне что-то не так... кк считаешь

Алекс, у меня многие вещи решаются тупо настойчивостью. Определил область поиска. Тыкнул сначала так, потом иначе, потом еще по другому. Тупо, но действенно. Если долго не получается, анализирую чего делал, а может область определил не верно. Вношу коррективы и по новой.
6 май 13, 10:49    [14261590]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
извиняюсь за задержку, тут поздравлялок с ДР много накопилось, отвлекли....

выдаю ссылки (если правильно понял), вроде как все на месте....

К сообщению приложен файл. Размер - 14Kb
6 май 13, 11:06    [14261700]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Снимай галку с миссинг коммонконтролз.

За что боролись-то ? И старуу форму изделия со стандартным тривью не открывай.
6 май 13, 11:09    [14261709]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
делаю..
6 май 13, 11:09    [14261714]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
делаю сжать восстановить, запускаю форму frmTreeViewAPI в ответ:

К сообщению приложен файл. Размер - 7Kb
6 май 13, 11:11    [14261723]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
пытаюсь найти плохие места через Debug - Compile выдает

К сообщению приложен файл. Размер - 46Kb
6 май 13, 11:13    [14261730]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
1. Убей форму на стандартном тривью или закоментируй весь ее код.

2.
В загрузке был скрипт создания линкед сервера.
В топике выше был исходный пример кустомного тривью в аксесе.
Скрипт создает линкед сервер, использующий данные этого мдб. Тебе нужно выполнить его без ошибок, со всеми правильными каталогами и именами файлов как у тебя будут расположены эти файлы.
Линкед сервер нужен для демоформы, максимально близкой к исходному примеру тривью, но на платформе адп.
6 май 13, 11:22    [14261767]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,

понял, пробую, по результату отпишусь
6 май 13, 11:23    [14261775]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
alex999kon
тут поздравлялок с ДР много накопилось, отвлекли....

Я смотрю у нас не только области деятельности схожи. Поздравляю!
6 май 13, 11:30    [14261802]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Изерлонер,

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

только это не меня поздравляли а сотрудников, положено присутствовать.... (если Вас правильно понял)
6 май 13, 12:12    [14262035]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
мало что могу прокомментировать но вот что получилось:

К сообщению приложен файл. Размер - 93Kb
6 май 13, 13:41    [14262624]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,

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

только вот вопрос: почему в Добавление новой детали или сборки надо вручную прописывать код элемента, это так задумано или автосчетчик не получилось, объясни плиз.
6 май 13, 13:48    [14262682]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Патамучта у тебя код - номенклатурный код, задаваемый по твоим сложным правилам. Айди (ПК) прекрасно задается сам в момент вставки записи. ПК автосчетчики выделены ярко-зеленым фоном.
6 май 13, 13:56    [14262753]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
П-Л,
ну теперь понятно, просто с самого начала заложилось название "Код Элемента" а как бы надо "Обозначение Элемента"

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

спасибо, на связи...
6 май 13, 14:19    [14262923]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
добавлю как уточнение - неприложных элемента атрибута- Обозначение и Наименование

так наверное правильнее будет...
6 май 13, 14:21    [14262934]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
Кстати, на последнем снимке картинка плохая. При выборе узла в дереве слва на панелях справа вверху должны быть данные этого узла, справа внизу - узлы, непосредственно в него входящие. ДОЛЖНО работать так. Если так не работает - плохо.

Код формы, который в спойлере, вставил в форму ? В загрузке код формы с ошибками, после замечания Изерлорнера я исправлял, но выладывал только вба код формы изделия.
6 май 13, 14:38    [14263047]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
П-Л
но выладывал только вба код формы изделия.

Вставлять частями. При попытке выделить весь код и заменить его на корректный - акс вылетает. Я вставлял попроцедурно.
видимо возникает конфликт при замене = удаление, вставка. Акс при удалении пытается привязать ссылки к отсутствующему коду. Наверное так.
6 май 13, 16:33    [14263934]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Изерлонер, могу посоветовать как уменьшить вероятность вылетания акса 2003-2007/10 и застраховаться от последствий любых крахов клиента.

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

Хранилище VSS лучше устроить на отдельном диске.
6 май 13, 21:50    [14264786]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Установил скл 2012 под вин 2012, акс 2010 х64...

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

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

не знаю как быть...

К сообщению приложен файл. Размер - 15Kb
7 май 13, 14:27    [14267827]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
и сразу чтоб потом не дожидаться указаний

К сообщению приложен файл. Размер - 11Kb
7 май 13, 14:28    [14267837]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
несколько подзабыл, поэтому делал и так, результат тот же
7 май 13, 14:30    [14267864]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250


К сообщению приложен файл. Размер - 12Kb
7 май 13, 14:31    [14267869]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Какое отношение бэкап серверной части может иметь к клиентскому 64 битному коду вба ? Debug / Compile дает какие-нибудь сообщения ?

ВБАшный код тебе придется копать самому - у меня в планах нет установки чего-нибудь 64 битного.
7 май 13, 14:34    [14267897]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Debug / Compile - скрин

К сообщению приложен файл. Размер - 27Kb
7 май 13, 14:42    [14267966]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
опять же если при восстановлении базы из бэкапа нет сообщений об ошибке то я считаю что все нормально
7 май 13, 14:43    [14267975]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
qwerty112
Guest
алекс, ты же, не далее как вчера "разорялся" про отличия ВБА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.
Declare PtrSafe Function RegOpenKeyA Lib "advapi32.dll" (ByVal Key As LongPtr, ByVal SubKey As String, NewKey As LongPtr) As Long

7 май 13, 14:49    [14268029]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
насчет разницы 6 и 7 вба - это я упомянул ответ в мой адрес в одной из тем...

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

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

К сообщению приложен файл. Размер - 56Kb
7 май 13, 14:57    [14268099]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Я никогда не смотрю запросы в конструкторе. Лучше бы ты диаграмму данных открыл.

Меняй описания в ВБА коде. Конкретный хелп тебе показали.
7 май 13, 15:00    [14268124]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
как раз в это время менял (добавлял для совместимости ) в Declare Function на Declare PtrSafe Function, debug-compile перестал но выдал :

К сообщению приложен файл. Размер - 18Kb
7 май 13, 15:03    [14268145]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
по памяти структура в диаграмме вроде бы такая же как и акс2007 и скл 2008:

К сообщению приложен файл. Размер - 33Kb
7 май 13, 15:05    [14268170]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
qwerty112
Guest
alex999kon
как раз в это время менял (добавлял для совместимости ) в Declare Function на Declare PtrSafe Function, debug-compile перестал но выдал :

а какой тип у переменной nRecords ?
7 май 13, 15:16    [14268265]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
чем могу:

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 _
)

взял через копию прямо из отладчика в аксе
7 май 13, 15:22    [14268315]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
qwerty112
Guest
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 (?)
7 май 13, 15:28    [14268377]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
не понял насчет мутно, это текст а не принтскрин,

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

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

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

----
7 май 13, 15:31    [14268399]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
заменил
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 LongPtr, _
sSQL As String, _
Optional cnn = Null, _
Optional sServerName As String = "", _
Optional sDatabaseName As String = "", _
Optional iCommandTimeout As Integer = 800 _
)

заменил везде, ошибка исчезла, но появилась другая: nCount - на что заменить пока не нашел...
7 май 13, 16:03    [14268688]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
nRecords и nCount - переменные должны быть одинакового типа.
Во что ж это лонг мутировал...
7 май 13, 16:09    [14268756]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Программист-Любитель,

спасибо, а я уже многое что перелопатил что ж такое nCount пока не нашел, ну а если это переменные то надо пошукать
7 май 13, 16:21    [14268895]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
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
7 май 13, 16:22    [14268909]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
что ж они получается Long тоже заменили
7 май 13, 16:22    [14268923]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Фаиндом nCount пошукай по проекту. Ну и компил должен выдавать строку, где ошибка.

Они тоже у меня всегда лонги были.
7 май 13, 16:23    [14268937]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Программист-Любитель
Фаиндом nCount пошукай по проекту. Ну и компил должен выдавать строку, где ошибка.

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


имеешь ввиду посиком, если да то уже давно ищу
7 май 13, 16:32    [14269043]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
имеешь ввиду посиком - ПОИСКОМ, если да то уже давно ищу
7 май 13, 16:33    [14269055]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
И что, фаиндом по всему проекту можно не найти конкретное имя переменной ? Поделись секретом, как.
7 май 13, 16:46    [14269173]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Программист-Любитель,

ну какбы и не смешно совсем, просто CtrlF действует почему то не на весь модуль а только на активный, несколько заблудился видать...
7 май 13, 16:48    [14269201]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Программист-Любитель,

у меня как то вот так при Compile с последующим поиском получается (выделяет желтым)

К сообщению приложен файл. Размер - 43Kb
7 май 13, 16:50    [14269212]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
qwerty112
Guest
alex999kon
Программист-Любитель,

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

вот, на твоём же рисунке видно, - есть переключатель "Где искать" (Search)
выбери "Current Project"
7 май 13, 16:56    [14269275]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
нашел!!!!!!!!!!

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 выдает ошибку при компиле
7 май 13, 16:57    [14269279]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
cylindr
Member

Откуда:
Сообщений: 321
alex999kon,

Вы принципиально не пользуетесь тэгами в оформлении сообщений? Ваш код очень трудно читать.
8 май 13, 03:16    [14271021]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
cylindr
alex999kon,

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


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

тем более что в самом аксе также все и выглядит, поэтому опасаясь испортить привычный вид не трогаю...
8 май 13, 08:22    [14271179]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
П-Л
Guest
У ошибки есть текст ?

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

Ну и с тегами отмазка совсем гнилая. Еще б и в спойлер убирать, чтобы скроллировать поменьше надо было.
8 май 13, 09:02    [14271258]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ЫLL HEAD
Member [заблокирован]

Откуда: Сибирь
Сообщений: 695
alex999kon
тем более что в самом аксе также все и выглядит, поэтому опасаясь испортить привычный вид не трогаю...
я в шоке
8 май 13, 09:11    [14271293]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
ПЛ, я тебя понял, буду пробовать, по ркезультату отпишусь...

насчет тэгов - не уверен что это главное , тем более при поиске правильности в нашей теме... как то вот так
8 май 13, 10:42    [14271920]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
cylindr
Member

Откуда:
Сообщений: 321
alex999kon
при поиске правильности в нашей теме.


Здесь вы не правы, это не только ваша тема. Есть и другие люди, которым интересно.
8 май 13, 12:22    [14272831]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
cylindr,

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

тем более здесь на ФОРУМЕ!!!!
8 май 13, 15:07    [14274219]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Программист-Любитель,

я попытался использовать твой модуль с быстрым поиском по тексту в своей базе... ну в общем получилось частично. Вот эта функция работает безупречно:
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


А вот здесь проблема:
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). При этом поиск по другим столбцам, кроме первого, не производится вообще. Может я что-то делаю не так?
12 май 13, 07:29    [14283323]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Наверняка неправильно указаны аргументы при вызове функции. Поиск расчитан как на обычные поля так и на комбо-лукапы. Если простое поле, то проблем нет - в нем нашли образец, на него же встали. В случае комбо ищется по некоему текстовому полю (его может не быть на форме), а встаем фокусом на айди, сделанный в виде комбобокса. Отсюда необъодимость задавать такой массив строк.
Каждый элемент массива - строка для поиска по одному из полей. Содержит три имени поля, разделенный ;
Первое имя поля - поле где ищем.
Второе - имя ПК поля для синхронизации рекордсетов. (Аксиома: все ПК - автосчетчики, ПК из ОДНОГО поля)
Треье поле - куда встаем фокусом.

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

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

Попробуй задать параметры функции правильно.
12 май 13, 10:20    [14283383]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Программист-Любитель
Каждый элемент массива - строка для поиска по одному из полей. Содержит три имени поля, разделенный ;


Теперь дошло.
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

Все работает корректно :)
12 май 13, 10:40    [14283411]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
интересная вещь получается:

заменил nCount As Long: на nCount As LongLong:по всему модулю, сжал восстановил, вот что выдало (переменную nRecords) пока не трогал, вот скрин по запуску

К сообщению приложен файл. Размер - 33Kb
13 май 13, 09:44    [14285905]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
т.е. запуск ТрииВью начался, просто где то ошибка из-за несоответствия типов данных в новом аксе...
13 май 13, 09:45    [14285908]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Трассировать надо. Смотреть, где в 64 битном аксесе затыкается. Там код очень простой, надо поставить брейкпоинт на начало загрузки данных, чтобы гаранитировано попасть в код до ошибки.

С этими непонятными лонгами я бы лучше вариант тип данных сделал. nRecords и nCount должны быть обязательно одного типа.
13 май 13, 09:52    [14285944]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
спасибо, будем копать...

только помоги (чтоб не ошибиться), как поставить точку останова брэкпоинт (вообще тема известная по другим отладчикам, в аксе пока не сталкивался...) не сочти за что-то нехорошее с моей стороны...
13 май 13, 09:55    [14285963]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
пока вот что нашел:

nRecords As LongPtr, причем в нескольких местах, теперь не знаю что лучше сделать чтобы одинаковые типы данных были, что лучше сделать LongLong или LongPtr
13 май 13, 09:57    [14285982]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Купи книжку по аксесу и прочитай. Писать такие основы на форуме вряд ли хоть кто-то будет.
13 май 13, 09:57    [14285984]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
qwerty112
Guest
alex999kon
спасибо, будем копать...

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

кнопку Debug, для начала, нажми, и посмотри на какую строку кода "выкинет"
нуу и тут можешь показать
13 май 13, 09:58    [14285990]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Debug Compile я делаю, получаю место и описание ошибки, думалось что как в отладчике TurboDubugger можно поставить точки останова с выводом результатов на точку, видать ошибался....

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

извини за кривость изложения...
13 май 13, 10:02    [14286017]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
qwerty112
Guest
ФАК по средствам отладки
13 май 13, 10:03    [14286024]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
и все таки что лучше использовать в качестве типа данных LongLong или LongPtr, почему спрашиваю, ведь взаимодействие этих переменных возможно с другими переменными, так вот, если заменить на один тип то с другими переменными могут возникать теже грабли, считаю надо определить с единым типом данных, посоветуйте что правильнее будет...
13 май 13, 10:04    [14286034]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
пытался заменить As LongPtr на As LongLong, выдает ошибку, делал наоборот, т.е. менял As LongLong на As LongPtr, результат один и тот же....

К сообщению приложен файл. Размер - 28Kb
13 май 13, 10:11    [14286073]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
и вот еще, пока не понял что это, разбираюсь, в смысле ищу...

К сообщению приложен файл. Размер - 22Kb
13 май 13, 10:41    [14286226]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
qwerty112
Guest
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
как если бы было
#if Win64 then
   Dim Param as LongLong
#else
   Dim Param as Long
#end if

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

зы
но последнии ошибки НЕ связаны с типами Long/LongLong,
это я так, "навсякий", вдруг "не дошло"
13 май 13, 10:51    [14286272]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
спасибо!!

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

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

спасибо за помощь....
13 май 13, 11:11    [14286364]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Алекс, очевидно ты неаккуратными реплейсами испортил "Long" в других частях проекта (modSQL.AddLong(...)) . Я могу дома переделать все "свои" лонги на варианты и выложить заново.
13 май 13, 11:12    [14286373]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
подозрение правильно но ведь я ж тоже не совсем туп...

исправлял только там где былыи указания на тип данных, т.е. 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
13 май 13, 11:15    [14286382]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ih
Member [заблокирован]

Откуда:
Сообщений: 6
насколько помню - as object решает проблемы с типами
13 май 13, 11:20    [14286398]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ih
Member [заблокирован]

Откуда:
Сообщений: 6
автор
не совсем туп
тут разница в бите важна а совсем или не совсем ... )
13 май 13, 12:09    [14286765]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Программист-Любитель,

реализация сортировки и фильтрации – моё почтение. Как говорил Сергей Бондарчук в известном анекдоте «снимаю шляпу».
Код довольно простой, но что бы такое сделать нужно очень хорошо представлять что, как и почему делаешь и как это всё взаимодействует. Системный подход. ...Я бы не смог.
16 май 13, 20:49    [14308183]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Программист-Любитель,

реализация сортировки и фильтрации – моё почтение. Как говорил Сергей Бондарчук в известном анекдоте «снимаю шляпу».
Код довольно простой, но что бы такое сделать нужно очень хорошо представлять что, как и почему делаешь и как это всё взаимодействует. Системный подход. ...Я бы не смог.
16 май 13, 20:50    [14308185]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Программист-Любитель,

реализация сортировки и фильтрации – моё почтение. Как говорил Сергей Бондарчук в известном анекдоте «снимаю шляпу».
Код достаточно простой, но что бы такое сделать нужно очень хорошо представлять что, как и почему делаешь и как это всё взаимодействует. Системный подход. ...Я бы не смог, даже мысль что можно это так сделать не пришла бы в голову. Ваял бы дальше отдельные поля для каждого столбца что бы фильтровать и сортировать.
16 май 13, 20:53    [14308197]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
От восторга даже инет заглючил
16 май 13, 20:55    [14308204]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Увы, это старая версия не на классах и без опоры на метаданные. Тот вариант, которым я пользуюсь сам для приведение форм в действие (работа всех видов форм, переходы между формами, все остальное НЕ ТРЕБУЕТ кода в прикладных формах. Все конфигурируется).
16 май 13, 21:00    [14308221]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Жалко Алекс никак не может запустить.
16 май 13, 21:01    [14308225]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Боюсь твоя старая версия для меня дело довольно отдаленного будущего. И то если повезет.
У меня 32х битная система, может потому проблем не было.
... Купил тут ноутбук жене, а когда узнал что на нём стоит win8 64 бит, долго ругался и грозился снести. Успокоился только когда сообразил что на борту установлено 8гб оперативки, половина из которых работать не будет.
Сейчас привык, даже ничего так... Но вот разрабатывать что–то на нём я бы не рискнул.
16 май 13, 21:16    [14308274]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
В тривью, на моей базе пропали «плюсики» на корневом уровне. Содержимое открывается по двойному клику, но с «плюсиками» как то нагляднее. Не могу сообразить как их включить обратно. Не подскажешь?
16 май 13, 21:23    [14308302]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Коммонконтроловский тривью или апишный для 64 бит ?
16 май 13, 21:28    [14308317]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Для коммонконтроловского:

    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
16 май 13, 21:31    [14308323]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Первый.
Я тривью еще давно у себя сделал. одна из первых форм была.
16 май 13, 21:32    [14308326]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Изерлонер
Member

Откуда: СФО
Сообщений: 1269
Благодарю. Завтра проверю. Пора спать.
16 май 13, 21:34    [14308335]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Программист-Любитель
Жалко Алекс никак не может запустить.


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

пока мало что получается, то начнет немного работать тривью слева (состав изделия), но куча ошибок после кнопки новая деталь (слева..), после исчезновения ошибок в этом месте при перезапуске преддущее опять начинает ошибки сыпать, восстанавливаю заново то что было в начале, и все опять, правда несколько по другому пробую бороться с ошибками, но в итоге все как то печально....
17 май 13, 08:21    [14309230]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
опечатался - новая деталь (слева..) - СПРАВА
17 май 13, 08:24    [14309232]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Алекс, любые ошибки - конкретны. Они имеют код и текст ошибки. По нажатию контрол-брейк видна инструкция, вызвавшая ошибку. Можно просмотреть значения переменных, понять и исправить ошибку.
17 май 13, 09:07    [14309337]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Программист-Любитель,

спасибо за ответ, так и делаю, но не все получаетсяя или не все еще понимаю....
17 май 13, 09:09    [14309348]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
как то забыли про тему......

или не всем интересно стало????
25 май 13, 03:15    [14348527]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Все прочитал но так и не понял есть возможность как то восстановить представления в виде Дерева?


И еще вопрос по этому коду
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"
30 янв 20, 15:10    [22069613]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16829
Да, это имена полей. Первое - где ищем образец. Второе - уникальный ид набора данных. Третье - куда всем фокусом если нашли. Немного громоздко, но работает с коибобоксами с подстановкой и трюком узкого первого видимого поля. Код поиска - часть фреймворка разработки приложений, несколько раз упоминавшийся в этом старом топике.
9 фев 20, 15:09    [22076301]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Замечено.
Некоторые приложения сделанные на 32 битных системах с Тревью работают нормально и корректно и на 64 бит ОС, о некоторые не работают. Почему?
У меня возникло подозрение что если ПО не преобразовывать под новые ОС то все работает корректно
12 фев 20, 13:06    [22078208]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
Дар1
Некоторые приложения сделанные на 32 битных системах с Тревью работают нормально и корректно и на 64 бит ОС, о некоторые не работают. Почему?
проблема не в системе, а в битности офиса
12 фев 20, 13:26    [22078262]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Даже если и так, все равно что то работает, а что то нет
12 фев 20, 14:33    [22078385]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Nebo
Member

Откуда:
Сообщений: 2809
Программист-Любитель,

Красивый интерфейс у вашей программы.
12 фев 20, 15:12    [22078423]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
Дар1
Даже если и так, все равно что то работает, а что то нет
Конкретней.
12 фев 20, 16:30    [22078528]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Вот две программы. запущены на одном и том же ПК
ОС Вин10 64 Бт Офисс 7 64 бит

К сообщению приложен файл. Размер - 58Kb
12 фев 20, 17:12    [22078584]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
На верхнем примере Тривью работает
на нижнем вылетает вот такая менюшка и Все!
12 фев 20, 17:13    [22078587]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
очень информативная картинка - маленькие принсрины и огромные белые поля
12 фев 20, 17:47    [22078634]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
Дар1, не видя конкретные программы сложно сказать. Предположу, с ошибкой использует ocx, без ошибки - на API
12 фев 20, 17:49    [22078638]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
да и что за ошибка тоже не видно...
12 фев 20, 17:50    [22078639]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Панург,
Тут покачественнее

К сообщению приложен файл. Размер - 57Kb
14 фев 20, 11:42    [22079841]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
еще

К сообщению приложен файл. Размер - 105Kb
14 фев 20, 11:42    [22079843]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
Дар1,

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

Это для начала.
Ну и обработчик ошибок поставте.
14 фев 20, 11:58    [22079859]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
Дар1, так а TreeView тут причём? Как вижу он работает. Кстати, а точно версия Access 64бит?
14 фев 20, 12:13    [22079870]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Теперь вот это вылезло

К сообщению приложен файл. Размер - 144Kb
14 фев 20, 12:13    [22079871]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
Панург
Дар1, так а TreeView тут причём? Как вижу он работает. Кстати, а точно версия Access 64бит?

У меня тоже возникли сомнения в разрядности.
14 фев 20, 12:15    [22079873]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
Дар1,
У ADODB.Recordset нет свойства .OpenRecordset а есть .Open
14 фев 20, 12:24    [22079886]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Тут что то не вижу разрядности

К сообщению приложен файл. Размер - 62Kb
14 фев 20, 12:28    [22079892]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Нет тут просто .Open если так ка я писал .OpenRecordset

К сообщению приложен файл. Размер - 48Kb
14 фев 20, 12:32    [22079900]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
Дар1,

Не парься если бы была 64 дерево не заработало бы
14 фев 20, 12:35    [22079906]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
ROI,

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

и будет тебе счастье
14 фев 20, 12:40    [22079909]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
Дар1,

А код точно ваш?
14 фев 20, 12:41    [22079911]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Ошибка ушла вниз
Ran-time error ошибка 424
Object required
Что это?

К сообщению приложен файл. Размер - 113Kb
14 фев 20, 12:43    [22079912]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
Дар1,

Пытаетесь применить фильтр по форме
+ замените на &
а то глаз режет
Поставте обработчик ошибок вам же легче будет отлаживать чужой код.
14 фев 20, 12:50    [22079922]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 608
2007 всегда x32. х64 началось с офиса 2010 (VBA7). рекордсеты открываются как DAO. Поэтому лучше вернуть DAO 3.6, а объявления ADODB убрать.
14 фев 20, 13:02    [22079948]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Про код.
Делал по аналогии.
14 фев 20, 13:28    [22079984]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
Все заработало.
Всем спасибо кто подсказал то что я не совсем понимаю.
14 фев 20, 13:33    [22079988]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
Дар1, в данном случае ADODB DAO
14 фев 20, 14:04    [22080009]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
ROI
и будет тебе счастье
не будет
14 фев 20, 14:05    [22080010]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
Панург
Дар1, в данном случае ADODB DAO
упс... уже ответили
14 фев 20, 14:07    [22080012]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
Панург
ROI
и будет тебе счастье
не будет

Код конечно хлипкий.
Но человек как-то добил его (может потом оптимизирует)
И наконец будет счастье!
14 фев 20, 14:09    [22080016]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
ROI, я про библиотеку говорил
14 фев 20, 14:18    [22080028]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
Панург
ROI, я про библиотеку говорил

Да я понял.
Можно это на ADO переделать можно на DAO остаться.
Я сразу понял, что человек ни того ни другого не знает (по этому ни стал уточнять)
Он по аналогии делал.
14 фев 20, 14:26    [22080036]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
POKEP
Member

Откуда: Moskvich
Сообщений: 20
Дар1,

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

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

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

затем

REGSVR32 C:\Windows\syswow64\MSCOMCTL.OCX
17 фев 20, 12:04    [22081154]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
POKEP,
Интересно можно это вписать как то в загрузочную форму? Так что бы в будущем не парится.
18 фев 20, 14:01    [22082178]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Дар1
Member

Откуда:
Сообщений: 46
ROI,
Да, с VB проблемы, копаюсь в разных источниках, смотрю как делают другие, или как в книжках. Главное что бы в итоге работало
18 фев 20, 14:02    [22082181]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
POKEP
Member

Откуда: Moskvich
Сообщений: 20
Дар1,

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

А вот в bat-файл (или файл сценария VB-script), который будет запускать ваше приложение через ярлык - запросто. Я именно так и поступаю с внутрикорпоративными приложениями.
И ещё один важный момент - у пользователя должны быть права локального администратора.

Сообщение было отредактировано: 19 фев 20, 13:00
19 фев 20, 12:56    [22082925]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
POKEP,

Это как, корпоративные пользователи с правами локального администратора?
19 фев 20, 13:04    [22082934]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
POKEP
Member

Откуда: Moskvich
Сообщений: 20
ROI,

Есть и такие сетевые пользователи с постоянными правами лок админов, большинству же (бухгалтерия, например) такие права даются временно на период настройки рабочей станции, когда прописываются необходимые приложения и регистрируются библиотеки. Кроме того, есть терминальные компьютеры, где ярлыки для VB скриптов разные на рабочих столах пользователей и разработчиков.
20 фев 20, 11:39    [22083609]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5015
Мне сначала права локального админа давать не хотели. Но после того, как сисадмин раз 5 смотался ко мне по вопросам установки, обновления и удаления программ, я эти права получил.
22 фев 20, 20:09    [22085205]     Ответить | Цитировать Сообщить модератору
 Re: TreeView для MS Office 64 bit  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1870
Joss
Мне сначала права локального админа давать не хотели. Но после того, как сисадмин раз 5 смотался ко мне по вопросам установки, обновления и удаления программ, я эти права получил.

странные у вас админы пяшком бегают.
А удаленно прицепиться и установить чё требуется не судьба.
Лучше права дать (а потом лопатой огребать проблемы)
23 фев 20, 11:26    [22085387]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7 8      [все]
Все форумы / Microsoft Access Ответить