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

Есть форма свободная. В ней табличная подчиненная форма. 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
Access+MS SQL не могу понять поведение
    #39296290
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

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

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

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

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

обкатал на новой форме... тоже самое...
Код: 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
Access+MS SQL не могу понять поведение
    #39296450
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

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

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

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

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

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

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

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

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

accdb + sql

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

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

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


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

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


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

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

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

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

Базу для ms sql - Northwind, в архиве прилаживаю
...
Рейтинг: 0 / 0
Access+MS SQL не могу понять поведение
    #39297431
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Access+MS SQL не могу понять поведение
    #39297434
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

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

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

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


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

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

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

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

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

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

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

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

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

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

именно несколько раз меняли состояние формы?
потому как с первого раза подчиненная не падала
...
Рейтинг: 0 / 0
Access+MS SQL не могу понять поведение
    #39297453
northwind 1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторименно несколько раз меняли состояние формы?
Да.
Сервер не причем, я думаю. Может дело в акцессе?
...
Рейтинг: 0 / 0
Access+MS SQL не могу понять поведение
    #39297457
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Access+MS SQL не могу понять поведение
    #39298289
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

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

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

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

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

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

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


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