我在Microsoft Access / JET中有一个表,其中有一个自动设置的字段,该字段以增量方式设置,用作表的主键.我需要知道主键的值对于下一个插入的记录是什么,但我需要知道插入记录之前的值
我知道这可以通过使用SHOW TABLE STATUS命令在MySQL中轻松完成.是否有任何东西可以让我使用ADO,DAO,VB6或任何其他可用工具为Access / JET做同样的事情?
您可以使用ADOX(Microsoft ADO Extensions for DDL和Security)来确定自动编号字段的当前“种子”值.Public Function NextAutonumber(ByVal pTable As String, _ ByVal pAutonumField As String) As Long Dim cat As Object Set cat = CreateObject("ADOX.Catalog") Set cat.ActiveConnection = CurrentProject.Connection NextAutonumber = cat.Tables(pTable).Columns(pAutonumField).Properties("Seed") Set cat = Nothing End Function
注意这种方法可能会在多用户情况下给出错误的结果…如果另一个用户可以在您检索下一个自动编号和实际执行INSERT之间偷偷进行INSERT.如果它很重要,您可以通过在INSERT之后检查SELECT @@ Identity来验证您是否获得了预期的值.