objRecordset.MoveNext和循环之间的区别?

时间:2014-08-05 15:45:04

标签: vba csv access-vba ado

我的代码读取.csv文件(逗号分隔文件)的行,并将每个值分配给局部变量。在我完成一些逻辑并将值存储在表中之后,我读入.csv文件的下一行并重复该过程。我的问题是与循环相比,objRecordset.MoveNext做了什么。这是我的代码,其中一些已被删除,专注于循环和objrecordset.MoveNext。

objconnection.Open 'connection string'
objRecordset.Open "SELECT * FROM [" & ThisFileName & "]", objconnection, adOpenStatic, adLockOptimistic, adCmdText 'select all text lines from the file

Do While Not objRecordset.EOF 'read lines until end of file

'Clear out all the local objects so prior values aren't left there
    SampleName = ""
    DateTimeAcquired = ""
    Analyte = ""
    Concentration = ""
    Units = ""

   'reads in each value according to column name and save to variable'
      SampleName = objRecordset.Fields("Sample Name").Value
      DateTimeAcquired = objRecordset.Fields("Date and Time Acquired").Value
      Analyte = objRecordset.Fields("Element Full Name").Value
      Concentration = objRecordset.Fields("Concentration").Value
      Units = objRecordset.Fields("Units").Value

'Logic done on variables'
        objRecordset.MoveNext
Loop  

我正在使用Access 2010 VBA

1 个答案:

答案 0 :(得分:2)

objRecordset.MoveNext有两个目的

  1. 作为退出条件

  2. 转到下一条记录

  3. 如果您没有objRecordset.MoveNext,那么循环将无限延续,因为它未到达objRecordset.EOF而是停留在same record