Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access+MS SQL не могу понять поведение / 25 сообщений из 27, страница 1 из 2
23.08.2016, 14:08
    #39296277
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Господа, здравствуйте.
Осваиваю взаимодействие с сервером...

Есть форма свободная. В ней табличная подчиненная форма. Forms!CustomerAll!CustomerAll_sub
Для подчиненной источником является хранимка
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
If LincSQL = True Then
    If TypeOpen = 1 Then ' ôèëüòð ïî ïîëÿì âûáîðà ôèëüòðà
        ' здесь формирование строки для параметров
    End If

    If Len(strSQL) > 0 Then strSQL = Left(strSQL, Len(strSQL) - 2)

    rst.CursorLocation = adUseClient
    rst.Open "Exec CustomerAll_sub " & strSQL, MyConnect, adOpenKeyset, adLockOptimistic

    Set Me.Form.Recordset = rst
'    strSQL = "Execute 'CustomerAll_sub' " & strSQL
'    CurrentDb.QueryDefs("CustomerAll_sub").SQL = strSQL
Else
    i = i + 1
    Call LincSQL
    GoTo NewCtart
End If


данные подтягиваются, фильтруются. Все хорошо.

Есть проблема!
Поля для фильтра находятся в заголовке Гл формы.
Я хочу сделать, что бы при необходимости заголовок(по сути настройки фильтра) скрывался.
Делаю
Код: vbnet
1.
Forms!CustomerAll.Form.Section(1).Visible = True ' false



и после применения этой строки - подчиненная форма отваливается как бы.
Т.е. вместо таблички, с данными или без, остается просто белое поле (как будто не задан объект для контрола подчиненной формы)

в имедиате смотрю - подчиненная, как объект для контрола подчиненной есть....
Код: vbnet
1.
2.
?Forms!CustomerAll!CustomerAll_sub.sourceobject
CustomerAll_sub


вероятно слетает источник самой подчиненной формы?
при попытке снова присвоить источник подчиненной - вылетаю с ошибкой
"Введенное выражение содержит ссылку на объект, который закрыт или не существует"

Подскажите, в чем может быть дело? Куда пропадает подчиненная?
...
Рейтинг: 0 / 0
23.08.2016, 14:15
    #39296290
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Игортан,

Забыл добавить.
Пробовал источником делать сохраненный запрос к серверу.

Ситуация не поменялась....
...
Рейтинг: 0 / 0
23.08.2016, 15:25
    #39296388
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Игортан,

Господа.
Т.к. делаю это впервые и информацию собирал реально по крупицам
все почему пишут об этом как о чем то банальном....

Прошу, проверьте, может у меня строка подключения не та или присвоение источника подчиненной не так???
Думал, может глюк в форме, ну бывает

обкатал на новой форме... тоже самое...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Public MyConnect As ADODB.Connection

Public Function LincSQL() As Boolean
Dim strMy As DAO.Recordset

    On Error GoTo Err_LincSQL
    
Set strMy = CurrentDb.OpenRecordset("SELECT * FROM ServerLink", dbOpenDynaset)
If strMy.EOF Then
    MsgBox "Âíèìàíèå! Íåóñòðàíèìàÿ îøèáêà! Ïðèëîæåíèå áóäåò çàêðûòî. Ïîæàëóéñòà, îáðàòèòå âíèìàíèå íà êîä îøèáêè è ñîîáùèòå ðàçðàáîò÷èêó! ", , "Îøèáêà!"
    Call Outputs
Else
    Set MyConnect = New ADODB.Connection
    With MyConnect
      .Provider = "SQLOLEDB.1"
      .Properties("Data Source") = Nz(strMy!ServerName, "Igor")
      .Properties("Initial Catalog") = Nz(strMy!ServerDB, "BaseTV")
      .ConnectionTimeout = 200
      .Properties("Persist Security Info") = False
      .Properties("Integrated Security") = "SSPI"
      .Open
    End With
End If

LincSQL = True

    If Not strMy Is Nothing Then Set strMy = Nothing

Exit_LincSQL:
    Exit Function

Err_LincSQL:
    If Not strMy Is Nothing Then Set strMy = Nothing
    If Not MyConnect Is Nothing Then Set MyConnect = Nothing

    LincSQL = False

    MsgBox "Îøèáêà ïîäêëþ÷åíèÿ ê ÁÄ! " & vbNewLine & "Ïðîâåðüòå íàñòðîéêè ïîäêëþ÷åíèÿ!", vbCritical, "Îøèáêà!"
'    Call Outputs
    Resume Exit_LincSQL
    
End Function



а это полный текст функции присвоения источника
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
Public Function MyWhere(TypeOpen As Long) As Long
'TypeOpen ïðèìåíåíèå/î÷èñòêà ôèëüòðîâ
' 0= î÷èñòêà; 1=ïðèìåíåíèå
Dim strSQL As String
Dim i As Long
Dim rst As New ADODB.Recordset

   On Error GoTo MyWhere_Error

NewCtart:
If LincSQL = True Then
    If TypeOpen = 1 Then ' ôèëüòð ïî ïîëÿì âûáîðà ôèëüòðà
        If Me.Parent.Customer_fl <> 0 Then strSQL = "@Customer_Search='" & Me.Parent.Customer_Search & "', "
        If Me.Parent.Adress_fl <> 0 Then strSQL = strSQL & "@Adress_Search='" & Me.Parent.Adress_Search & "', "
        If Me.Parent.Telephone_fl <> 0 Then strSQL = strSQL & "@Telephone_Search='" & Me.Parent.Telephone_Search & "', "
        If Me.Parent.AccountCustomer_fl <> 0 Then strSQL = strSQL & "@AccountCustomer_Search='" & Me.Parent.AccountCustomer_Search & "', "
    End If

    If Len(strSQL) > 0 Then strSQL = Left(strSQL, Len(strSQL) - 2)

    rst.CursorLocation = adUseClient
    rst.Open "Exec CustomerAll_sub " & strSQL, MyConnect, adOpenKeyset, adLockOptimistic

    Set Me.Form.Recordset = rst

Else
    If i < 4 Then
        i = i + 1
        Call LincSQL
        GoTo NewCtart
    Else
    MsgBox "&#205;&#229; &#243;&#228;&#224;&#235;&#238;&#241;&#252; &#239;&#238;&#228;&#234;&#235;&#254;&#247;&#229;&#237;&#232;&#229; &#234; &#193;&#196;!", vbInformation, "&#206;&#248;&#232;&#225;&#234;&#224; &#239;&#238;&#228;&#234;&#235;&#254;&#247;&#229;&#237;&#232;&#255;!"
    End If
End If


'    If Not strMy Is Nothing Then Set strMy = Nothing
'    If Not rst Is Nothing Then Set rst = Nothing

   On Error GoTo 0
   Exit Function

MyWhere_Error:
If Not rst Is Nothing Then Set rst = Nothing
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure MyWhere of VBA Document Form_CustomerAll"

End Function



А это отработка показа/скрытия заголовка формы
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Public Function FilterYesNo(Optional TypeWork As Long = 0)
'TypeWork -&#243;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#224; &#241;&#238;&#241;&#242;&#238;&#255;&#237;&#232;&#255; &#224;&#234;&#242;&#232;&#226;&#237;&#238;&#233; &#244;&#238;&#240;&#236;&#251;
'0=&#232;&#231;&#236;&#229;&#237;&#232;&#235;&#241;&#255; &#244;&#238;&#234;&#243;&#241;; 1=&#232;&#231;&#236;&#229;&#237;&#232;&#235;&#238;&#241;&#252; &#241;&#238;&#241;&#242;&#238;&#255;&#237;&#232;&#229;

   On Error GoTo FilterYesNo_Error

NameActFrm = MyScreenActFrm(1)
Set MyActiveForm = Forms(NameActFrm)

With MyActiveForm.Form
    If !FormHeaderYes = False Then
        If TypeWork = 1 Then
'            .Form.Section(1).Visible = True
            !FormHeaderYes = True
        ElseIf TypeWork = 0 Then
'            .Form.Section(1).Visible = False
        End If
    Else
        If TypeWork = 1 Then
'            .Form.Section(1).Visible = False
            !FormHeaderYes = False
        ElseIf TypeWork = 0 Then
'            .Form.Section(1).Visible = True
        End If
    End If
End With
'Forms!CustomerAll!CustomerAll_sub.Form.MyWhere (0)
If Not MyActiveForm Is Nothing Then Set MyActiveForm = Nothing



Просто опыта мало, даже не знаю, в какую сторону думать....
Подскажите что нибудь
...
Рейтинг: 0 / 0
23.08.2016, 16:05
    #39296450
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Игортан,

сейчас попробовал повесить на открытие подчиненной класс с Class_terminate

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

И класс при повторном проходе - уничтожается, срабатывает Class_terminate

форма все таки закрывается или выпадает, если можно так сказать про подчиненную
...
Рейтинг: 0 / 0
23.08.2016, 18:32
    #39296575
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Игортан,

Не ужели ни у кого мыслей нет?

Даже в качестве бреда?

Реально хочется победить...
...
Рейтинг: 0 / 0
24.08.2016, 14:36
    #39297143
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Игортан,

Ну не верю, что не читали этот топ люди, которые работают в связке

accdb + sql

молчите то чего?
или совсем ламерский вопрос, или я первый с такой проблемой?

осена нада.
Нужно проект переводить на sql....
...
Рейтинг: 0 / 0
24.08.2016, 14:48
    #39297156
northwind 1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
а сделайте простенький пример (мс скл + а2003) на основе северного ветра - чтоб воспроизводился феномен и выложите здесь
...
Рейтинг: 0 / 0
24.08.2016, 15:00
    #39297167
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
northwind 1,

спасибо за отзыв, приду с работы запилю.
Я там понимаю, что потом просто бекап базы sql сюда положить?
с базкой в 2003
...
Рейтинг: 0 / 0
24.08.2016, 16:15
    #39297232
northwind 1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
авторЯ там понимаю, что потом просто бекап базы sql сюда положить?


Нет, файл а2003 с формой, воспроизводящем феномен, на основе подключения к базе Норсвинд МС СКЛ.
...
Рейтинг: 0 / 0
24.08.2016, 17:18
    #39297259
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
ИгортанПодскажите, в чем может быть дело? Куда пропадает подчиненная?

Попробуйте перед тем как выполнить
Код: vbnet
1.
Forms!CustomerAll.Form.Section(1).Visible = True ' false


Сначала изменить источник формы на другой, в котором нет никаких ссылок на поля фильтра, которые будут скрыты
...
Рейтинг: 0 / 0
24.08.2016, 22:28
    #39297420
northwind 1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Не удается воспроизвести Вашу проблему. Попробуйте это сделать на моем примере.
...
Рейтинг: 0 / 0
24.08.2016, 22:36
    #39297423
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
vmag,

попробовал - не прокатило.
Т.е. код отработал
а вот на скрыть/показать кнопкой - легла подчиненная.

Попробовал сделать с нуля базу и формы для sql - Northwind
Правда несколько таблиц своих, чтобы код был ближе к жизни....

И падение формы/связи с сервером повторил...
В душе надеялся, что что-то с базой старой....

Базу для ms sql - Northwind, в архиве прилаживаю
...
Рейтинг: 0 / 0
24.08.2016, 22:56
    #39297431
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
northwind 1,

Ммдаа....
на вашем примере тоже повторил проблему....

Менял строку подключения и код кнопки скрытия/открытия

строку
Код: vbnet
1.
2.
    Const constr$ = "Driver={SQL Server};Server=WAREZ-A1B4AD0C5\SQLEXPRESS;" & _
                    "Database=northwind;" 'UID=sa;PWD=0;"



по другому бодалась не давала

код на кнопке
Код: vbnet
1.
2.
3.
4.
5.
6.
i = Me.Form.Section(1).Visible
If i = False Then
    Me.Form.Section(1).Visible = True
Else
    Me.Form.Section(1).Visible = False
End If
...
Рейтинг: 0 / 0
24.08.2016, 22:58
    #39297434
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Игортан,

Может настройки сервера какие?

по умолчанию при установке я все оставил.
Аутентификация по виндовс пользователю....
...
Рейтинг: 0 / 0
24.08.2016, 23:18
    #39297445
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Игортанпопробовал - не прокатило.

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


Игортан"Введенное выражение содержит ссылку на объект, который закрыт или не существует"
...
Рейтинг: 0 / 0
24.08.2016, 23:23
    #39297446
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
vmag,

сразу форма висела табличке
сохранял там состояние и введенные фильтры

подчиненная независимая от главной

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

а проблема осталась...

Столько с этим аксом 2007 работаю, правда ломаный.....
может что то с аксом...
...
Рейтинг: 0 / 0
24.08.2016, 23:26
    #39297448
northwind 1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
На Вашем примере (а2003, скл сервер экспресс 2005) проблема не воспроизводится.
Да и не должна...
...
Рейтинг: 0 / 0
24.08.2016, 23:31
    #39297450
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
northwind 1,

ОПАНА
спасибо за проверку

а я только что попробовал повесить на свою локальную табличку
тоже все хорошо...

с высоты своего опыта, может подскажете направление?

или переустанавливать акс и сервер?
...
Рейтинг: 0 / 0
24.08.2016, 23:32
    #39297451
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
northwind 1,

именно несколько раз меняли состояние формы?
потому как с первого раза подчиненная не падала
...
Рейтинг: 0 / 0
24.08.2016, 23:42
    #39297453
northwind 1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
авторименно несколько раз меняли состояние формы?
Да.
Сервер не причем, я думаю. Может дело в акцессе?
...
Рейтинг: 0 / 0
25.08.2016, 00:01
    #39297457
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
northwind 1,

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

буду переустанавливать.
Может и сервер
помню при установке Менеджера сервера был головняк какой то.
Отпустил на несколько дней, думал позже добью.
А потом раз и все установилось...может не хватало перезагрузки, а может что то где то криво встало....

В любом случае, спасибо!

А можно вопрос на последок.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Set MyConnect = New ADODB.Connection
    With MyConnect
      .Provider = "SQLOLEDB.1"
      .Properties("Data Source") = Nz(strMy!ServerName, "Igor")
      .Properties("Initial Catalog") = Nz(strMy!ServerDB, "BaseTV")
'      .Properties("User Id") = "user"
'      .Properties("Password") = "welcome"
      .ConnectionTimeout = 200
      .Properties("Persist Security Info") = False
      .Properties("Integrated Security") = "SSPI"
      .Open
    End With



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

Так вот с таким подключение код споткнулся на
Код: vbnet
1.
If con.Execute(s)(0) = 0 Then


как я понимаю, сервер не дал выполнять команду проверки/создания хранимки

потом уже с вашей экспериментировал

может какой параметр пропускается в моем линке?
Сможете подсказать?
...
Рейтинг: 0 / 0
26.08.2016, 02:37
    #39298289
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Игортан,

вот и переставил, офис 2007 - ничего не изменилось...
переставил сервер...тоже самое...
поставил офис 2010....снова по старому...
вот черный ящик...
) систему переставлять, не предлагать

где я так карму испортил????
в чем может быть проблема.....????
...
Рейтинг: 0 / 0
26.08.2016, 16:53
    #39298744
нордвинд
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
1. Возможно, особенности акцесса > 2003
2. Может отказаться от скрытия заголовка формы?
3. Если скрывать область данных, то "слетает" sourceobject подчиненной формы.
Попробуйте присваивать sourceobject подчиненной форме после восстановления видимости, как в примере.
...
Рейтинг: 0 / 0
27.08.2016, 17:02
    #39299018
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
нордвинд,

Пока попробовал поставить 2003.
Для чистоты эксперимента, так сказать....
И все нормально работает, не падает подчиненная....
правда не с вашей базой, а со своей тестовой пробовал, с вашей не получилось на скорую руку строку подключения правильно изменить. Не подключалась в общем.
Кстати, поставив 2008 r2, теперь могу подключиться к нему только через Натив клиента.

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

Ну еще попробую ваш выше вариант, покручу туда сюда, может выйдет еще.
...
Рейтинг: 0 / 0
27.08.2016, 19:49
    #39299038
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access+MS SQL не могу понять поведение
Игортан,

повешу тут, что бы не потерять, пока домой попаду, не обижайтесь.)))
но вроде что то схожее - вопрос по событию, оргвыводы
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access+MS SQL не могу понять поведение / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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