powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Каким прараметром разрешить Me.Recordset.AddNew
8 сообщений из 8, страница 1 из 1
Каким прараметром разрешить Me.Recordset.AddNew
    #39139143
LightN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Подскажите есть ли вообще такой параметр у SQLOLEDB, позволяющий Recordset поставить на add?
Каким Provider воспользоваться если SQLOLEDB этого не позволяет в принципе?

' cbChangeDataBase это БД это годы (2015,14,13 ...)
' Цель - оперативно прыгать в БД разных лет и менять Me.Recordset соответственно + с возможностью add

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub cbChangeDataBase_AfterUpdate()
 Dim rst1 As New ADODB.Recordset
   rst1.CursorLocation = adUseClient
   rst1.Open "SELECT * FROM Seriynik_INV_REQ ORDER BY keyID DESC", _
    "Provider=SQLOLEDB;Trusted_Connection=Yes;APP=Napp;SERVER=S-DB1.N.RU;Database=BD_" & cbChangeDataBase & ";"
   Set Me.Recordset = rst1
   Set rst1 = Nothing
End Sub


Заранее спасибо.
...
Рейтинг: 0 / 0
Каким прараметром разрешить Me.Recordset.AddNew
    #39139173
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала надо физически открыть коннекшен, а уж потом открывать рекрдсет
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim cnt As ADODB.Connection

Set cnt = New ADODB.Connection
    With cnt
        .ConnectionString = "Provider=SQLOLEDB;Trusted_Connection=Yes;APP=Napp;SERVER=S-DB1.N.RU;Database=BD_" & cbChangeDataBase & ";"
        .Open
    
    End With

Dim rst As New ADODB.Recordset
        With rs
            .ActiveConnection = cnt
            .CursorLocation = adUseClient
            .CursorType = adOpenKeyset
            .LockType = adLockPessimistic
            .Source = "SELECT * FROM Seriynik_INV_REQ ORDER BY keyID DESC"
            .Open
        End With
...
Рейтинг: 0 / 0
Каким прараметром разрешить Me.Recordset.AddNew
    #39139221
LightN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin Dmitry,
Не хочет добавлять. Стрелочка со звёздочкой в ленточной форме (добавить новую запись) не активна.
Если сделать
Me.UniqueTable = "Seriynik_INV_REQ",
До добавлять можно, но сохранить эту нелзя, пишет "UniqueTable не существует или полностью не определена!"
...
Рейтинг: 0 / 0
Каким прараметром разрешить Me.Recordset.AddNew
    #39139309
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LightN,

Наверное, в твоей таблице нет первичного ключа Акс это не любит. Создай ключ
...
Рейтинг: 0 / 0
Каким прараметром разрешить Me.Recordset.AddNew
    #39139344
LightN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin Dmitry,
А2003+ линкованные таблицы если 2015.
Если Год<>2015, то форма меняет rst на New ADODB.Recordset
В 2015 году ключ есть, а как его задать на ADODB ?

Но это же делается на ODBC линкованные таблицы а не на ADODB.Connection, или я не прав?
Код: sql
1.
2.
3.
       txt = "CREATE UNIQUE INDEX PrimaryKey On [" & Me.[TableName] & "] (" & Me.PrimaryIdFields_Dub & ") With PRIMARY;"
       CurrentDb.Execute txt, dbFailOnError
   
...
Рейтинг: 0 / 0
Каким прараметром разрешить Me.Recordset.AddNew
    #39139397
LightN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin Dmitry,
А ведь Вы правы! Это была вью = [Seriynik_INV_REQ]
Как только перевёл на физическую таблицу = [Seriynik] - всё сразу заработало!
И как быть с запросами ввиде Views? В линке ODBC - корректно работает, а в ADO - проблема ...
...
Рейтинг: 0 / 0
Каким прараметром разрешить Me.Recordset.AddNew
    #39139428
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LightNRivkin Dmitry,
А2003+ линкованные таблицы если 2015.
Если Год<>2015, то форма меняет rst на New ADODB.Recordset
В 2015 году ключ есть, а как его задать на ADODB ?

Но это же делается на ODBC линкованные таблицы а не на ADODB.Connection, или я не прав?
Код: sql
1.
2.
3.
       txt = "CREATE UNIQUE INDEX PrimaryKey On [" & Me.[TableName] & "] (" & Me.PrimaryIdFields_Dub & ") With PRIMARY;"
       CurrentDb.Execute txt, dbFailOnError
   


Это совсем неправильная постановка вопроса: первичный ключ должен создаваться при проектировании и созадании базы данных а не на "ходу". Я не знаю причин по которым первичный ключ неприемлем при проектировании таблиц
...
Рейтинг: 0 / 0
Каким прараметром разрешить Me.Recordset.AddNew
    #39139547
LightN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin DmitryЭто совсем неправильная постановка вопроса: первичный ключ должен создаваться при проектировании и созадании базы данных а не на "ходу". Я не знаю причин по которым первичный ключ неприемлем при проектировании таблиц
А я знаю. Причина - MSSQL - сервер. Если Connection смотрит на MSSQL - таблицу, то ключ есть автоматом, а если на View (т.е. запрос), то ключа нет. В этом случае на ODBC - прилинкованной таблице его нужно указать явно.
В моем случае это была View ...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Каким прараметром разрешить Me.Recordset.AddNew
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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