|
MS Access доступ к базе PosgreSQL через ODBC
#40138061
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
Ссылка на вложение 2:
Ссылка на вложение 3:
Ссылка на вложение 4:
Ссылка на вложение 5:
|
||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Дано: MS Access 2016 32 бит, PostgreSQL 11, ODBC драйвер версии 13.01 Таблица spr_tbnames в БД kip PostgreSQL Код: SQL 1. 2. 3. 4. 5. 6. 7.
CREATE SEQUENCE IF NOT EXISTS public.spr_tbnames_seq INCREMENT 1 START 25 MINVALUE 25 MAXVALUE 2147483647 CACHE 1 OWNED BY mvp; далее в поле uid добавляется правило nextval(' spr_tbnames_seq'::regclass) После всех действий в PostgreSQL добавление записи запросом проходит успешно kip=> insert into "spr_tbnames" (naim,description) values ('test_naim','test_desc'); INSERT 0 1 Задача: создать присоединенную таблицу spr_tbnames в MS Access с возможностью добавления, редактирования и удаления записей. Проблема: При отсутствии настройки автоинкремента все работает нормально, после настройки автоинкремента при попытке добавить запись в новой записи появляется строка #Удалено, хотя после закрытия и открытия связанной таблицы добавленная запись отображается нормально. Без автоинкремента такой проблемы нет. Подскажите пожалуйста уважаемые профессионалы как решить? ... |
||||||||||||||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||||||||||||||
18.09.2023, 07:42 |
|
MS Access доступ к базе PosgreSQL через ODBC
|
|||
---|---|---|---|
#18+
alvk [игнорируется] Добрый день, спасибо за ответ. удаление связанной таблицы и присоединение заново ничего не дает. Нашла адекватную статью https://www.postgresql.org/message-id/492B80A7.4070000@postnewspapers.com.au Похоже придется обрабатывать событие в Access Form_BeforeInsert, отдельно запускать nextval, а потом брать из него current Set MyDB = CurrentDb() Set MyQ = MyDB.CreateQueryDef("nextval") MyQ.Connect = DSN ' Generate the new key, discarding the result. We must do ' this to ensure that Access doesn't call nextval(seqname) ' twice, as it will if ReturnsRecords is set. MyQ.SQL = "SELECT nextval('" & seqName & "')" MyQ.ReturnsRecords = False MyQ.Execute ' Now that there's a value in the context of the current ' transaction, retrieve it. Since this procedure has no ' side effects, it'll do no harm when Access calls it twice. MyQ.SQL = "SELECT currval('" & seqName & "') AS new_id" MyQ.ReturnsRecords = True Set MyRS = MyQ.OpenRecordset() MyRS.MoveFirst nextval = MyRS!new_id CurrentDb.QueryDefs.Delete "nextval" MyQ.Close MyRS.Close MyDB.Close Exit Function ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2023, 12:40 |
|
MS Access доступ к базе PosgreSQL через ODBC
|
|||
---|---|---|---|
#18+
mari.p68 [игнорируется] посмотрите ещё тут https://odbc.postgresql.org/howto-accessvba.html https://www.interface.ru/home.asp?artId=7901 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2023, 02:12 |
|
MS Access доступ к базе PosgreSQL через ODBC
|
|
---|---|
#18+
alvk [игнорируется] Все оказалось намного проще. необходимо обрабатывать событие Form_AfterInsert простой командой Код: SQL 1.
Что касается вызова из Access nextval, то к сожалению эта конструкция не работает. Команда уходит, но счетчик не увеличивается и соответственно currval возвращает ошибку, поскольку в текущем сеансе не отработала корректно функция nextval. ... |
|
:
|
|
19.09.2023, 10:23 |
|
MS Access доступ к базе PosgreSQL через ODBC
|
|||
---|---|---|---|
#18+
mari.p68 [игнорируется] Я пока за 15 лет не встречал никого, кто бы работал из Акцесса с таблицами на Постгре :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2023, 10:20 |
|
MS Access доступ к базе PosgreSQL через ODBC
|
|||
---|---|---|---|
#18+
А я и не работаю, это прога настройки сборщика, ну лень писать что-то приличное. Приложение клиент-серверное, сервер сборщик работает на Linux+Postgres, клиент - SCADA ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2023, 12:01 |
|
MS Access доступ к базе PosgreSQL через ODBC
|
|||
---|---|---|---|
#18+
mari.p68 [игнорируется] нет, вы серьезно? после полутора лет забвения форума, первое это Акцесс и Постгре?? я в шоке - это очень мягко! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2023, 23:09 |
|
|
Start [/forum/topic.php?fid=45&tid=2186842]: |
0ms |
get settings: |
28ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
55ms |
get forum data: |
3ms |
get page messages: |
411ms |
get tp. blocked users: |
2ms |
others: | 201ms |
total: | 803ms |
0 / 0 |