关于填写访问表中的一些空字段

时间:2014-10-15 17:05:04

标签: ms-access

我有一个这样的表,现在我的任务是填写相应列的vol和country的空字段

规则:我必须看到体积中的最高音量并取出该音量的国家并将其放入空场(即我必须用国家JP填充空单元格,因为日本的体积更大) 像这样我必须填补。

RB,Plant,MCR等剩余的文件正在改变剩余的空单元格。

我曾经使用过Dlookup,但我可以得到解决方案,任何人请帮助我,如果你找到我的解决方案是非常有帮助的。

像这样我必须填写表格中的所有空行 my access database table

好的,我可以更清晰地查看我的表格视图,以便您可以轻松理解 enter image description here 这是我必须完成任务的唯一表格 现在我的任务是我必须填写国家领域的空单元格,但条件是我应该看看RB,Plant,MCM关于vol field(即:如果你看到表格,RB,植物,MCM领域是同样但国家和vol正在改变一个组,所以我还要考虑字段,这意味着如果RB,植物,mcm字段相同,那么我必须采取该组中具有最高容量的国家之一) (我只是举例说明第一行RB,植物,MCM是相同的,所以我必须采取最高音量国家,即所以空单元格应该是IN和secodn组空单元格应该是TH,就像我必须填充。

2 个答案:

答案 0 :(得分:1)

正如我在对Johnny Bones的评论中提到的那样。回答,您的原始要求可以使用UPDATE语句完成,该语句使用DLookup()DMax()函数,如下所示:

UPDATE MyTable 
SET Country=DLookup("Country","MyTable","Vol=" & DMax("Vol","MyTable")) 
WHERE Country IS NULL

即使你修改了要求,它仍然可能,只是更加可怕:

UPDATE MyTable 
SET Country=DLookup("Country","MyTable","RB='" & RB & "' AND Plant='" & Plant & "' AND MCM='" & MCM & "' AND Country IS NOT NULL AND Vol=" & Nz(DMax("Vol","MyTable","RB='" & RB & "' AND Plant='" & Plant & "' AND MCM='" & MCM & "' AND Country IS NOT NULL"),0)) 
WHERE Country IS NULL

上述查询已在Access 2010中经过测试和验证。

答案 1 :(得分:0)

您可以在VBA中执行此操作,并可以更好地控制其响应方式。这样的事情会做:

Dim db As Database
Dim rec As Recordset
Dim MySQL As String

Set db = CurrentDb
Set rec = db.OpenRecordset("Select Top 1 MyTable.Country FROM MyTable ORDER BY MyTable.Vol DESC")

MyCountry = rec(0)

rec.Close
SetWarnings = False

MySQL = "UPDATE MyTable SET MyTable.Country = '" & MyCountry & "' WHERE IsNull(MyTable.Country) or Len(MyTable.Country) < 2"
DoCmd.RunSQL MySQL

SetWarnings = True
db.Close

我测试了上面的内容并且它有效,但如果你的表的字段属性不同,你可能需要调整一些代码。

显然,无论你在哪里看到“MyTable”,你都应该使用自己的表名。