2013-05-05 2 views
1

Я работаю над приложением «accdb». Большинство моих таблиц связаны с SQL Server 2008. Я хочу, чтобы дать пользователю возможность подключения к другой базе данных, поэтому я обеспечиваю экран, который делает следующим образом:Свойство «Подключить» таблицы переводит первичный ключ. Зачем?

Private Sub cmdLinkTables_Click() 
On Error GoTo cmdLinkTables_Click_Err 
    For Each tdf In CurrentDb.TableDefs 
     If InStr(1, tdf.name, "MSys") Then GoTo NextIteration 'skip system tables 
     If Len(tdf.Connect) <= 0 Then GoTo NextIteration 'skip local tables 
     tdf.Connect = Me.txtConnectionString 
     tdf.RefreshLink 
NextIteration: 
    Next tdf 
    Exit Sub 
cmdLinkTables_Click_Err: 
    MsgBox err.Description, vbCritical, GetAppTitle 
End Sub 

После подключения к новому база данных, все работало нормально, за исключением одной таблицы, где по какой-то причине был отключен первичный ключ, и поэтому он стал неотредактированным (это слово?). Это новая строка соединения я использовал:

ODBC;Description=***;DRIVER=SQL Server;SERVER=SERVER2008\MSSQLSERVER2008;UID=***;PWD=***;APP=Microsoft Office 2010;DATABASE=*** 

И я подумал, что проблематичной стол также необходимо, так что я буду предоставлять сценарий, созданный SQL Server:

CREATE TABLE [dbo].[tblUsersPerm](
    [ID] [int] IDENTITY(1,1) NOT NULL, 
    [User] [nvarchar](50) NULL, 
    [ScreenObjectName] [nvarchar](200) NULL, 
    [ReadOnly] [bit] NOT NULL, 
    [Allow] [bit] NOT NULL 
) ON [PRIMARY] 

GO 

Я думаю, что это всю необходимую информацию, надеюсь, что я прав. Теперь, конечно, я могу вручную установить первичный ключ и снова изменить таблицу, но пользователь не сможет этого сделать.

Кто-нибудь знает, в чем проблема с первичным ключом?

ответ

1

Кто-нибудь знает, в чем проблема с первичным ключом?

Из того, что вы сказали нам, проблема с Первичным ключом просто заключается в том, что она не существует в таблице SQL Server. Я запустил DDL и создал таблицу в моей базе данных SQL Server, у которой не было ПК. Я вошел в конструкторе таблиц и конкретизированы [ID] в качестве первичного ключа, сохраняются мои изменения, а затем сделал Script Table as > CREATE ... и то, что я получил

CREATE TABLE [dbo].[tblUsersPerm](
    [ID] [int] IDENTITY(1,1) NOT NULL, 
    [User] [nvarchar](50) NULL, 
    [ScreenObjectName] [nvarchar](200) NULL, 
    [ReadOnly] [bit] NOT NULL, 
    [Allow] [bit] NOT NULL, 
CONSTRAINT [PK_tblUsersPerm] PRIMARY KEY CLUSTERED 
(
    [ID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 
+0

Спасибо, я сделал знак «ID», как личность, думал, что это считается ПК, предполагают, что это не одно и то же. В любом случае, он работает сейчас – Yotam

Смежные вопросы