Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 设置';连接';表的属性删除主键。为什么?_Ms Access_Primary Key_Connect - Fatal编程技术网

Ms access 设置';连接';表的属性删除主键。为什么?

Ms access 设置';连接';表的属性删除主键。为什么?,ms-access,primary-key,connect,Ms Access,Primary Key,Connect,我正在开发一个“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 NextI

我正在开发一个“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
我认为有问题的表也是必要的,所以我将提供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
我想这是所有必要的信息,希望我是对的。现在,我当然可以手动设置主键并使表再次可编辑,但用户将无法这样做

有人知道主键有什么问题吗

有人知道主键有什么问题吗

根据您告诉我们的,主键的问题只是它在SQL Server表中不存在。我运行了DDL,它在我的SQL Server数据库中生成了一个没有PK的表。我进入表设计器,将[ID]指定为主键,保存更改,然后执行
脚本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
有人知道主键有什么问题吗

根据您告诉我们的,主键的问题只是它在SQL Server表中不存在。我运行了DDL,它在我的SQL Server数据库中生成了一个没有PK的表。我进入表设计器,将[ID]指定为主键,保存更改,然后执行
脚本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

谢谢,我确实把“ID”标记为身份,还以为这是PK,我猜这不一样。不管怎样,它现在可以工作了谢谢,我确实把“ID”标记为身份,认为它被认为是PK,我猜它不一样。不管怎么说,它现在起作用了