在一个字段的一个记录中找到特定字符串后删除所有记录

时间:2014-11-17 23:58:04

标签: vba ms-access access-vba

我正在从excel上传一个表,一些垃圾记录随之而来。具体来说,在我需要的所有数据通过之后的第一个字段中,我得到一个包含短语"(随机数)(随机数)记录的记录。"我想删除这句话之后的所有记录。我现在要做的是使用像DoCmd.Seek或Findfirst这样的方法找到此记录的位置,但我不确定这是否是正确的方法。一旦我找到了这个位置,我就会做DoCmd.RunSQL "Delete from table where field in (select bottom (total records - position of phrase "records came through") field from tblCopyUtlwos);", False这样的事情但是我不确定如何找到该字段在该字段中的位置。任何有关找到位置的提示,或更好的方法来删除字段中的短语下面的记录将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

Excel没有表格,它有电子表格。也许这是挑剔,但当人们将Excel称为“数据库”时,这是我的一个宠儿。

对于手头的问题,您可以使用主键导入数据。把它粘在一个叫做PKey的领域。这将允许您查找要删除的记录的位置。

然后,做这样的事情:

Dim db as Database
Dim rec as Recordset
Dim MySQL as String

Set db = CurrentDB
'Find the PKey of the record you want to search for
Set rec = db.OpenRecordset ("SELECT PKey FROM tblCopyUtlwos WHERE MyField LIKE '*Records Came Through*'")

'Now you have the Primary Key # where that phrase appears
'Delete all records where the Primary Key is greater than or equal to that Primary Key #
MySQL = "DELETE FROM tblCopyUtlwos WHERE PKey >= " & rec(0) & ""

DoCmd.RunSQL MySQL

这是所有“航空代码”并且未经过测试,您必须对表名/字段名称不同进行明显的编辑,但它应该让您在正确的轨道上。