powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Присоединенные таблицы в Access
4 сообщений из 4, страница 1 из 1
Присоединенные таблицы в Access
    #32054632
Anatoliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имею SQL – ную таблицу:
Код: plaintext
1.
2.
3.
4.
CREATE TABLE [dbo].[MyTable] (
	[idFirm] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[NmFirm] [char] ( 20 ) COLLATE Cyrillic_General_CI_AS NOT NULL 
) ON [PRIMARY]
GO

В Access97 присоединяю ее к базе данных.
В коде программы необходимо добавить очередную запись в данную таблицу.
При выполнении следующей процедуры:
Код: plaintext
1.
2.
3.
4.
5.
6.
Public Sub MyProcedure()
Dim db As Database
Dim rst As DAO.Recordset
Dim sQ As String

Set db = CurrentDb
sQ =  "SELECT idFirm, nmFirm "  & vbCrLf &  "FROM MyTable;" 

на следующей строке получаю следующее сообщение:
Ошибка выполнения '3622':
Необходимо использование параметра dbSeeChanges с OpenDatabase
при доступе к таблице SQLServer, которая имеет столбец IDENTITY.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Set rst = db.OpenRecordset(sQ)
With rst
    .AddNew
        .Fields( "nmFirm" ).Value =  "Рога и копыта" 
    .Edit
End With

End Sub

Растолкуйте, пожалуйста, когда, и где вставить этот параметр dbSeeChanges или как добавить запись, обойдя это препятствие.
...
Рейтинг: 0 / 0
Присоединенные таблицы в Access
    #32054644
Фотография Fedorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендую:

Function Execute_Passthrough_Query(sqltext As String)

' Purpose: Run a temporary pass-through query.
' Accepts: sqltext: SQL string to run or stored
' procedure's name.
' Returns: nothing.

Dim dbSQL As Database, qdSQL As QueryDef
Dim strConnect As String
Dim strCommand As String

strConnect = "ODBC;APP= My App's Name; " _
& "DRIVER=SQL Server;SERVER=MY SERVER; " _
& "DATABASE=MY DB;Trusted_Connection=Yes"
Set dbSQL = DBEngine.Workspaces(0).Databases(0)
' Create a temporary QueryDef object that is not saved.
Set qdSQL = dbSQL.CreateQueryDef("")
' Set the ReturnsRecords property to False in order to use the
' Execute method.
qdSQL.ReturnsRecords = False
qdSQL.Connect = strConnect
qdSQL.SQL = sqltext
qdSQL.Execute
qdSQL.Close
Set qdSQL = Nothing
dbSQL.Close
Set dbSQL = Nothing

End Function

Как вызывать:

Dim strSQL as String
strSQL="INSERT INTO MyTable (nmFirm) VALUES ('Рога и копыта')"
Call Execute_Passthrough_Query(strSQL)
...
Рейтинг: 0 / 0
Присоединенные таблицы в Access
    #32054704
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где первичный ключ в таблице?
...
Рейтинг: 0 / 0
Присоединенные таблицы в Access
    #32054723
Anatoliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так ведь первичный ключ - это idFirm - поле типа IDENTITY
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Присоединенные таблицы в Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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