微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试使用宏/SQL 语句从表中删除Ms Access

如何解决尝试使用宏/SQL 语句从表中删除Ms Access

请注意:对查询名称表示歉意,我只是需要它出现在列表的顶部,而我正在尝试弄清楚!

表格 - Mortalityinput

查询 - AAAAAAINmax

我正在尝试编写一个宏来从我的数据表中删除数据的最后/最大天,例如(如果最近的数据是 3 月 8 日,并且有 5 条记录,我想删除所有这些记录)

我的第一步是创建一个查询来确定最大可用日期:

SELECT Max(Format(Mortalityinput.[Created Date],"dd/mm/yyyy")) AS Expr1 FROM Mortalityinput;

我不得不使用格式,因为创建日期下降到 hh/mm/ss,所以只有在时间方面的最新记录才会被选中,因为我想要当天的所有记录。

第二步是创建一个查询,该查询从死亡率输入中选择 [Created Date] 与最大日期匹配的数据。查询如下:

SELECT *
FROM Mortalityinput AS inp
INNER JOIN
(SELECT Max(format(Mortalityinput.[Created Date],"yyyy/mm/dd")) AS MaxDate
FROM Mortalityinput) AS grp
ON format(inp.[Created Date],"yyyy/mm/dd") = grp.[MaxDate];

哪个工作正常,但是我很难实际删除记录,我尝试使用:

  Private Sub Command14_Click()
  myVar = DMax("[Created Date]","Mortalityinput")
  MsgBox (myVar)

  Dim dbs As DAO.Database
  Dim rst As DAO.Recordset
  Set dbs = CurrentDb
  lcsql = "SELECT AAAAAAINmax.[ID] from AAAAAAINmax.[ID] AS IDmax"
  Set rst = dbs.OpenRecordset(lcsql)

     do while Not rst.EOF
         lcsql = "DELETE Mortalityinput.ID FROM Mortalityinput WHERE Mortalityinput.ID=" + 
         Str(rst.Fields("IDmax"))
         DoCmd.SetWarnings False
         DoCmd.Runsql (lcsql)
         DoCmd.SetWarnings True
         rst.MoveNext
      Loop
   End Sub

我确实阅读了 Database.Execute 方法,并考虑过将表中的 ID 与查询匹配,我可以删除任何具有相同创建日期的内容,但我也无法使其正常工作大致如下:

   Set dbnewInitiatives = CurrentDb
   strsql = "DELETE FROM [Mortalityinput]" _
   & " WHERE format(AAAAAAINmax.[Created Date],"" DD/MM/YYYY"") = " & myVar
   dbnewInitiatives.Execute strsql,dbFailOnError

抱歉,如果这让任何人感到痛苦,Access 和 sql 不是我的强项。 我还尝试在设计模式下编写/创建一个简单的 sql 语句,但是当我尝试运行它时,我收到一条消息,询问我指的是哪个表。

请有人把我从痛苦中解脱出来。

谢谢!

解决方法

您需要从两侧删除时间部分。此外,无需提及查询名称 AAAAAAINmax。

试试这个:

myVar = Format(DMax("[Created Date]","Mortalityinput"),"DD/MM/YYYY")

Set dbNewInitiatives = CurrentDb
strSQL = "DELETE FROM [Mortalityinput]" _
       & " WHERE Format([Created Date],'DD/MM/YYYY') = '" & myVar & "'"
dbNewInitiatives.Execute strSQL,dbFailOnError
,

SELECT 查询错误 应该是这样的

lcSQL = "SELECT [ID] AS IDmax from AAAAAAINmax "

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。