如何遍历Access中特定列的每个值

时间:2015-08-06 05:18:04

标签: vba

我有一张包含以下信息的表格:

Destination        Currency Rate    Minutes     Amount Country
Pakistan           Mobile Uphone    USD 0.0150  12,500.00       
pakistan           Fixed Lahore     USD 0.0152  6,512.00        
Pakistan           Uphone Onnet     USD 0.1542  15,612.00       
India              Fixed Onnet      USD 0.1940  150,151.00      
India              Mumbai           USD 0.7462  1,161.00        
India              Mobile Reliance  USD 0.4798  16,431.00       
India              Mobile BSNL      USD 0.3655  64,311.00       
India              Bharti Mobile    USD 0.8450  43,434.00       
India              Idea Mobile      USD 0.1252  646,146.00      

使用表单我正在尝试在国家/地区列中查找国家/地区名称。为此,我有一个带按钮的表单和以下代码:

Private Sub cmdProceed_Click()

'Delcare variables
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim V1 As String
Dim V2 As String


'Initialize declared variables

Set db = CurrentDb
Set rst = db.OpenRecordset("FirstQuery")
V1 = rst.OpenRecordset.Fields("Destination")
V2 = "Pakistan"

'Perform the following things

rst.MoveFirst


Do While Not rst.EOF

rst.Edit

If (InStr(1, V1, V2)) > 0 Then

    rst.Fields("Country").Value = V2
Else
    rst.Fields("Country").Value = Nothing
End If

    rst.Update
    rst.MoveNext




Loop

rst.Close
Set rst = Nothing

Me.Refresh

End Sub

当我运行此代码时,它将放置"巴基斯坦"在"国家"专栏甚至反对那些文字"巴基斯坦"不存在。据我所知,我的代码没有改变Variable V1的值。任何人都可以帮助我,我怎样才能找到一个情况,如果文本"巴基斯坦"存在于"目的地"列,然后"国家"的值列等于"巴基斯坦",否则"国家"列等于什么?

1 个答案:

答案 0 :(得分:0)

原因变量V1是字符串,当您在记录集中移动下一条记录时,它不会自动更改值。

您应该输入代码

V1 = rst.OpenRecordset.Fields("Destination")
循环内的