【问题标题】:Difference between objRecordset.MoveNext and loop?objRecordset.MoveNext 和循环之间的区别?
【发布时间】:2014-08-05 15:45:04
【问题描述】:

我的代码读取 .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

【问题讨论】:

  • 如果您忽略objRecordset.MoveNext,您将永远无法到达记录集的末尾,因此您将有一个连续循环。你为什么要做所有这些工作?您可以使用 SQL 从 CSV 更新。
  • 如何使用 SQL 从 .csv 导入?

标签: csv ms-access vba ado


【解决方案1】:

objRecordset.MoveNext 有两个用途

  1. 作为退出条件

  2. 移至下一条记录

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

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 2011-04-07
    • 2019-01-11
    • 1970-01-01
    • 2016-07-08
    • 2021-05-12
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    相关资源
    最近更新 更多