Я работаю над приложением «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
Я думаю, что это всю необходимую информацию, надеюсь, что я прав. Теперь, конечно, я могу вручную установить первичный ключ и снова изменить таблицу, но пользователь не сможет этого сделать.
Кто-нибудь знает, в чем проблема с первичным ключом?
Спасибо, я сделал знак «ID», как личность, думал, что это считается ПК, предполагают, что это не одно и то же. В любом случае, он работает сейчас – Yotam